diff --git a/.DS_Store b/.DS_Store
index d804f52..b985e1d 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..e3863a6
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,4 @@
+[submodule "ext/splitflap"]
+ path = ext/splitflap
+ url = https://github.com/scottbez1/splitflap.git
+ branch = dev/chainlinkBaseUpdates
diff --git a/README.md b/README.md
index d715e8b..6b81fb3 100644
--- a/README.md
+++ b/README.md
@@ -5,3 +5,15 @@ to run node as a sudo user:
to run npm as a sudo user:
`sudo "$(which npm)" install -g angular-cli`
+
+`to pull submodule `
+git submodule update --init --recursive
+
+`install typescript globally (as root)`
+npm install -g typescript
+
+`scott note`
+had to add this in the splitflapjs folder: npm i --save-dev @types/node
+working with Node:
+
+v12.22.5
diff --git a/arduino/RFIDTEST/RFIDTEST.ino b/arduino/RFIDTEST/RFIDTEST.ino
index 1935eff..6a9fada 100644
--- a/arduino/RFIDTEST/RFIDTEST.ino
+++ b/arduino/RFIDTEST/RFIDTEST.ino
@@ -19,6 +19,7 @@ void setup()
Serial.begin(9600); // Initiate a serial communication
SPI.begin(); // Initiate SPI bus
mfrc522.PCD_Init(); // Initiate MFRC522
+ pinMode(7, OUTPUT); // Set the board pin to blink
Serial.println("Approximate your card to the reader...");
Serial.println();
@@ -58,7 +59,9 @@ void loop()
else {
Serial.println(" Access denied");
+ digitalWrite (7, HIGH);
delay(3000);
+ digitalWrite (7, LOW);
}
}
diff --git a/arduino/readme.md b/arduino/readme.md
new file mode 100644
index 0000000..00fe108
--- /dev/null
+++ b/arduino/readme.md
@@ -0,0 +1,3 @@
+https://randomnerdtutorials.com/security-access-using-mfrc522-rfid-reader-with-arduino/
+
+https://github.com/miguelbalboa/rfid/
\ No newline at end of file
diff --git a/arduino/rfid-master.zip b/arduino/rfid-master.zip
new file mode 100644
index 0000000..a3a5ef0
Binary files /dev/null and b/arduino/rfid-master.zip differ
diff --git a/codeart_backend/.DS_Store b/codeart_backend/.DS_Store
index e2918d7..a255618 100644
Binary files a/codeart_backend/.DS_Store and b/codeart_backend/.DS_Store differ
diff --git a/codeart_backend/README.md b/codeart_backend/README.md
index 971b624..56039a9 100644
--- a/codeart_backend/README.md
+++ b/codeart_backend/README.md
@@ -28,4 +28,10 @@ for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do
[[ -z "$ID_SERIAL" ]] && exit
echo "/dev/$devname - $ID_SERIAL"
)
-done
\ No newline at end of file
+done
+
+
+take off raspi-io for non raspi development
+
+
+ "splitflapjs": "file:../ext/splitflap/software/js/splitflapjs"
\ No newline at end of file
diff --git a/codeart_backend/animations.js b/codeart_backend/animations.js
new file mode 100644
index 0000000..1e5ff2c
--- /dev/null
+++ b/codeart_backend/animations.js
@@ -0,0 +1,359 @@
+
+const flaps = [
+ ' ', // BLACK
+ 'J', // 1
+ 'B', // 2
+ 'M', // 3
+ 'R', // 4
+ '$', // 5
+ 'V', // 6
+ 'K', // 7
+ 'A', // 8
+ 'E', // 9
+ 'N', // 10
+ 'O', // 11
+ 'y', // YELLOW
+ '*', // 13
+ 'g', // GREEN
+ 'G', // 15
+ 'I', // 16
+ '%', // 17
+ 'D', // 18
+ 'L', // 19
+ '&', // 20
+ '@', // 21
+ 'C', // 22
+ 'W', // 23
+ 'H', // 24
+ 'Y', // 25
+ 'w', // WHITE
+ 'Q', // 27
+ 'p', // PINK
+ 'o', // ORANGE
+ '!', // 30
+ 'T', // 31
+ 'Z', // 32
+ 'P', // 33
+ 'F', // 34
+ '?', // 35
+ 'S', // 36
+ '#', // 37
+ 'U', // 38
+ 'X', // 39
+]
+
+const welcome = [
+ [6000, [
+ ' ',
+ ' ',
+ ' ',
+ ' ',
+ ' ',
+ ' ',
+ ]],
+ [300, [
+ 'p ',
+ ' WELCOME TO p ',
+ ' y ',
+ ' CODE ART w',
+ ' g g ',
+ 'p w y',
+ ]],
+ [200, [
+ 'p ',
+ ' WELCOME TO p ',
+ ' y ',
+ ' CODE ART w',
+ ' g g ',
+ 'p w y',
+ ], [
+ ' 1 ',
+ ' 1',
+ ' 1 ',
+ ' ',
+ ' ',
+ ' 1 ',
+ ]],
+ [200, [
+ 'p ',
+ ' WELCOME TO p ',
+ ' y ',
+ ' CODE ART w',
+ ' g g ',
+ 'p w y',
+ ], [
+ ' 1 ',
+ ' ',
+ ' 1 1 ',
+ ' ',
+ ' 1 ',
+ ' 1 1 ',
+ ]],
+ [200, [
+ 'p ',
+ ' WELCOME TO p ',
+ ' y ',
+ ' CODE ART w',
+ ' g g ',
+ 'p w y',
+ ], [
+ ' 1 ',
+ ' ',
+ ' 1 1 ',
+ ' 1 ',
+ ' 1 ',
+ '1 1 ',
+ ]],
+ [6000, [
+ 'p ',
+ ' WELCOME TO p ',
+ ' y ',
+ ' CODE ART w',
+ ' g g ',
+ 'p w y',
+ ]],
+]
+exports.welcome = welcome
+
+function* randomFill(color1, color2, before, after) {
+ const state = [
+ new Array(18).fill(color1),
+ new Array(18).fill(color1),
+ new Array(18).fill(color1),
+ new Array(18).fill(color1),
+ new Array(18).fill(color1),
+ new Array(18).fill(color1),
+ ]
+ yield [before, state]
+
+ const toFlip = []
+ for (let i = 0; i < 108; i++) {
+ toFlip.push(i)
+ }
+
+ const colors = ['w', 'y', 'o', 'g', 'p']
+
+ while (toFlip.length > 0) {
+ const i = Math.floor(Math.random() * toFlip.length)
+ const [index] = toFlip.splice(i, 1)
+ const row = Math.floor(index/18)
+ const col = index % 18
+ state[row][col] = color2 == 'random' ? colors[Math.floor(Math.random()*colors.length)] : color2
+ const mask = [
+ new Array(18).fill(false),
+ new Array(18).fill(false),
+ new Array(18).fill(false),
+ new Array(18).fill(false),
+ new Array(18).fill(false),
+ new Array(18).fill(false),
+ ]
+ mask[row][col] = true
+ yield [100, state, mask]
+ }
+ yield [after, state]
+}
+
+exports.randomFill = randomFill
+
+
+function* spiral(color1, color2, before, after) {
+ const state = [
+ new Array(18).fill(color1),
+ new Array(18).fill(color1),
+ new Array(18).fill(color1),
+ new Array(18).fill(color1),
+ new Array(18).fill(color1),
+ new Array(18).fill(color1),
+ ]
+ yield [before, state]
+
+ let xTravel = 18
+ let yTravel = 5
+ let dir = 0
+ let x = -1
+ let y = 0
+
+ while (xTravel > -1 && yTravel > -1) {
+ if (dir == 0 || dir == 2) {
+ for (let i = 0; i < xTravel; i++) {
+ if (dir == 0) {
+ x++
+ } else {
+ x--
+ }
+ state[y][x] = color2
+ yield [50, state]
+ }
+ xTravel--
+ } else {
+ for (let i = 0; i < yTravel; i++) {
+ if (dir == 1) {
+ y++
+ } else {
+ y--
+ }
+ state[y][x] = color2
+ yield [50, state]
+ }
+ yTravel--
+ }
+ dir = (dir + 1) % 4
+ }
+ yield [after, state]
+}
+exports.spiral = spiral
+
+
+function* rain(color1, color2, before, after) {
+ const state = [
+ new Array(18).fill(color1),
+ new Array(18).fill(color1),
+ new Array(18).fill(color1),
+ new Array(18).fill(color1),
+ new Array(18).fill(color1),
+ new Array(18).fill(color1),
+ ]
+ yield [before, state]
+
+ const toStart = []
+ for (let i = 0; i < 18; i++) {
+ toStart.push(i)
+ }
+
+ const framesPerStart = 5
+
+ let i = 0
+ while (1) {
+
+ // Move everything down a row
+ state[5] = state[4]
+ state[4] = state[3]
+ state[3] = state[2]
+ state[2] = state[1]
+ state[1] = state[0].slice(0)
+ if (i >= framesPerStart) {
+ i = 0;
+ const x = Math.floor(Math.random() * toStart.length)
+ const [index] = toStart.splice(x, 1)
+ state[0][index] = color2
+ }
+
+ if (state[5].every((c) => c === color2)) {
+ break;
+ }
+ yield [100, state]
+
+ i++
+ }
+
+ yield [after, state]
+}
+exports.rain = rain
+
+function* testAll() {
+ const state = [
+ new Array(18).fill(' '),
+ new Array(18).fill(' '),
+ new Array(18).fill(' '),
+ new Array(18).fill(' '),
+ new Array(18).fill(' '),
+ new Array(18).fill(' '),
+ ]
+ yield [5000, state]
+ for (let i = 0; i < 40; i++) {
+ const state = [
+ new Array(18).fill(flaps[i]),
+ new Array(18).fill(flaps[i]),
+ new Array(18).fill(flaps[i]),
+ new Array(18).fill(flaps[i]),
+ new Array(18).fill(flaps[i]),
+ new Array(18).fill(flaps[i]),
+ ]
+ yield [1500, state]
+ }
+ yield [5000, state]
+}
+exports.testAll = testAll
+
+function* sequence1() {
+ for (const d of welcome) {
+ yield d
+ }
+ yield [5000, [
+ ' ',
+ ' ',
+ ' ',
+ ' ',
+ ' ',
+ ' ',
+ ]]
+ for (const d of randomFill('b', 'y', 4000, 1000)) {
+ yield d
+ }
+ for (const d of spiral('y', 'p', 1000, 1000)) {
+ yield d
+ }
+ for (const d of rain('p', 'g', 1000, 6000)) {
+ yield d
+ }
+}
+exports.sequence1 = sequence1
+
+function* wheelOfFortune(category, solution) {
+ const state = [
+ ' gggggggggggg ',
+ ' gggggggggggggg ',
+ ' gggggggggggggg ',
+ ' gggggggggggg ',
+ ' ',
+ ' ',
+ ]
+ yield [6000, state]
+
+ state[5] = (' '.repeat(Math.floor((18 - category.length) / 2)) + category).padEnd(18)
+
+ yield [4000, state]
+
+ for (let row = 0; row < solution.length; row++) {
+ state[row] = state[row].split('').map((v, i) => {
+ const scol = i - 2
+ if (scol < 0 || scol >= solution[row].length) {
+ return v
+ }
+ return solution[row].split('')[scol] === ' ' ? v : 'w'
+ }).join('')
+ yield [1000, state]
+ }
+
+ yield [3000, state]
+
+ const letters = {}
+ for (const row of solution) {
+ for (const letter of row.split('')) {
+ letters[letter] = true
+ }
+ }
+ delete letters[' ']
+
+ const lettersToGuess = [...Object.keys(letters)]
+ while (lettersToGuess.length > 0) {
+ console.log(lettersToGuess)
+ const letter = lettersToGuess.splice(Math.floor(Math.random() * lettersToGuess.length), 1)[0]
+ let empty = 0
+ for (let row = 0; row < solution.length; row++) {
+ state[row] = state[row].split('').map((v, i) => {
+ const scol = i - 2
+ if (scol < 0 || scol >= solution[row].length) {
+ return v
+ }
+ const solutionRow = solution[row].split('')
+ return solutionRow[scol] === letter ? letter : v
+ }).join('')
+ empty += state[row].split('w').length - 1
+ }
+ yield [empty > 10 ? 8000 : 5000, state]
+ }
+ yield [5000, state]
+}
+exports.wheelOfFortune = wheelOfFortune
+
diff --git a/codeart_backend/app.js b/codeart_backend/app.js
index a12116a..d2887d3 100644
--- a/codeart_backend/app.js
+++ b/codeart_backend/app.js
@@ -4,6 +4,10 @@ const express = require('express');
const socketIO = require('socket.io');
const bodyParser = require("body-parser");
const cors = require('cors');
+const SerialPort = require('serialport')
+const {Splitflap, Util} = require('splitflapjs')
+const {PB} = require('splitflapjs-proto')
+const {welcome, randomFill, spiral, rain, testAll, sequence1, wheelOfFortune} = require('./animations')
/// INITIALIZE SERVICE VARIABLES ///
const app = express();
@@ -34,25 +38,305 @@ app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
// app.use(cors(corsOptions));
app.use(cors());
+app.use(express.static(__dirname + "/public"));
-
+console.log('this is dir', __dirname)
/// PUBLIC API ENDPOINTS ///
-app.get('/bentest', function (req, res) {
- res.send('helloooooo')
+app.get("/debug", (req, res) => {
+ res.sendFile(`${__dirname}/public/index.html`, (err) => {
+ if (err) {
+ console.log(err);
+ res.end(err.message);
+ }
+ });
});
-app.route('/game/:gameNumber/on/:buttonNumber')
- .post(buttonController.handleKeyOn);
-app.route('/game/:gameNumber/off/:buttonNumber')
- .post(buttonController.handleKeyOff);
+app.post('/game',(req, res) => {
+ megaController.setGameNumber(req.body.game)
+ res.send('ok')
+})
+
+// app.route('/game/:gameNumber')
+// .post(buttonController.handleKeyOn);
-app.route('/game/:gameNumber/getkeyquantity')
- .get(buttonController.getKeyQuantity);
+// app.route('/game/:gameNumber/off/:buttonNumber')
+// .post(buttonController.handleKeyOff);
+
+// app.route('/game/:gameNumber/getkeyquantity')
+// .get(buttonController.getKeyQuantity);
/// ARDUINO STUFF ///
-megaController.initializeMega(io);
+const findPort = (ports, description, infoList) => {
+ const matchingPorts = ports.filter((portInfo) => {
+ return infoList.some(([vendorId, productId, serialNumber]) => {
+ return portInfo.vendorId === vendorId && portInfo.productId === productId && portInfo.serialNumber === serialNumber
+ })
+ })
+
+ if (matchingPorts.length < 1) {
+ console.warn(`No matching ${description} usb serial port found (vendorId=${infoList}! Available ports: ${JSON.stringify(ports, undefined, 4)}`)
+ return null
+ } else if (matchingPorts.length > 1) {
+ console.warn(`Multiple ${description} usb serial ports found: ${JSON.stringify(matchingPorts, undefined, 4)}`)
+ return null
+ }
+ console.info(`Found ${description} port at ${matchingPorts[0].path}`)
+ return matchingPorts[0]
+}
+
+let splitflapLatestState = null
+
+const splitflapStateForFrontend = (splitflapStatePb) => {
+ const remappedTo2d = Util.convert1dChainlinkTo2dDualRowZigZag(splitflapStatePb.modules, 18, true)
+ const singleRow = [].concat(...remappedTo2d);
+ return {
+ modules: singleRow,
+ }
+}
+
+let splitflapConfig2d = [
+ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+]
+let animationFrame2d = []
+
+
+let animationTimeout = null
+let currentAnimation = null
+
+const flaps = [
+ ' ', // BLACK
+ 'J', // 1
+ 'B', // 2
+ 'M', // 3
+ 'R', // 4
+ '$', // 5
+ 'V', // 6
+ 'K', // 7
+ 'A', // 8
+ 'E', // 9
+ 'N', // 10
+ 'O', // 11
+ 'y', // YELLOW
+ '*', // 13
+ 'g', // GREEN
+ 'G', // 15
+ 'I', // 16
+ '%', // 17
+ 'D', // 18
+ 'L', // 19
+ '&', // 20
+ '@', // 21
+ 'C', // 22
+ 'W', // 23
+ 'H', // 24
+ 'Y', // 25
+ 'w', // WHITE
+ 'Q', // 27
+ 'p', // PINK
+ 'o', // ORANGE
+ '!', // 30
+ 'T', // 31
+ 'Z', // 32
+ 'P', // 33
+ 'F', // 34
+ '?', // 35
+ 'S', // 36
+ '#', // 37
+ 'U', // 38
+ 'X', // 39
+]
+
+const charToFlapIndex = (c) => {
+ const i = flaps.indexOf(c)
+ if (i >= 0) {
+ return i
+ } else {
+ return null
+ }
+}
+
+const stringToFlapIndexArray = (str) => {
+ return str.split('').map(charToFlapIndex)
+}
+
+const stringToMovementMask = (str) => {
+ return str.split('').map((c) => c === '1')
+}
+
+const initializeHardware = async () => {
+ const ports = (await SerialPort.list()).filter((portInfo) => portInfo.vendorId !== undefined)
+
+ const splitflapPortInfo = findPort(ports, 'splitflap', [
+ ['10c4', 'ea60', '022809A3'], // real
+ ['10c4', 'ea60', '02280A9E'], // development
+ ])
+
+ const splitflap = new Splitflap(splitflapPortInfo !== null ? splitflapPortInfo.path : null, (message) => {
+ if (message.payload === 'log') {
+ console.log(`SPLITFLAP LOG: ${message.log.msg}`)
+ } else if (message.payload === 'splitflapState' && message.splitflapState && message.splitflapState.modules) {
+ splitflapLatestState = PB.SplitflapState.toObject(message.splitflapState, {defaults: true})
+
+ io.sockets.emit('splitflap_state', splitflapStateForFrontend(splitflapLatestState))
+ } else if (message.payload === 'supervisorState' && message.supervisorState) {
+ io.sockets.emit('splitflap_supervisor_state', PB.SupervisorState.toObject(message.supervisorState))
+ }
+ }, 108)
+
+
+ const sendSplitflapConfig = () => {
+ splitflap.setFlaps(Util.convert2dDualRowZigZagTo1dChainlink(currentAnimation !== null ? animationFrame2d : splitflapConfig2d, true))
+ }
+
+ // Periodically sync splitflap config, e.g. in case MCU gets restarted
+ sendSplitflapConfig()
+ setInterval(sendSplitflapConfig, 5000)
+
+ const animationFrame = () => {
+ const current = currentAnimation.next()
+ if (!current.done) {
+ const frameData = current.value
+ console.log(frameData)
+ if (typeof frameData[1][0] === 'string') {
+ animationFrame2d = frameData[1].map(stringToFlapIndexArray)
+ } else {
+ animationFrame2d = frameData[1].map((a) => a.map(charToFlapIndex))
+ }
+ let movementMask
+ if (frameData[2]) {
+ let mask
+ if (typeof frameData[2][0] === 'string') {
+ mask = frameData[2].map(stringToMovementMask)
+ } else {
+ mask = frameData[2]
+ }
+ movementMask = Util.convert2dDualRowZigZagTo1dChainlink(mask, true)
+ }
+ splitflap.setFlaps(Util.convert2dDualRowZigZagTo1dChainlink(animationFrame2d, true), movementMask)
+ const frameTime = frameData[0]
+ animationTimeout = setTimeout(animationFrame, frameTime)
+ } else {
+ stopAnimation()
+ }
+ }
+
+ const startAnimation = (animation) => {
+ stopAnimation()
+ currentAnimation = animation
+ animationFrame()
+ }
+
+ const stopAnimation = () => {
+ if (animationTimeout) {
+ clearTimeout(animationTimeout)
+ animationTimeout = null
+ }
+ currentAnimation = null
+ sendSplitflapConfig()
+ }
+
+
+ app.post('/splitflap/hard_reset', async (req, res) => {
+ await splitflap.hardReset()
+ res.send('ok')
+ })
+ app.post('/splitflap/reset_module', async (req, res) => {
+ console.log(req.body)
+ const resetMap = []
+ for (let row = 0; row < 6; row++) {
+ resetMap.push(new Array(18).fill(false))
+ }
+ resetMap[req.body.y][req.body.x] = true
+ splitflap.resetModules(Util.convert2dDualRowZigZagTo1dChainlink(resetMap, true))
+ res.send('ok')
+ })
+ app.get('/splitflap/state', async (req, res) => {
+ res.json(splitflapLatestState === null ? null : PB.SplitflapState.toObject(splitflapLatestState, {
+ defaults: true,
+ }))
+ })
+ app.post('/splitflap/set_flaps', async (req, res) => {
+ const newLayout = []
+ for (let i = 0; i < 6; i++) {
+ newLayout.push(new Array(18).fill(0))
+ }
+ let row = 0;
+ let col = 0;
+ console.log(req.body)
+ for (let i = 0; i < req.body.text.length && row < 6; i++) {
+ const char = req.body.text[i]
+ if (char === '\n') {
+ col = 0
+ row++
+ continue
+ }
+
+ const flapIndex = flaps.indexOf(char)
+ newLayout[row][col] = flapIndex == -1 ? 0 : flapIndex
+ col++
+ if (col >= 18) {
+ row++
+ col = 0
+ }
+ }
+ console.log(newLayout)
+ splitflapConfig2d = newLayout
+ sendSplitflapConfig()
+ res.send('ok')
+ })
+ app.post('/splitflap/start_animation', async (req, res) => {
+ const wofGames = [
+ ['EVENT', [
+ '',
+ ' CODE ART',
+ ' PALO ALTO',
+ ]],
+ ['SONG LYRICS', [
+ ' NEVER',
+ ' GONNA GIVE',
+ ' YOU UP',
+ ''
+ ]],
+ ]
+ const wof = wofGames[Math.floor(Math.random() * wofGames.length)]
+ const animations = {
+ 'welcome': welcome.values(),
+ 'rain': rain('w', 'g', 6000, 6000),
+ 'spiral': spiral('o', 'y', 6000, 6000),
+ 'testAll': testAll(),
+ 'randomFill': randomFill(' ', 'random', 6000, 6000),
+ 'sequence1': sequence1(),
+ 'wheelOfFortune': wheelOfFortune(wof[0], wof[1])
+ }
+ startAnimation(animations[req.body.animation])
+ res.send('ok')
+ })
+ app.post('/splitflap/stop_animation', async (req, res) => {
+ stopAnimation()
+ res.send('ok')
+ })
+
+
+ const megaPortInfo = findPort(ports, 'mega', [
+ ['2341', '0010', '6493833393235110A1A0'], // real
+ ['2341', '0042', '5543830343935160C121'], // scott's
+ ])
+ if (megaPortInfo !== null) {
+ megaController.initializeMega(io, megaPortInfo.path, (flaps2d) => {
+ splitflapConfig2d = flaps2d
+ sendSplitflapConfig()
+ })
+ }
+}
+
+initializeHardware()
/// WEB SOCKET STUFF ///
@@ -61,15 +345,19 @@ io.on('connection', socket => {
/// On connect, console log on server, and then send number of users to client
io.sockets.emit('connected users', {numberOfUsers: io.engine.clientsCount});
+ if (splitflapLatestState !== null) {
+ io.to(socket.id).emit('splitflap_state', splitflapStateForFrontend(splitflapLatestState))
+ }
+
/// get mega button state when connecting and send to newly connected user
if (megaController.getMegaButtonState().length > 0){
megaController.getMegaButtonState().forEach(button =>{
- io.to(socket.id).emit('button down', button)
+ io.to(socket.id).emit('button down', {buttons: button, flaps: megaController.getFlapState()})
});
-
- //send updated board state here!
}
+ else {io.to(socket.id).emit('button down', {buttons: null , flaps: megaController.getFlapState()})}
+
/// When a user disconnects, console log and then update the clients with the user count
socket.on('disconnect', () => {
console.log('user disconnected')
diff --git a/codeart_backend/controllers/gameController.js b/codeart_backend/controllers/gameController.js
index cbf99ff..bf639d3 100644
--- a/codeart_backend/controllers/gameController.js
+++ b/codeart_backend/controllers/gameController.js
@@ -1,14 +1,144 @@
-const boardLength = 108;
+const flaps = [
+ 0, // BLACK
+ 'J', // 1
+ 'B', // 2
+ 'M', // 3
+ 'R', // 4
+ '$', // 5
+ 'V', // 6
+ 'K', // 7
+ 'A', // 8
+ 'E', // 9
+ 'N', // 10
+ 'O', // 11
+ 12, // YELLOW
+ '*', // 13
+ 14, // GREEN
+ 'G', // 15
+ 'I', // 16
+ '%', // 17
+ 'D', // 18
+ 'L', // 19
+ '&', // 20
+ '@', // 21
+ 'C', // 22
+ 'W', // 23
+ 'H', // 24
+ 'Y', // 25
+ 26, // WHITE
+ 'Q', // 27
+ 28, // PINK
+ 29, // ORANGE
+ '!', // 30
+ 'T', // 31
+ 'Z', // 32
+ 'P', // 33
+ 'F', // 34
+ '?', // 35
+ 'S', // 36
+ '#', // 37
+ 'U', // 38
+ 'X' // 39
+]
+
+
+// BEN NOTES //
+//I converted random and correct letters to their IDs in the array, I'm keeping [0] (black) out of this for now as it's a special condition
+
+const generateAllLetters = (array) =>{
+ let filteredArray = array;
+ for(var i = randomWrong.length -1; i>=0; i--){
+ filteredArray.splice(randomWrong[i], 1);
+ }
+ return filteredArray;
+}
+
+const numberOfFlapsPerModule = Array.from(Array(40).keys()); // 0-39 ids of all flap positions
+// const randomWrong = [0, 5, 12, 13, 14, 17, 20, 21]; // "incorrect" values //need something special for 0 ('black') or else the code breaks on startup
+const randomWrong = [0, 1 , 2, 3 ,4 ,5, 6, 7, 8, 9, 10]; // "incorrect" values //need something special for 0 ('black')
+let allLetters = generateAllLetters(numberOfFlapsPerModule); // cull incorrect values from all ids
+let flapBoardState = Array(108).fill(0);
+
const games = [
- { gameNumber: 0, winningButtons: [ 1, 2, 3, 4] },
- { gameNumber: 1, winningButtons: [ 5, 6, 7, 8] },
- { gameNumber: 2, winningButtons: [ 9, 10, 11, 12 ] },
+ { gameNumber: 0,
+ winningButtons: [ 1, 2, 3, 4, 5, 6 ],
+ winningValue: 'X'
+ },
+ { gameNumber: 1, winningButtons: [ 46, 47, 48, 49, 50 ], winningValue: 'Y' },
+ { gameNumber: 2, winningButtons: [ 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 ], winningValue: 'Z' },
]
+exports.handleButtonOn = (buttonID, gameNumber, currentFlapBoardState) => {
+
+ const correctButtonPressed = games[gameNumber].winningButtons.includes(buttonID);
+ const correctButtons = games[gameNumber].winningButtons;
+ // const searchValue = games[gameNumber].winningValue;
+ const searchValue = allLetters;
+ // const numberOfResults = (currentFlapBoardState.length / correctButtons.length); // this needs to map to the correct puzzle
+ const numberOfResults = 5; // this needs to map to the correct puzzle
-function getRandomInputResponses (){
+
+ function getRandomInputResponses (){
+ const takenIndexes = [];
+ let outputBoardArray = currentFlapBoardState.slice();
+
+ //loop through initial board array and identify which winning values are taken and send to an array//
+ for (i = 0; i < currentFlapBoardState.length; i++){
+ if (searchValue.includes(currentFlapBoardState[i])){
+ takenIndexes.push(i);
+ }
+ }
+
+ //loop for the number of new winning values to be added, identify random indices, check that they are unique
+ // and then add them the array of taken indices, if not unique, generate a new number and try again
+ for (i = 0; i < numberOfResults; i++){
+ let randomIndex = Math.floor(Math.random() * currentFlapBoardState.length);
+
+ findUnique(randomIndex);
+
+ function findUnique(randomValue){
+ // console.log(searchValue)
+ // console.log(randomValue)
+ // console.log(searchValue.includes(randomValue))
+ // console.log(outputBoardArray[randomValue])
+ console.log(searchValue[Math.floor(Math.random() * searchValue.length)] );
+ if (!searchValue.includes(outputBoardArray[randomValue])){
+
+ (correctButtonPressed) ? outputBoardArray[randomValue] = searchValue[Math.floor(Math.random() * searchValue.length)] :
+ outputBoardArray[randomValue] = randomWrong[Math.floor(Math.random() * randomWrong.length)]; // the needs to NOT be in the searchValue array!!!
+ }
+ else{
+ let otherRandomIndex = Math.floor(Math.random() * currentFlapBoardState.length);
+ findUnique(otherRandomIndex);
+ }
+ }
+
+ }
+ return outputBoardArray;
+ }
+
+ return getRandomInputResponses()
+};
+
+
+console.log(this.handleButtonOn(1, 0, flapBoardState))
+
+
+
+exports.handleButtonOff = (buttonID) => {
+
+ const buttonInt = parseInt(req.params.buttonNumber);
+ const gameInt = parseInt(req.params.gameNumber);
+ const requestBoardArray = req.body.boardArray.data;
+ const magicButtonPressed = games[gameInt].winningKeys.includes(buttonInt);
+ const magicButtons = games[gameInt].winningKeys;
+ const searchValue = games[gameInt].winningValue;
+ const numberOfResults = (requestBoardArray.length / magicButtons.length);
+
+
+ function getRandomInputResponses (){
if (!magicButtonPressed){
return requestBoardArray
@@ -47,5 +177,8 @@ function getRandomInputResponses (){
}
return outputBoardArray;
}
- };
-
+ }
+
+ res.json({'data': getRandomInputResponses()});
+};
+
diff --git a/codeart_backend/controllers/megaController.js b/codeart_backend/controllers/megaController.js
index cb4660a..e60d96d 100644
--- a/codeart_backend/controllers/megaController.js
+++ b/codeart_backend/controllers/megaController.js
@@ -1,111 +1,151 @@
+const { buttonDown , buttonUp, convertToState, gamesList, shuffleFlapMapping, initialGameStateObject } = require( "./splitFlapController");
+const {Util} = require('splitflapjs')
+
const buttonMap = { //this maps the arduino mega pins with a 0-XX number
- /// GREEN WIRES ///
- '54': 0,
- '55': 1,
- '56': 2,
- '57': 3,
- '58': 4,
- '59': 5,
- '60': 6,
- '61': 7,
- '62': 8,
- '63': 9,
-
- /// BLUE WIRES ///
- '2': 10,
- '3': 11,
- '4': 12,
- '5': 13,
- '6': 14,
- '7': 15,
- '8': 16,
- '9': 17,
- '10': 18,
- '11': 19,
-
- /// YELLOW WIRES ///
- '51': 20,
- '50': 21,
- '49': 22,
- '48': 23,
- '47': 24,
- '46': 25,
- '45': 26,
- '44': 27,
- '43': 28,
- '42': 29,
-
- /// PURPLE WIRES ///
- '41': 30,
- '40': 31,
- '39': 32,
- '38': 33,
- '37': 34,
- '36': 35,
- '35': 36,
- '34': 37,
- '33': 38,
- '32': 39,
-
- /// ORANGE WIRES ///
- '31': 40,
- '30': 41,
- '29': 42,
- '28': 43,
- '27': 44,
- '26': 45,
- '25': 46,
- '24': 47,
- '23': 48,
- '22': 49
-};
+ ///STRING ON LEFT IS ARDUINO PIN NUMBERS
+ /// NUMBER ON RIGHT IS PIN ID FOR HUMAN CONSUMPTION
+ // BOX 1 //
+ '16': 0,
+ '17': 1,
-const activeButtons = []; // array of boxes that are turned on
+ // BOX 2 //
+ '2': 2,
+ '3': 3,
+
+ // BOX 3 //
+ '4': 5,
+ '5': 4,
+
+ // BOX 4 //
+ '6': 7,
+ '7': 6,
+
+ // BOX 5 //
+ '8': 9,
+ '9': 8,
+
+ // BOX 6 //
+ '10': 10,
+ '11': 11,
+
+ // BOX 7 //
+ '12': 13,
+ '13': 12,
+
+ // BOX 8 //
+ '14': 15,
+ '15': 14,
+
+ // BOX 9 //
+ '52': 16,
+ '53': 17,
+
+ // BOX 10 //
+ '50': 18,
+ '51': 19,
+
+ // BOX 11 //
+ '48': 21,
+ '49': 20,
+
+ // BOX 12 //
+ '46': 22,
+ '47': 23,
-let currentGame = 1; // number of current game
+ // BOX 13 //
+ '44': 25,
+ '45': 24,
-const gameWinningGameCondition = [
- [1 ,2, 3, 4],
- [5, 6, 7, 8],
- [9, 10, 11, 12],
- [13, 14, 15, 16, 17],
- [18, 19, 20, 21, 22]
-]
+ // BOX 14 //
+ '42': 27,
+ '43': 26,
-exports.updateGameBoardState = (currentGame, activeButtons) => {
+ // BOX 15 //
+ '40': 28,
+ '41': 29,
- //first check how many active buttons are mapped to the gameWinningCondition
+ // BOX 16 //
+ '38': 30,
+ '39': 31,
- //for every button that isn't in the winning condition, do something else
+ // BOX 17 //
+ '36': 32,
+ '37': 33,
-return 'this is gameboard state';
+ // BOX 18 //
+ '34': 34,
+ '35': 35,
+
+ // BOX 19 //
+ '32': 36,
+ '33': 37,
+
+ // BOX 20 //
+ '30': 38,
+ '31': 39,
+
+ // BOX 21 //
+ '28': 41,
+ '29': 40,
+
+ // BOX 22 //
+ '26': 43,
+ '27': 42,
+
+ // BOX 23 //
+ '24': 45,
+ '25': 44,
+
+ // BOX 24 //
+ '22': 46,
+ '23': 47,
+
+};
+
+const activeButtons = []; // array of boxes that are turned on
+let gameState = convertToState(gamesList[0]) ;
+shuffleFlapMapping(gameState)
+
+exports.getFlapState = () => {
+ return gameState.forScott
+};
+
+exports.setGameNumber= (number) =>{
+ gameState = convertToState(gamesList[number])
+ shuffleFlapMapping(gameState)
+ console.log('set to game', number)
}
exports.getMegaButtonState = () =>{ //returns active button state
return activeButtons;
}
-exports.initializeMega = (io) => {
+exports.initializeMega = (io, port, setFlaps) => {
+
+ const updateSplitflap = (allIndexes) => {
+ const newSplitflapState = []
+ for (let i = 0; i < 6; i++) {
+ newSplitflapState.push(allIndexes.slice(i*18, (i+1)*18))
+ }
+ setFlaps(newSplitflapState)
+ }
const five = require("johnny-five");
// board = new five.Board({ port: "/dev/ttyACM0" }); //use this when utilizing multiple boards, see readme for board designation
- board = new five.Board();
+ board = new five.Board({port});
board.on("ready", function() {
-
buttons = new five.Buttons({
-
- ////ADD THE PINS!!!
pins: [
- /// GREEN PINS ///
- 'A0', 'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9',
- /// BLUE PINS ///
- '2', '3', '4', '5', '6', '7', '8', '9', '10', '11',
- /// YELLOW PINS ///
- '51', '50', '49', '48', '47', '46', '45', '44', '43', '42',
- /// PURPLE PINS ///
+ /// ANALOG ROW ///
+ // 'A0', 'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'A10', 'A11', 'A12', 'A13', 'A14', 'A15',
+ /// DIGITAL BLOCK ///
+ '53', '52', '51', '50', '49', '48', '47', '46', '45', '44', '43', '42',
'41', '40', '39', '38', '37', '36', '35', '34', '33', '32',
- // ORANGE PINS ///
- '31', '30', '29', '28', '27', '26', '25', '24', '23', '22'
+ '31', '30', '29', '28', '27', '26', '25', '24', '23', '22',
+ /// COMM ROW ///
+ // '21', '20',
+ /// TX/RX ROW //
+ '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17'
],
// holdtime: 2000,
isPullup: true
@@ -114,48 +154,26 @@ exports.initializeMega = (io) => {
});
buttons.on("down", function(button) {
-
-
- //handle if button triggers a game
- switch (button.pin) {
- case '2': //this is the button pin value (pins), typ.
- currentGame = 2;
- console.log('game 2 enabled')
- break;
- case '3':
- currentGame = 3;
- console.log('game 3 enabled')
- break;
- case '4':
- currentGame = 4;
- console.log('game 4 enabled')
- break;
- case '5': //this is the button pin value (pins), typ.
- currentGame = 5;
- console.log('game 5 enabled')
- break;
- case '6':
- currentGame = 6;
- console.log('game 6 enabled')
- break;
-
- default:
- console.log('No Game Selected!');
- }
-
-
-
- console.log(`button ${button.pin} is down`);
+ console.log('button map pin is down', buttonMap[button.pin]);
+ //update gamestate based on button going down
+ gameState = buttonDown(gameState, buttonMap[button.pin]);
// broadcast which button was pushed
- io.sockets.emit('button down', buttonMap[button.pin]);
+ io.sockets.emit('button down', {buttons: buttonMap[button.pin], flaps: gameState.forScott});
+
+ updateSplitflap(gameState.forScott)
// add button to running list of active buttons (state)
activeButtons.push(buttonMap[button.pin]);
});
buttons.on("up", function(button) {
- console.log(`button ${button.pin} is up`);
+ console.log('button map pin is up', buttonMap[button.pin])
+ // update gamestate based on button going up
+ gameState = buttonUp(gameState, buttonMap[button.pin]);
// broadcast which button was pushed
- io.sockets.emit('button up', buttonMap[button.pin])
+ io.sockets.emit('button up', {buttons: buttonMap[button.pin], flaps: gameState.forScott})
+
+ updateSplitflap(gameState.forScott)
+
// find the index of the button released in the active buttons array
const upIndex = activeButtons.indexOf(buttonMap[button.pin]);
// splice out the button that was released
@@ -164,4 +182,42 @@ exports.initializeMega = (io) => {
}
});
});
-}
\ No newline at end of file
+}
+
+
+
+
+///// ANALOG BUTTONS REFERENCE ////
+
+
+ // // BOX 1 //
+ // '54': 0, // A0
+ // '55': 1, // A1
+
+ // // BOX 2 //
+ // '56': 2, // A2
+ // '57': 3, // A3
+
+ // // BOX 3 //
+ // '58': 4, // A4
+ // '59': 5, // A5
+
+ // // BOX 4 //
+ // '60': 6, // A6
+ // '61': 7, // A7
+
+ // // BOX 5 //
+ // '62': 8, // A8
+ // '63': 9, // A9
+
+ // // BOX 6 //
+ // '64': 10, // A10
+ // '65': 11, // A11
+
+ // // BOX 7 //
+ // '66': 12, // A12
+ // '67': 13, // A13
+
+ // // BOX 8 //
+ // '68': 14, // A14
+ // '69': 15, // A15
diff --git a/codeart_backend/controllers/splitFlapController.js b/codeart_backend/controllers/splitFlapController.js
index 50a6751..d438d9d 100644
--- a/codeart_backend/controllers/splitFlapController.js
+++ b/codeart_backend/controllers/splitFlapController.js
@@ -1,121 +1,387 @@
-var XLSX = require('xlsx');
-const fs = require('fs');
+const randomWrong = ['~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '+', '{', '}', '|', '[', ']', '\\', '/', ',', '.', '<', '>', '?', '`', ':', '"', '_'];
+const allLetters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',"$","*","%","&","@","!","?","#"];
+const benFlapsMap = {"0":0,"2":12,"4":14,"6":26,"8":28,"9":29,"j":1,"b":2,"m":3,"r":4,"$":5,"v":6,"k":7,"a":8,"e":9,"n":10,"o":11,"*":13,"g":15,"i":16,"%":17,"d":18,"l":19,"&":20,"@":21,"c":22,"w":23,"h":24,"y":25,"q":27,"!":30,"t":31,"z":32,"p":33,"f":34,"?":35,"s":36,"#":37,"u":38,"x":39};
+const benRandomWrong = ["2","4","6","8","9"];
+const benButtonMap = {"20":48,"21":47,"22":45,"23":46,"24":44,"25":45,"26":42,"27":43,"28":40,"29":41,"30":38,"31":39,"32":36,"33":37,"34":34,"35":35,"36":32,"37":33,"38":30,"39":31,"40":28,"41":29,"42":26,"43":27,"44":24,"45":25,"46":22,"47":23,"48":20,"49":21,"50":18,"51":19,"52":16,"53":17,"54":0,"55":1,"56":2,"57":3,"58":4,"59":5,"60":6,"61":7,"62":8,"63":9,"64":10,"65":11,"66":12,"67":13,"68":14,"69":15};
+const levelEditorGameObject = {"buttons":["a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a"],"flaps":[null,"y","a","y",null,"i","t",null,"w","o","r","k","s",null,null,null,null,null,null,"t","h","a","n","k","s",null,"e","v","e","r","y","o","n","e",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"f","o","r",null,"a","l","l",null,"t","h","e",null,"h","a","r","d",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"w","o","r","k",null,null,null,null,null,null,null]}
+const gamesList = [
+ /// FOUR COLORS | The first bud of spring sings the other seeds into joining her uprising
+ {"buttons":["a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","b","b","a","a","a","b"],"flaps":[null,null,"t","h","e",null,"f","i","r","s","t",null,"b","u","d",null,null,null,null,null,null,null,null,"o","f",null,null,"s","p","r","i","n","g",null,null,null,null,null,"s","i","n","g","s",null,"t","h","e",null,"o","t","h","e","r",null,null,null,"s","e","e","d","s",null,"i","n","t","o",null,null,null,null,null,null,null,null,"j","o","i","n","i","n","g",null,"h","e","r",null,null,null,null,null,null,null,"u","p","r","i","s","i","n","g",null,null,null,null,null,null,null,null]},
-///SETUP XLSX READER
-var buffer = fs.readFileSync("../code_art.xlsx");
-var workbook = XLSX.read(buffer, {type:'buffer'});
+ // & | technology is a useful servant but a dangerous master
+ {"buttons":["off","off","b","off","off","off","b","off","off","off","off","b","off","off","off","b","b","off","off","off","b","off","off","off"],"flaps":["t","e","c","h","n","o","l","o","g","y",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"i","s",null,null,null,"a",null,"u","s","e","f","u","l",null,"s","e","r","v","a","n","t",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"b","u","t",null,null,"a",null,"d","a","n","g","e","r","o","u","s",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"m","a","s","t","e","r"]},
+ // ! | the future is here its just not widely distributed yet
+ {"buttons":["off","b","off","off","off","b","off","off","off","off","b","off","off","off","b","off","off","off","off","a","off","off","off","a"],"flaps":[null,"t","h","e",null,"f","u","t","u","r","e",null,"i","s",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"h","e","r","e",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"i","t","s",null,"j","u","s","t",null,"n","o","t",null,null,null,null,null,"w","i","d","e","l","y",null,null,null,null,null,null,null,null,null,null,null,null,null,"d","i","s","t","r","i","b","u","t","e","d",null,"y","e","t",null,null]},
+ // $ | if you can control the meaning of words you can control the people who must use them
+ {"buttons":["a","off","off","off","a","off","off","off","off","a","off","off","off","a","off","off","off","off","b","off","off","off","a","off"],"flaps":["i","f",null,"y","o","u",null,"c","a","n",null,"c","o","n","t","r","o","l","t","h","e",null,"m","e","a","n","i","n","g",null,"o","f",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"w","o","r","d","s","y","o","u",null,"c","a","n",null,"c","o","n","t","r","o","l",null,null,null,"t","h","e",null,"p","e","o","p","l","e",null,"w","h","o",null,null,null,null,null,null,null,null,null,"m","u","s","t",null,"u","s","e",null,"t","h","e","m"]},
-var keys = Object.keys(workbook.Sheets['game_2']);//GETS KEY VALUES OF EACH SHEET [A1, G4, E6]...etc
-// console.log(keys)
+ // GREEN | when you want to know how things really work study them when theyre coming apart
+ {"buttons":["off","off","b","off","off","off","a","a","off","b","off","off","off","b","a","a","off","off","a","off","off","off","a","b"],"flaps":["w","h","e","n",null,"y","o","u",null,"w","a","n","t",null,"t","o",null,null,"k","n","o","w",null,"h","o","w",null,"t","h","i","n","g","s",null,null,null,"r","e","a","l","l","y",null,"w","o","r","k",null,null,null,null,null,null,null,null,null,null,"s","t","u","d","y",null,"t","h","e","m",null,"w","h","e","n",null,null,null,"t","h","e","y","r","e",null,"c","o","m","i","n","g",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"a","p","a","r","t"]},
-keys.forEach((key) => {
- console.log(workbook.Sheets['game_2'][key].v) ///GETS VALUES ASSOCIATED WITH EACH KEY [B, E, N]...etc
-})
+ // @ | through the machineries of greed pettiness and the abuse of power love occurs
+ {"buttons":["off","off","a","off","off","off","a","off","off","off","off","a","off","off","off","a","a","off","off","off","a","off","off","off"],"flaps":[null,"t","h","r","o","u","g","h",null,"t","h","e",null,null,null,null,null,null,"m","a","c","h","i","n","e","r","i","e","s",null,"o","f",null,null,null,null,null,null,"g","r","e","e","d",null,"p","e","t","t","i","n","e","s","s",null,null,null,"a","n","d",null,"t","h","e",null,"a","b","u","s","e",null,null,null,null,null,"o","f",null,"p","o","w","e","r",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"l","o","v","e",null,"o","c","c","u","r","s"]},
-
-
-// B2 - S2
-// B3 - S3
-// B4 - S4
-// B5 - S5
-// B6 - S6
-// B7 - S7
-
-
-const splitFlapModules = {
+ // * | the norms and notions of what just is isnt always justice
+ {"buttons":["b","off","off","off","b","off","off","off","off","b","off","off","off","b","off","off","off","off","a","off","off","off","b","off"],"flaps":[null,"t","h","e",null,null,"n","o","r","m","s",null,"a","n","d",null,null,null,null,null,null,null,null,null,"n","o","t","i","o","n","s",null,null,null,null,null,null,"o","f",null,null,null,"w","h","a","t",null,"j","u","s","t",null,"i","s",null,"i","s","n","t",null,"a","l","w","a","y","s",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"j","u","s","t","i","c","e"]},
- 'B2': 1, 'C2': 2, 'D2': 3, 'E2': 0, 'F2': 0, 'G2': 0, 'H2': 0, 'I2': 0, 'J2': 0, 'K2': 0, 'L2': 0, 'M2': 0, 'N2': 0, 'O2': 0, 'P2': 0, 'Q2': 4, 'R2': 5, 'S2': 6,
-
-
-
-};
+ // % | language is to the mind more than light is to the eye
+ {"buttons":["off","a","off","off","off","a","off","off","off","off","a","off","off","off","a","off","off","off","off","b","off","off","off","b"],"flaps":[null,"l","a","n","g","u","a","g","e",null,"i","s",null,"t","o",null,null,null,null,null,null,"t","h","e",null,"m","i","n","d",null,"m","o","r","e",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"t","h","a","n",null,"l","i","g","h","t",null,"i","s",null,null,null,null,null,null,null,null,null,"t","o",null,"t","h","e",null,"e","y","e",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},
-console.log(splitFlapModules['G2'], 'hello')
-
-let benTest = [];
-
-for (const value in splitFlapModules) {
-
- benTest.push(splitFlapModules[value])
- }
-
- console.log(benTest)
-
-const flaps = [
- 0, //BLACK
- 'J',
- 'B',
- 'M',
- 'R',
- '$',
- 'V',
- 'K',
- 'A',
- 'E',
- 'N',
- 'O',
- 12, // yellow
- '*',
- 14, // green
- 'G',
- 'I',
- '%',
- 'D',
- 'L',
- '&',
- '@',
- 'C',
- 'W',
- 'H',
- 'Y',
- 26, // white
- 'Q',
- 28, // red
- 29, // orange
- '!',
- 'T',
- 'Z',
- 'P',
- 'F',
- '?',
- 'S',
- '#',
- 'U',
- 'X'
+ // ? | you can tune a guitar but you cant tuna fish unless you play bass
+ {"buttons":["off","off","off","b","off","off","off","b","b","off","off","off","b","off","off","off","off","b","off","off","off","a","off","off"],"flaps":["y","o","u",null,null,"c","a","n",null,null,"t","u","n","e",null,null,"a",null,null,"g","u","i","t","a","r",null,"b","u","t",null,"y","o","u",null,null,null,"c","a","n","t",null,"t","u","n","a",null,"f","i","s","h",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"u","n","l","e","s","s",null,"o","f",null,"c","o","u","r","s","e",null,null,null,null,null,"y","o","u",null,null,"p","l","a","y",null,"b","a","s","s"]},
+
+ // ORANGE | of all the sad words of tongue or pen the saddest are these it might have been
+ {"buttons":["off","b","off","off","a","a","off","off","off","off","b","off","a","a","b","off","off","b","off","off","a","a","off","off"],"flaps":["o","f",null,"a","l","l",null,"t","h","e",null,"s","a","d",null,null,null,null,null,"w","o","r","d","s",null,"o","f",null,"t","o","n","g","u","e",null,null,"o","r",null,"p","e","n",null,"t","h","e",null,"s","a","d","d","e","s","t",null,null,null,null,null,"a","r","e",null,"t","h","e","s","e",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"i","t",null,"m","i","g","h","t",null,"h","a","v","e",null,"b","e","e","n"]}
]
+const sampleAction = {
+ id: 1, // id
+ state: 'a' // what the user settled on, which should update the game
+};
+const sampleBtn = {
+ id: 5, // id
+ currentState: 'a', // what it currently is
+ desiredState: 'c' // what we want it to be to win
+};
+const sampleFlap = {
+ id: 4, // id
+ value: 'F', // value to show
+ randomVal: null,
+ matters: true, // it's a
+ isRevealed: false // is being shown
+};
-///SPLIT FLAP FUNCTION
-
-//ACCEPTS AN ARRAY (ON BOXES) & TESTS IF GAME WINNING CONDITIONS ARE MET
-
-
-
-
-
-// var firstSheet = workbook.SheetNames[0];
-
-// console.log(firstSheet) /// outputs sheet name
-
-// console.log(workbook.Sheets['game_1'])
-
-
-// var first_sheet_name = workbook.SheetNames[0];
-// var address_of_cell = 'A1';
-
-// /* Get worksheet */
-// var worksheet = workbook.Sheets[first_sheet_name];
-
-// /* Find desired cell */
-// var desired_cell = worksheet[address_of_cell];
+/**
+ * Takes flapStates and randomly reveals the specified numToReveal
+ */
+const randomGood = (flapStates, numToReveal) => {
+ // don't touch these
+ const dontMatterFlaps = flapStates.filter(fs => !fs.matters);
+ const mattersFlaps = flapStates.filter(fs => fs.matters);
-// /* Get the value */
-// var desired_value = (desired_cell ? desired_cell.v : undefined);
\ No newline at end of file
+ // don't touch these either
+ const mattersRevealed = mattersFlaps.filter(fs => fs.isRevealed);
+
+ // our pool of revealable flaps
+ const mattersToReveal = mattersFlaps.filter(fs => !fs.isRevealed);
+
+ const toReveal = mattersToReveal.filter(fs => !fs.isRevealed);
+ const toRevealShuff = shuffle(toReveal);
+ const toUpdate = toRevealShuff.slice(0, numToReveal);
+ const toLeave = toRevealShuff.slice(numToReveal);
+ const updated = toUpdate.map(fs => {
+ return {
+ ...fs,
+ isRevealed: true,
+ randomVal: randomLetter()
+ };
+ });
+
+ const reassembled = dontMatterFlaps
+ .concat(mattersRevealed)
+ .concat(toLeave)
+ .concat(updated)
+ const reassembledSorted = sortFlaps(reassembled);
+
+ return reassembledSorted;
+}
+
+const removeRandomGood = (flapStates, numToReveal) => {
+ const unrevealed = flapStates.filter(fs => !fs.isRevealed);
+ const revealed = flapStates.filter(fs => fs.isRevealed);
+ const revealedShuffled = shuffle(revealed);
+ const revealedUnchanged = revealedShuffled.slice(numToReveal);
+ const revealedToRandom = revealedShuffled.slice(0, numToReveal)
+ .map(fs => {
+ return {
+ ...fs,
+ isRevealed: false,
+ randomVal: randomWrongValue()
+ };
+ });
+
+ const reassembled = unrevealed
+ .concat(revealedUnchanged)
+ .concat(revealedToRandom);
+
+ const reassembledSorted = sortFlaps(reassembled);
+
+ return reassembledSorted;
+}
+
+const newRandomEvil = (flapStates, numToReveal) => {
+ // don't touch these
+ const dontMatterFlaps = flapStates.filter(fs => !fs.matters);
+ const mattersFlaps = flapStates.filter(fs => fs.matters);
+
+ // don't touch these either
+ const mattersRevealed = mattersFlaps.filter(fs => fs.isRevealed);
+
+ // our pool of revealable flaps
+ const mattersToReveal = mattersFlaps.filter(fs => !fs.isRevealed)
+
+ // If there's nothing left to reveal, but the game isn't won
+ // we must need to randomize something that's already been revealed
+ // and correct. They must have all the correct buttons in position
+ // AND also some additional wrong ones
+ if (!mattersToReveal.length) {
+ return removeRandomGood(flapStates, numToReveal);
+ }
+
+ const toRevealShuff = shuffle(mattersToReveal);
+ const toUpdate = toRevealShuff.slice(0, numToReveal);
+ const toLeave = toRevealShuff.slice(numToReveal);
+ const updated = toUpdate.map(fs => {
+ return {
+ ...fs,
+ randomVal: randomWrongValue()
+ };
+ });
+
+ const reassembled = dontMatterFlaps
+ .concat(mattersRevealed)
+ .concat(toLeave)
+ .concat(updated)
+ const reassembledSorted = sortFlaps(reassembled);
+
+ return reassembledSorted;
+}
+
+const shuffleFlapMapping = (game) => {
+ const mapping = new Array(108)
+ for (let i = 0; i < mapping.length; i++) {
+ const buttonForFlap = Math.floor(Math.random() * 24)
+ mapping[i] = buttonForFlap
+ }
+ game.flapToButtonMapping = mapping
+}
+
+const hasWon = btnStates => {
+ const hasWon = !btnStates.find(btnState => btnState.currentState !== btnState.desiredState);
+ console.log('was the game won?', hasWon);
+ return hasWon
+}
+
+const hasReset = btnStates => !btnStates.find(bs => bs.currentState !== 'off');
+
+// Takes the "generated game" from the level editor and converts it to
+// the live "gameState" object we'll use to track state
+const convertToState = game => {
+ const btnStates = game.buttons
+ .map((state, id) => {
+ return { id, currentState: 'off', desiredState: state };
+ });
+ const flapStates = game.flaps
+ .map((val, id) => {
+ return { id, val, matters: val !== null, isRevealed: false, pos: 0 }
+ });
+
+ const forScott = flapStates.map(fs => 0);
+
+ return {
+ ...game,
+ btnStates,
+ flapStates,
+ forScott,
+ };
+}
+
+const sortFlaps = flapStates => {
+ flapStates.sort((a, b) => a.id - b.id);
+ return flapStates;
+}
+
+const getNumToReveal = (flapStates, btnStates) => {
+ const numOfBtns = countOfBtns(btnStates);
+ return Math.floor(countOfMatters(flapStates) / numOfBtns);
+}
+
+const countOfCorrectBtns = (btnStates) => btnStates.filter(bs.currentState === bs.desiredState).length;
+
+const countOfMatters = flapStates => {
+ return flapStates.filter(flapState => flapState.matters).length;
+}
+
+const countOfRevealed = flapStates => {
+ return flapStates.filter(flapState => flapState.isRevealed && flapState.matters).length;
+}
+
+const countOfUnrevealed = flapStates => {
+ return countOfMatters(flapStates) - countOfRevealed(flapStates);
+}
+
+const countOfBtns = btnStates => {
+ return btnStates.filter(btnState => btnState.desiredState !== 'off').length;
+}
+
+const shuffle = arr => arr
+ .map((item) => ({ item, sort: Math.random() }))
+ .sort((a, b) => a.sort - b.sort)
+ .map(({ item }) => item);
+
+const randomItemsFromArray = (arr, numberOfItems) => {
+ return shuffle(arr).slice(0, numberOfItems);
+}
+
+const randFromOneToMax = max => Math.floor(Math.random() * max) + 1;
+
+const randomWrongValue = () => {
+ // return randomItemsFromArray(randomWrong, 1)[0];
+ return randomItemsFromArray(benRandomWrong, 1)[0];
+}
+
+const randomLetter = () => {
+ return randomItemsFromArray(allLetters, 1)[0];
+}
+
+const convertToWon = gameState => {
+ const updatedBtns = gameState.btnStates.map(btnState => {
+ return {
+ ...btnState,
+ currentState: btnState.desiredState
+ };
+ });
+
+ const updatedFlaps = gameState.flapStates.map(flapState => {
+ return {
+ ...flapState,
+ val: flapState.matters ? flapState.val : null,
+ isRevealed: flapState.matters,
+ randomVal: null
+ };
+ });
+
+ const forScott = gameState.flaps.map(flapLetter => {
+ return flapLetter === null ? 0 : benFlapsMap[flapLetter]
+ });
+
+ return {
+ ...gameState,
+ btnStates: updatedBtns,
+ flapStates: updatedFlaps,
+ forScott
+ };
+}
+
+/**
+ * This function does "it all" (lol) meaning it takes the entire current state
+ * (before user's action is applied) and then applies the user's action, updates
+ * the entire state obj accordingly and returns it.
+ */
+const doItAll = (gameState, action) => {
+ // Apply the user's action to the state obj
+ gameState.btnStates[action.id].currentState = action.state;
+
+ // Short-circuit if it's been reset
+ if (hasReset(gameState.btnStates)) {
+ return convertToState(gameState);
+ }
+
+ // Short-circuit if it's solved
+ if (hasWon(gameState.btnStates)) {
+ return convertToWon(gameState);
+ }
+
+ // See if it was right or wrong
+ const alreadyTriggered = gameState.btnStates[action.id].triggered === true;
+ const currentMatchesDesired = gameState.btnStates[action.id].currentState === gameState.btnStates[action.id].desiredState;
+ const isTurningOff = action.state === 'off';
+ const isCorrect = currentMatchesDesired && !isTurningOff;
+
+ console.log('is this correct?', isCorrect)
+
+ // // Determine how many random things will happen
+ // // (currenlty it's the same whther good or bad. you can change this)
+ // const numToReveal = getNumToReveal(gameState.flapStates, gameState.btnStates);
+
+ // if (isTurningOff) {
+ // if (currentMatchesDesired) {
+ // // Turned off correct -- remove random correct
+ // gameState.flapStates = removeRandomGood(gameState.flapStates, numToReveal);
+ // } else {
+ // // Turned off incorrect - remove random bad
+ // gameState.flapStates = removeRandomBad(gameState.flapStates, numToReveal);
+ // }
+ // } else {
+ // if (currentMatchesDesired) {
+ // // Turned on correct -- add random good
+ // gameState.flapStates = randomGood(gameState.flapStates, numToReveal);
+ // } else {
+ // // Turned on incorrect -- add random bad
+ // gameState.flapStates = newRandomEvil(gameState.flapStates, numToReveal);
+ // }
+ // }
+ gameState.flapStates = gameState.flapStates.map((fs) => {
+ const buttonState = gameState.btnStates[gameState.flapToButtonMapping[fs.id]]
+
+ if (buttonState.currentState === 'off') {
+ // Button off - show blank
+ return {
+ ...fs,
+ isRevealed: false,
+ randomVal: null,
+ }
+ } else if (buttonState.currentState == buttonState.desiredState) {
+ // Button on and right - show good value
+ return {
+ ...fs,
+ isRevealed: true,
+ randomVal: allLetters.indexOf(fs.randomVal) > -1 ? fs.randomVal : randomLetter(),
+ }
+ } else {
+ // Button on and wrong - show bad value
+ return {
+ ...fs,
+ isRevealed: true,
+ randomVal: benRandomWrong.indexOf(fs.randomVal) > -1 ? fs.randomVal : randomWrongValue(),
+ }
+ }
+ })
+
+ const forScott = gameState.flapStates.map(fs => {
+ const lookupVal = fs.randomVal || (fs.isRevealed && fs.val) || 0;
+ return benFlapsMap[lookupVal];
+ });
+
+ const newGameState = {
+ ...gameState,
+ forScott
+ };
+
+ // console.log('returning game state', newGameState); /// JIM STUFF
+
+ return newGameState;
+}
+
+const buttonDown = (gameState, btnPin) => {
+ // Convert Ben's "btnPin" (0-48) to Jim's "boxId" (0-24)
+ const boxId = Math.floor(btnPin / 2);
+ const isEven = btnPin % 2 === 0;
+ const newState = isEven ? 'a' : 'b';
+
+ const jimAction = { id: boxId, state: newState };
+ console.log(`btnPin ${btnPin} DOWN converted to: ${JSON.stringify(jimAction)}`)
+
+ return doItAll(gameState, jimAction);
+}
+const buttonUp = (gameState, btnPin) => {
+ // Convert Ben's "btnPin" (0-48) to Jim's "boxId" (0-24)
+ const boxId = Math.floor(btnPin / 2);
+
+ const jimAction = { id: boxId, state: 'off' };
+ // console.log(`btnPin ${btnPin} UP converted to: ${JSON.stringify(jimAction)}`)
+
+ return doItAll(gameState, jimAction);
+}
+
+const initialGameStateObject = convertToState(levelEditorGameObject);
+
+module.exports = {buttonUp, buttonDown, convertToState, gamesList, initialGameStateObject, shuffleFlapMapping}
\ No newline at end of file
diff --git a/codeart_backend/package-lock.json b/codeart_backend/package-lock.json
index 1eb948b..7f1100d 100644
--- a/codeart_backend/package-lock.json
+++ b/codeart_backend/package-lock.json
@@ -11,23 +11,6 @@
"optional": true,
"requires": {
"debug": "^4.1.1"
- },
- "dependencies": {
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "optional": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "optional": true
- }
}
},
"@serialport/binding-mock": {
@@ -41,12 +24,12 @@
},
"dependencies": {
"debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+ "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"optional": true,
"requires": {
- "ms": "^2.1.1"
+ "ms": "2.1.2"
}
},
"ms": {
@@ -58,9 +41,9 @@
}
},
"@serialport/bindings": {
- "version": "8.0.7",
- "resolved": "https://registry.npmjs.org/@serialport/bindings/-/bindings-8.0.7.tgz",
- "integrity": "sha512-IqudDL8ne2Y2S0W5fKA6wdgHCIA2e2OIaPVYhGy6duE6legNHFY+05CLicHAyAeTocXmHU7rVNxzVQrOG5tM4g==",
+ "version": "8.0.8",
+ "resolved": "https://registry.npmjs.org/@serialport/bindings/-/bindings-8.0.8.tgz",
+ "integrity": "sha512-xMJHr7CyOPq+wwC/S2RNI+tY+WZW4gXY3tE8QUOIRp0K7lSyLYOzKdyGUtk2uI0ohDMV3OcB+TEhhffT2S2DHQ==",
"optional": true,
"requires": {
"@serialport/binding-abstract": "^8.0.6",
@@ -69,23 +52,6 @@
"debug": "^4.1.1",
"nan": "^2.14.0",
"prebuild-install": "^5.3.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "optional": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "optional": true
- }
}
},
"@serialport/parser-byte-length": {
@@ -134,23 +100,6 @@
"optional": true,
"requires": {
"debug": "^4.1.1"
- },
- "dependencies": {
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "optional": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "optional": true
- }
}
},
"accepts": {
@@ -162,15 +111,6 @@
"negotiator": "0.6.2"
}
},
- "adler-32": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz",
- "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=",
- "requires": {
- "exit-on-epipe": "~1.0.1",
- "printj": "~1.1.0"
- }
- },
"after": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
@@ -207,9 +147,9 @@
"optional": true
},
"are-we-there-yet": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
- "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
+ "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
"optional": true,
"requires": {
"delegates": "^1.0.0",
@@ -226,25 +166,20 @@
"resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
"integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog=="
},
- "async-limiter": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
- "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
- },
"backo2": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
"integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc="
},
"base64-arraybuffer": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
- "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz",
+ "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI="
},
"base64-js": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
- "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"optional": true
},
"base64id": {
@@ -252,14 +187,6 @@
"resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
"integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog=="
},
- "better-assert": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
- "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
- "requires": {
- "callsite": "1.0.0"
- }
- },
"bindings": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
@@ -269,9 +196,9 @@
}
},
"bl": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz",
- "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
"optional": true,
"requires": {
"buffer": "^5.5.0",
@@ -279,12 +206,6 @@
"readable-stream": "^3.4.0"
},
"dependencies": {
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "optional": true
- },
"readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
@@ -318,16 +239,37 @@
"qs": "6.7.0",
"raw-body": "2.4.0",
"type-is": "~1.6.17"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
}
},
+ "browser-serialport": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/browser-serialport/-/browser-serialport-2.1.0.tgz",
+ "integrity": "sha1-+4QHfoS5u7uEk1quH8rJzmEF3H8=",
+ "optional": true
+ },
"buffer": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.5.0.tgz",
- "integrity": "sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww==",
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"optional": true,
"requires": {
- "base64-js": "^1.0.2",
- "ieee754": "^1.1.4"
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
}
},
"bytes": {
@@ -335,21 +277,6 @@
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
"integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
},
- "callsite": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
- "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA="
- },
- "cfb": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.0.tgz",
- "integrity": "sha512-sXMvHsKCICVR3Naq+J556K+ExBo9n50iKl6LGarlnvuA2035uMlGA/qVrc0wQtow5P1vJEw9UyrKLCbtIKz+TQ==",
- "requires": {
- "adler-32": "~1.2.0",
- "crc-32": "~1.2.0",
- "printj": "~1.1.2"
- }
- },
"chalk": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
@@ -372,11 +299,6 @@
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
"optional": true
},
- "codepage": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz",
- "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
- },
"color-convert": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.2.2.tgz",
@@ -387,20 +309,15 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
- "commander": {
- "version": "2.17.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
- "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg=="
- },
"component-bind": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
"integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E="
},
"component-emitter": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
},
"component-inherit": {
"version": "0.0.3",
@@ -437,9 +354,9 @@
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
"core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
"optional": true
},
"cors": {
@@ -451,29 +368,13 @@
"vary": "^1"
}
},
- "crc-32": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz",
- "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==",
- "requires": {
- "exit-on-epipe": "~1.0.1",
- "printj": "~1.1.0"
- }
- },
- "csv-parser": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/csv-parser/-/csv-parser-3.0.0.tgz",
- "integrity": "sha512-s6OYSXAK3IdKqYO33y09jhypG/bSDHPuyCme/IdEHfWpLf/jKcpitVFyOC6UemgGk8v7Q5u2XE0vvwmanxhGlQ==",
- "requires": {
- "minimist": "^1.2.0"
- }
- },
"debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+ "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+ "optional": true,
"requires": {
- "ms": "2.0.0"
+ "ms": "2.1.2"
}
},
"decompress-response": {
@@ -533,22 +434,22 @@
}
},
"engine.io": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.0.tgz",
- "integrity": "sha512-XCyYVWzcHnK5cMz7G4VTu2W7zJS7SM1QkcelghyIk/FmobWBtXE7fwhBusEKvCSqc3bMh8fNFMlUkCKTFRxH2w==",
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz",
+ "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==",
"requires": {
"accepts": "~1.3.4",
"base64id": "2.0.0",
- "cookie": "0.3.1",
+ "cookie": "~0.4.1",
"debug": "~4.1.0",
"engine.io-parser": "~2.2.0",
- "ws": "^7.1.2"
+ "ws": "~7.4.2"
},
"dependencies": {
"cookie": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
- "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
+ "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
},
"debug": {
"version": "4.1.1",
@@ -557,63 +458,50 @@
"requires": {
"ms": "^2.1.1"
}
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"engine.io-client": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.0.tgz",
- "integrity": "sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA==",
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.2.tgz",
+ "integrity": "sha512-QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA==",
"requires": {
- "component-emitter": "1.2.1",
+ "component-emitter": "~1.3.0",
"component-inherit": "0.0.3",
- "debug": "~4.1.0",
+ "debug": "~3.1.0",
"engine.io-parser": "~2.2.0",
"has-cors": "1.1.0",
"indexof": "0.0.1",
- "parseqs": "0.0.5",
- "parseuri": "0.0.5",
- "ws": "~6.1.0",
- "xmlhttprequest-ssl": "~1.5.4",
+ "parseqs": "0.0.6",
+ "parseuri": "0.0.6",
+ "ws": "~7.4.2",
+ "xmlhttprequest-ssl": "~1.6.2",
"yeast": "0.1.2"
},
"dependencies": {
"debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
- "ms": "^2.1.1"
+ "ms": "2.0.0"
}
},
"ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "ws": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz",
- "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==",
- "requires": {
- "async-limiter": "~1.0.0"
- }
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}
}
},
"engine.io-parser": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz",
- "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz",
+ "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==",
"requires": {
"after": "0.8.2",
"arraybuffer.slice": "~0.0.7",
- "base64-arraybuffer": "0.1.5",
+ "base64-arraybuffer": "0.1.4",
"blob": "0.0.5",
"has-binary2": "~1.0.2"
}
@@ -642,11 +530,6 @@
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
},
- "exit-on-epipe": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
- "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="
- },
"expand-template": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
@@ -688,13 +571,23 @@
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
}
},
- "fflate": {
- "version": "0.3.11",
- "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.3.11.tgz",
- "integrity": "sha512-Rr5QlUeGN1mbOHlaqcSYMKVpPbgLy0AWT/W0EHxA6NGI12yO1jpoui2zBBvU2G824ltM6Ut8BFgfHSBGfkmS0A=="
- },
"file-uri-to-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
@@ -712,33 +605,43 @@
"parseurl": "~1.3.3",
"statuses": "~1.5.0",
"unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
}
},
"firmata": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/firmata/-/firmata-2.2.0.tgz",
- "integrity": "sha512-/Q8oSwAQVPfnAtiJj9VQb5HBDYvonN/a843MQq+7VjS74Pi2KWYTW2XZajUHH3u47lo0kahaycZpgOp4aidqlA==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/firmata/-/firmata-2.3.0.tgz",
+ "integrity": "sha512-6zl27bHtIlRFM2n5GnU7YeTM5qhRTHQDJ0Zgs8/O/KrbLz3BXIsJFs5Ek2QD6gMG3wgPPQGNaegbTZcj+mo84A==",
"optional": true,
"requires": {
- "firmata-io": "^2.2.0",
+ "firmata-io": "^2.3.0",
"serialport": "^8.0.5"
}
},
"firmata-io": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/firmata-io/-/firmata-io-2.2.0.tgz",
- "integrity": "sha512-K4WTkHWhptQ6OM/SGLz/+jyO4wBcIigEj15gxdJBJ+NErSHaG4Mg8lra0kDNB049NYXMfZYgy27C3mU8+0bybQ==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/firmata-io/-/firmata-io-2.3.0.tgz",
+ "integrity": "sha512-OQ1Q0TInQ23ogI61kVwf3WJUD+viPbDI6uLN99yGLe6GioN3EbRSDSZVn1gEXyQLNjD2ZFVKnTbpiQ2t3VoecA==",
"optional": true
},
"forwarded": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
- "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
- },
- "frac": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz",
- "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
},
"fresh": {
"version": "0.5.2",
@@ -767,11 +670,6 @@
"wide-align": "^1.1.0"
}
},
- "get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="
- },
"github-from-package": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
@@ -784,6 +682,13 @@
"integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
"requires": {
"isarray": "2.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+ "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
+ }
}
},
"has-cors": {
@@ -812,6 +717,13 @@
"setprototypeof": "1.1.1",
"statuses": ">= 1.5.0 < 2",
"toidentifier": "1.0.0"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ }
}
},
"iconv-lite": {
@@ -823,9 +735,9 @@
}
},
"ieee754": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
- "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
"optional": true
},
"indexof": {
@@ -834,20 +746,21 @@
"integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
},
"inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "optional": true
},
"ini": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
- "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
"optional": true
},
"ipaddr.js": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
- "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
},
"is-fullwidth-code-point": {
"version": "1.0.0",
@@ -859,14 +772,15 @@
}
},
"isarray": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
- "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "optional": true
},
"johnny-five": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/johnny-five/-/johnny-five-1.4.0.tgz",
- "integrity": "sha512-Zqk/HnVueqg9QUcfMtl3cN56E8Mh9FxS8vkvsP+FXLrP1wH6q6pdp1ejht7JTgMJ9J9UI1Z/lI4x1AudCrrYiw==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/johnny-five/-/johnny-five-1.5.0.tgz",
+ "integrity": "sha512-5Br2oLSsItB5dfslE2TXTc5cZ61wAX46kD2yJO1pu57nVRnCIdJZxV4EAiY5VEzH6MVW2vL57NSnZqNxMMMfLg==",
"requires": {
"browser-serialport": "^2.1.0",
"chalk": "2.1.0",
@@ -877,19 +791,6 @@
"nanotimer": "0.3.10",
"serialport": "^8.0.5",
"temporal": "^0.7.1"
- },
- "dependencies": {
- "browser-serialport": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/browser-serialport/-/browser-serialport-2.1.0.tgz",
- "integrity": "sha1-+4QHfoS5u7uEk1quH8rJzmEF3H8=",
- "optional": true
- },
- "temporal": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/temporal/-/temporal-0.7.1.tgz",
- "integrity": "sha512-6Xd3c2llgkjGP7kn2LXuiHZ8/cRiIX5EsPcvn8slkAcayWEzf7xuXxd7BcgUm2djmI1DPFUSMFeFwQcLVMLsOw=="
- }
}
},
"lodash.clonedeep": {
@@ -923,16 +824,16 @@
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
},
"mime-db": {
- "version": "1.40.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
- "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
+ "version": "1.50.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz",
+ "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A=="
},
"mime-types": {
- "version": "2.1.24",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
- "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
+ "version": "2.1.33",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz",
+ "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==",
"requires": {
- "mime-db": "1.40.0"
+ "mime-db": "1.50.0"
}
},
"mimic-response": {
@@ -944,32 +845,24 @@
"minimist": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
- },
- "mkdirp": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
- "optional": true,
- "requires": {
- "minimist": "^1.2.5"
- }
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+ "optional": true
},
"mkdirp-classic": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.2.tgz",
- "integrity": "sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g==",
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
"optional": true
},
"ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"nan": {
- "version": "2.14.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
- "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
+ "version": "2.15.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz",
+ "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ=="
},
"nanotimer": {
"version": "0.3.10",
@@ -982,25 +875,15 @@
"integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==",
"optional": true
},
- "neat-csv": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/neat-csv/-/neat-csv-6.0.1.tgz",
- "integrity": "sha512-j87x1Rj2KiyZeOtFzedZXV8XN7Om/BcEcclPfj84I24yq9vfarNY8DrKKN8nfwN1FtQZgBvxTfQbwpugkV2MoA==",
- "requires": {
- "csv-parser": "^3.0.0",
- "get-stream": "^6.0.0",
- "to-readable-stream": "^2.1.0"
- }
- },
"negotiator": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
},
"node-abi": {
- "version": "2.15.0",
- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.15.0.tgz",
- "integrity": "sha512-FeLpTS0F39U7hHZU1srAK4Vx+5AHNVOTP+hxBNQknR/54laTHSFIJkDWDqiquY1LeLUgTfPN7sLPhMubx0PLAg==",
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz",
+ "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==",
"optional": true,
"requires": {
"semver": "^5.4.1"
@@ -1035,11 +918,6 @@
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
- "object-component": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
- "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE="
- },
"on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@@ -1067,20 +945,14 @@
}
},
"parseqs": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
- "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
- "requires": {
- "better-assert": "~1.0.0"
- }
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz",
+ "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w=="
},
"parseuri": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
- "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
- "requires": {
- "better-assert": "~1.0.0"
- }
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz",
+ "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow=="
},
"parseurl": {
"version": "1.3.3",
@@ -1093,16 +965,16 @@
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
},
"prebuild-install": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.3.tgz",
- "integrity": "sha512-GV+nsUXuPW2p8Zy7SarF/2W/oiK8bFQgJcncoJ0d7kRpekEA0ftChjfEaF9/Y+QJEc/wFR7RAEa8lYByuUIe2g==",
+ "version": "5.3.6",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz",
+ "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==",
"optional": true,
"requires": {
"detect-libc": "^1.0.3",
"expand-template": "^2.0.3",
"github-from-package": "0.0.0",
- "minimist": "^1.2.0",
- "mkdirp": "^0.5.1",
+ "minimist": "^1.2.3",
+ "mkdirp-classic": "^0.5.3",
"napi-build-utils": "^1.0.1",
"node-abi": "^2.7.0",
"noop-logger": "^0.1.1",
@@ -1115,11 +987,6 @@
"which-pm-runs": "^1.0.0"
}
},
- "printj": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz",
- "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
- },
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -1127,12 +994,12 @@
"optional": true
},
"proxy-addr": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
- "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
"requires": {
- "forwarded": "~0.1.2",
- "ipaddr.js": "1.9.0"
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
}
},
"pump": {
@@ -1191,14 +1058,6 @@
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
- },
- "dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "optional": true
- }
}
},
"safe-buffer": {
@@ -1237,6 +1096,21 @@
"statuses": "~1.5.0"
},
"dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
@@ -1245,13 +1119,13 @@
}
},
"serialport": {
- "version": "8.0.7",
- "resolved": "https://registry.npmjs.org/serialport/-/serialport-8.0.7.tgz",
- "integrity": "sha512-R9bfNebs2dblYf5sD/Aaa7j8+siP4X7TGT02lqHM9DF5fyjlrPGXmsLw9+LKOz1AvjGjkxf2NzBVnDpqRX7clQ==",
+ "version": "8.0.8",
+ "resolved": "https://registry.npmjs.org/serialport/-/serialport-8.0.8.tgz",
+ "integrity": "sha512-GEaMYbAk9chfGyxoVC27PHnKMUMOQOCAg+9umOhAgk88vH0H6DbQ9/Tj3lRwoj7lE+TLra75P/0l1RXMfX4yQg==",
"optional": true,
"requires": {
"@serialport/binding-mock": "^8.0.6",
- "@serialport/bindings": "^8.0.7",
+ "@serialport/bindings": "^8.0.8",
"@serialport/parser-byte-length": "^8.0.6",
"@serialport/parser-cctalk": "^8.0.6",
"@serialport/parser-delimiter": "^8.0.6",
@@ -1260,23 +1134,6 @@
"@serialport/parser-regex": "^8.0.6",
"@serialport/stream": "^8.0.6",
"debug": "^4.1.1"
- },
- "dependencies": {
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "optional": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "optional": true
- }
}
},
"serve-static": {
@@ -1302,15 +1159,15 @@
"integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
},
"signal-exit": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
- "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz",
+ "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==",
"optional": true
},
"simple-concat": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz",
- "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
"optional": true
},
"simple-get": {
@@ -1325,15 +1182,15 @@
}
},
"socket.io": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz",
- "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz",
+ "integrity": "sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==",
"requires": {
"debug": "~4.1.0",
- "engine.io": "~3.4.0",
+ "engine.io": "~3.5.0",
"has-binary2": "~1.0.2",
"socket.io-adapter": "~1.1.0",
- "socket.io-client": "2.3.0",
+ "socket.io-client": "2.4.0",
"socket.io-parser": "~3.4.0"
},
"dependencies": {
@@ -1344,11 +1201,6 @@
"requires": {
"ms": "^2.1.1"
}
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
@@ -1358,76 +1210,68 @@
"integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g=="
},
"socket.io-client": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz",
- "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz",
+ "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==",
"requires": {
"backo2": "1.0.2",
- "base64-arraybuffer": "0.1.5",
"component-bind": "1.0.0",
- "component-emitter": "1.2.1",
- "debug": "~4.1.0",
- "engine.io-client": "~3.4.0",
+ "component-emitter": "~1.3.0",
+ "debug": "~3.1.0",
+ "engine.io-client": "~3.5.0",
"has-binary2": "~1.0.2",
- "has-cors": "1.1.0",
"indexof": "0.0.1",
- "object-component": "0.0.3",
- "parseqs": "0.0.5",
- "parseuri": "0.0.5",
+ "parseqs": "0.0.6",
+ "parseuri": "0.0.6",
"socket.io-parser": "~3.3.0",
"to-array": "0.1.4"
},
"dependencies": {
"debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
- "ms": "^2.1.1"
+ "ms": "2.0.0"
}
},
+ "isarray": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+ "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
+ },
"ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"socket.io-parser": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz",
- "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz",
+ "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==",
"requires": {
- "component-emitter": "1.2.1",
+ "component-emitter": "~1.3.0",
"debug": "~3.1.0",
"isarray": "2.0.1"
- },
- "dependencies": {
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
}
}
}
},
"socket.io-parser": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.0.tgz",
- "integrity": "sha512-/G/VOI+3DBp0+DJKW4KesGnQkQPFmUCbA/oO2QGT6CWxU7hLGWqU3tyuzeSK/dqcyeHsQg1vTe9jiZI8GU9SCQ==",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz",
+ "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==",
"requires": {
"component-emitter": "1.2.1",
"debug": "~4.1.0",
"isarray": "2.0.1"
},
"dependencies": {
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
+ },
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
@@ -1436,20 +1280,678 @@
"ms": "^2.1.1"
}
},
+ "isarray": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+ "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
+ }
+ }
+ },
+ "splitflapjs": {
+ "version": "file:../ext/splitflap/software/js/splitflapjs",
+ "requires": {
+ "cobs": "^0.2.1",
+ "crc-32": "^1.2.0",
+ "serialport": "^9.2.4"
+ },
+ "dependencies": {
+ "@cspotcode/source-map-consumer": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz",
+ "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg=="
+ },
+ "@cspotcode/source-map-support": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.6.1.tgz",
+ "integrity": "sha512-DX3Z+T5dt1ockmPdobJS/FAsQPW4V4SrWEhD2iYQT2Cb2tQsiMnYxrcUH9By/Z3B+v0S5LMBkQtV/XOBbpLEOg==",
+ "requires": {
+ "@cspotcode/source-map-consumer": "0.8.0"
+ }
+ },
+ "@serialport/binding-abstract": {
+ "version": "9.2.3",
+ "resolved": "https://registry.npmjs.org/@serialport/binding-abstract/-/binding-abstract-9.2.3.tgz",
+ "integrity": "sha512-cQs9tbIlG3P0IrOWyVirqlhWuJ7Ms2Zh9m2108z6Y5UW/iVj6wEOiW8EmK9QX9jmJXYllE7wgGgvVozP5oCj3w==",
+ "requires": {
+ "debug": "^4.3.2"
+ }
+ },
+ "@serialport/binding-mock": {
+ "version": "9.2.4",
+ "resolved": "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-9.2.4.tgz",
+ "integrity": "sha512-dpEhACCs44oQhh6ajJfJdvQdK38Vq0N4W6iD/gdplglDCK7qXRQCMUjJIeKdS/HSEiWkC3bwumUhUufdsOyT4g==",
+ "requires": {
+ "@serialport/binding-abstract": "9.2.3",
+ "debug": "^4.3.2"
+ }
+ },
+ "@serialport/bindings": {
+ "version": "9.2.4",
+ "resolved": "https://registry.npmjs.org/@serialport/bindings/-/bindings-9.2.4.tgz",
+ "integrity": "sha512-l3IHtIL9aN42Xrqu9L8g/+jZcR0jfnXwRxHslDA8YRd7Jw9lo1qL/vqiIYkvC8NAW3Iz2JdWeM7Pr98l/rwjSQ==",
+ "requires": {
+ "@serialport/binding-abstract": "9.2.3",
+ "@serialport/parser-readline": "9.2.4",
+ "bindings": "^1.5.0",
+ "debug": "^4.3.2",
+ "nan": "^2.15.0",
+ "prebuild-install": "^6.1.4"
+ }
+ },
+ "@serialport/parser-byte-length": {
+ "version": "9.2.4",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-9.2.4.tgz",
+ "integrity": "sha512-sQD/iw4ZMU3xW9PLi0/GlvU6Y623jGeWecbMkO7izUo/6P7gtfv1c9ikd5h0kwL8AoAOpQA1lxdHIKox+umBUg=="
+ },
+ "@serialport/parser-cctalk": {
+ "version": "9.2.4",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-9.2.4.tgz",
+ "integrity": "sha512-T4TU5vQMwmo9AB3gQLFDWbfJXlW5jd9guEsB/nqKjFHTv0FXPdZ7DQ2TpSp8RnHWxU3GX6kYTaDO20BKzc8GPQ=="
+ },
+ "@serialport/parser-delimiter": {
+ "version": "9.2.4",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-9.2.4.tgz",
+ "integrity": "sha512-4nvTAoYAgkxFiXrkI+3CA49Yd43CODjeszh89EK+I9c8wOZ+etZduRCzINYPiy26g7zO+GRAb9FoPCsY+sYcbQ=="
+ },
+ "@serialport/parser-inter-byte-timeout": {
+ "version": "9.2.4",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-9.2.4.tgz",
+ "integrity": "sha512-SOAdvr0oBQIOCXX198hiTlxs4JTKg9j5piapw5tNq52fwDOWdbYrFneT/wN04UTMKaDrJuEvXq6T4rv4j7nJ5A=="
+ },
+ "@serialport/parser-readline": {
+ "version": "9.2.4",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-9.2.4.tgz",
+ "integrity": "sha512-Z1/qrZTQUVhNSJP1hd9YfDvq0o7d87rNwAjjRKbVpa7Qi51tG5BnKt43IV3NFMyBlVcRe0rnIb3tJu57E0SOwg==",
+ "requires": {
+ "@serialport/parser-delimiter": "9.2.4"
+ }
+ },
+ "@serialport/parser-ready": {
+ "version": "9.2.4",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-9.2.4.tgz",
+ "integrity": "sha512-Pyi94Itjl6qAURwIZr/gmZpMAyTmKXThm6vL5DoAWGQjcRHWB0gwv2TY2v7N+mQLJYUKU3cMnvnATXxHm7xjxw=="
+ },
+ "@serialport/parser-regex": {
+ "version": "9.2.4",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-9.2.4.tgz",
+ "integrity": "sha512-sI/cVvPOYz+Dbv4ZdnW16qAwvXiFf/1pGASQdbveRTlgJDdz7sRNlCBifzfTN2xljwvCTZYqiudKvDdC1TepRQ=="
+ },
+ "@serialport/stream": {
+ "version": "9.2.4",
+ "resolved": "https://registry.npmjs.org/@serialport/stream/-/stream-9.2.4.tgz",
+ "integrity": "sha512-bLye8Ub4vUFQGmkh8qEqehr7SE7EJs2yDs0h9jzuL5oKi+F34CFmWkEErO8GAOQ8YNn7p6b3GxUgs+0BrHHDZQ==",
+ "requires": {
+ "debug": "^4.3.2"
+ }
+ },
+ "@tsconfig/node10": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
+ "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg=="
+ },
+ "@tsconfig/node12": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz",
+ "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw=="
+ },
+ "@tsconfig/node14": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz",
+ "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg=="
+ },
+ "@tsconfig/node16": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
+ "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA=="
+ },
+ "@types/node": {
+ "version": "16.10.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.2.tgz",
+ "integrity": "sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ=="
+ },
+ "acorn": {
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz",
+ "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q=="
+ },
+ "acorn-walk": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
+ "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA=="
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+ },
+ "are-we-there-yet": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
+ "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "arg": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
+ },
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
+ },
+ "bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "requires": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
+ "bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "requires": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+ },
+ "cobs": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/cobs/-/cobs-0.2.1.tgz",
+ "integrity": "sha1-5uuPtTeSdMiNn2hR6qY9Cu4ROSA="
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
+ },
+ "core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ },
+ "crc-32": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz",
+ "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==",
+ "requires": {
+ "exit-on-epipe": "~1.0.1",
+ "printj": "~1.1.0"
+ }
+ },
+ "create-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
+ },
+ "debug": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+ "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "decompress-response": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
+ "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
+ "requires": {
+ "mimic-response": "^2.0.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
+ },
+ "diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "exit-on-epipe": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
+ "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="
+ },
+ "expand-template": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="
+ },
+ "file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
+ },
+ "fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "github-from-package": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+ "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4="
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
+ },
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "make-error": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
+ },
+ "mimic-response": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
+ "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA=="
+ },
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+ },
+ "mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
+ },
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "nan": {
+ "version": "2.15.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz",
+ "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ=="
+ },
+ "napi-build-utils": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
+ "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
+ },
+ "node-abi": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz",
+ "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==",
+ "requires": {
+ "semver": "^5.4.1"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "prebuild-install": {
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz",
+ "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==",
+ "requires": {
+ "detect-libc": "^1.0.3",
+ "expand-template": "^2.0.3",
+ "github-from-package": "0.0.0",
+ "minimist": "^1.2.3",
+ "mkdirp-classic": "^0.5.3",
+ "napi-build-utils": "^1.0.1",
+ "node-abi": "^2.21.0",
+ "npmlog": "^4.0.1",
+ "pump": "^3.0.0",
+ "rc": "^1.2.7",
+ "simple-get": "^3.0.3",
+ "tar-fs": "^2.0.0",
+ "tunnel-agent": "^0.6.0"
+ }
+ },
+ "printj": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz",
+ "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ },
+ "serialport": {
+ "version": "9.2.4",
+ "resolved": "https://registry.npmjs.org/serialport/-/serialport-9.2.4.tgz",
+ "integrity": "sha512-QRn9/iYTK7qXfACskR+f2NIXwSZf/DwPQgFNRP89THFoX2sQVsMyNQZ9quB1XP5RujL7wYTRtZ/eSGSACI1d3A==",
+ "requires": {
+ "@serialport/binding-mock": "9.2.4",
+ "@serialport/bindings": "9.2.4",
+ "@serialport/parser-byte-length": "9.2.4",
+ "@serialport/parser-cctalk": "9.2.4",
+ "@serialport/parser-delimiter": "9.2.4",
+ "@serialport/parser-inter-byte-timeout": "9.2.4",
+ "@serialport/parser-readline": "9.2.4",
+ "@serialport/parser-ready": "9.2.4",
+ "@serialport/parser-regex": "9.2.4",
+ "@serialport/stream": "9.2.4",
+ "debug": "^4.3.2"
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+ },
+ "signal-exit": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz",
+ "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ=="
+ },
+ "simple-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
+ },
+ "simple-get": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz",
+ "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==",
+ "requires": {
+ "decompress-response": "^4.2.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
+ },
+ "tar-fs": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+ "requires": {
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.1.4"
+ }
+ },
+ "tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "requires": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "ts-node": {
+ "version": "10.2.1",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.2.1.tgz",
+ "integrity": "sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==",
+ "requires": {
+ "@cspotcode/source-map-support": "0.6.1",
+ "@tsconfig/node10": "^1.0.7",
+ "@tsconfig/node12": "^1.0.7",
+ "@tsconfig/node14": "^1.0.0",
+ "@tsconfig/node16": "^1.0.2",
+ "acorn": "^8.4.1",
+ "acorn-walk": "^8.1.1",
+ "arg": "^4.1.0",
+ "create-require": "^1.1.0",
+ "diff": "^4.0.1",
+ "make-error": "^1.1.1",
+ "yn": "3.1.1"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "yn": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="
}
}
},
- "ssf": {
- "version": "0.11.2",
- "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz",
- "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
- "requires": {
- "frac": "~1.1.2"
- }
+ "splitflapjs-proto": {
+ "version": "file:../ext/splitflap/software/js/splitflapjs-proto"
},
"statuses": {
"version": "1.5.0",
@@ -1500,24 +2002,24 @@
}
},
"tar-fs": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz",
- "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
"optional": true,
"requires": {
"chownr": "^1.1.1",
"mkdirp-classic": "^0.5.2",
"pump": "^3.0.0",
- "tar-stream": "^2.0.0"
+ "tar-stream": "^2.1.4"
}
},
"tar-stream": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz",
- "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
"optional": true,
"requires": {
- "bl": "^4.0.1",
+ "bl": "^4.0.3",
"end-of-stream": "^1.4.1",
"fs-constants": "^1.0.0",
"inherits": "^2.0.3",
@@ -1537,16 +2039,16 @@
}
}
},
+ "temporal": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/temporal/-/temporal-0.7.1.tgz",
+ "integrity": "sha512-6Xd3c2llgkjGP7kn2LXuiHZ8/cRiIX5EsPcvn8slkAcayWEzf7xuXxd7BcgUm2djmI1DPFUSMFeFwQcLVMLsOw=="
+ },
"to-array": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
"integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA="
},
- "to-readable-stream": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz",
- "integrity": "sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w=="
- },
"toidentifier": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
@@ -1606,16 +2108,6 @@
"string-width": "^1.0.2 || 2"
}
},
- "wmf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz",
- "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
- },
- "word": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz",
- "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
- },
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -1623,31 +2115,14 @@
"optional": true
},
"ws": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz",
- "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ=="
- },
- "xlsx": {
- "version": "0.17.1",
- "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.17.1.tgz",
- "integrity": "sha512-SrvK+kMEjiVIKYyJSjSIJwzm2cZn8nQWVh708g7O+pTsmgjoa+uYNLEUn7jmwQdMI/ffCHcY5yEvwBXssBwpRA==",
- "requires": {
- "adler-32": "~1.2.0",
- "cfb": "^1.1.4",
- "codepage": "~1.15.0",
- "commander": "~2.17.1",
- "crc-32": "~1.2.0",
- "exit-on-epipe": "~1.0.1",
- "fflate": "^0.3.8",
- "ssf": "~0.11.2",
- "wmf": "~1.0.1",
- "word": "~0.3.0"
- }
+ "version": "7.4.6",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
+ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A=="
},
"xmlhttprequest-ssl": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
- "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4="
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz",
+ "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q=="
},
"yeast": {
"version": "0.1.2",
diff --git a/codeart_backend/package.json b/codeart_backend/package.json
index 06c67fd..d61354f 100644
--- a/codeart_backend/package.json
+++ b/codeart_backend/package.json
@@ -20,8 +20,8 @@
"express": "^4.17.1",
"johnny-five": "^1.4.0",
"onoff": "^5.0.1",
- "raspi-io": "^11.0.0",
"socket.io": "^2.3.0",
- "xlsx": "^0.17.1"
+ "splitflapjs": "file:../ext/splitflap/software/js/splitflapjs",
+ "splitflapjs-proto": "file:../ext/splitflap/software/js/splitflapjs-proto"
}
}
diff --git a/codeart_backend/public/.DS_Store b/codeart_backend/public/.DS_Store
new file mode 100644
index 0000000..e69be22
Binary files /dev/null and b/codeart_backend/public/.DS_Store differ
diff --git a/codeart_backend/public/asset-manifest.json b/codeart_backend/public/asset-manifest.json
new file mode 100644
index 0000000..720d2a1
--- /dev/null
+++ b/codeart_backend/public/asset-manifest.json
@@ -0,0 +1,26 @@
+{
+ "files": {
+ "main.css": "/static/css/main.800ad38d.chunk.css",
+ "main.js": "/static/js/main.c04284a1.chunk.js",
+ "main.js.map": "/static/js/main.c04284a1.chunk.js.map",
+ "runtime-main.js": "/static/js/runtime-main.95403422.js",
+ "runtime-main.js.map": "/static/js/runtime-main.95403422.js.map",
+ "static/css/2.9a44ea78.chunk.css": "/static/css/2.9a44ea78.chunk.css",
+ "static/js/2.f6b7336f.chunk.js": "/static/js/2.f6b7336f.chunk.js",
+ "static/js/2.f6b7336f.chunk.js.map": "/static/js/2.f6b7336f.chunk.js.map",
+ "index.html": "/index.html",
+ "precache-manifest.c435daf8b2e911eb4bb8e336fc112412.js": "/precache-manifest.c435daf8b2e911eb4bb8e336fc112412.js",
+ "service-worker.js": "/service-worker.js",
+ "static/css/2.9a44ea78.chunk.css.map": "/static/css/2.9a44ea78.chunk.css.map",
+ "static/css/main.800ad38d.chunk.css.map": "/static/css/main.800ad38d.chunk.css.map",
+ "static/js/2.f6b7336f.chunk.js.LICENSE.txt": "/static/js/2.f6b7336f.chunk.js.LICENSE.txt",
+ "static/media/index.css": "/static/media/libre-barcode-128-text-latin-400.c85cc554.woff"
+ },
+ "entrypoints": [
+ "static/js/runtime-main.95403422.js",
+ "static/css/2.9a44ea78.chunk.css",
+ "static/js/2.f6b7336f.chunk.js",
+ "static/css/main.800ad38d.chunk.css",
+ "static/js/main.c04284a1.chunk.js"
+ ]
+}
\ No newline at end of file
diff --git a/codeart_backend/public/favicon.ico b/codeart_backend/public/favicon.ico
new file mode 100644
index 0000000..7e2cafd
Binary files /dev/null and b/codeart_backend/public/favicon.ico differ
diff --git a/codeart_backend/public/images/logo192.png b/codeart_backend/public/images/logo192.png
new file mode 100644
index 0000000..fc44b0a
Binary files /dev/null and b/codeart_backend/public/images/logo192.png differ
diff --git a/codeart_backend/public/images/logo512.png b/codeart_backend/public/images/logo512.png
new file mode 100644
index 0000000..a4e47a6
Binary files /dev/null and b/codeart_backend/public/images/logo512.png differ
diff --git a/codeart_backend/public/index.html b/codeart_backend/public/index.html
new file mode 100644
index 0000000..64c2f1d
--- /dev/null
+++ b/codeart_backend/public/index.html
@@ -0,0 +1 @@
+
I/O
\ No newline at end of file
diff --git a/codeart_backend/public/manifest.json b/codeart_backend/public/manifest.json
new file mode 100644
index 0000000..080d6c7
--- /dev/null
+++ b/codeart_backend/public/manifest.json
@@ -0,0 +1,25 @@
+{
+ "short_name": "React App",
+ "name": "Create React App Sample",
+ "icons": [
+ {
+ "src": "favicon.ico",
+ "sizes": "64x64 32x32 24x24 16x16",
+ "type": "image/x-icon"
+ },
+ {
+ "src": "logo192.png",
+ "type": "image/png",
+ "sizes": "192x192"
+ },
+ {
+ "src": "logo512.png",
+ "type": "image/png",
+ "sizes": "512x512"
+ }
+ ],
+ "start_url": ".",
+ "display": "standalone",
+ "theme_color": "#000000",
+ "background_color": "#ffffff"
+}
diff --git a/codeart_backend/public/precache-manifest.c435daf8b2e911eb4bb8e336fc112412.js b/codeart_backend/public/precache-manifest.c435daf8b2e911eb4bb8e336fc112412.js
new file mode 100644
index 0000000..07dfc33
--- /dev/null
+++ b/codeart_backend/public/precache-manifest.c435daf8b2e911eb4bb8e336fc112412.js
@@ -0,0 +1,42 @@
+self.__precacheManifest = (self.__precacheManifest || []).concat([
+ {
+ "revision": "d79c6ccab7bdef96c02379adeb9ef4cf",
+ "url": "/index.html"
+ },
+ {
+ "revision": "cf3daa539c6822fa7295",
+ "url": "/static/css/2.9a44ea78.chunk.css"
+ },
+ {
+ "revision": "ef4c50688a349d645357",
+ "url": "/static/css/main.800ad38d.chunk.css"
+ },
+ {
+ "revision": "cf3daa539c6822fa7295",
+ "url": "/static/js/2.f6b7336f.chunk.js"
+ },
+ {
+ "revision": "b67bc97fd0dd67004287af4028afc1b1",
+ "url": "/static/js/2.f6b7336f.chunk.js.LICENSE.txt"
+ },
+ {
+ "revision": "ef4c50688a349d645357",
+ "url": "/static/js/main.c04284a1.chunk.js"
+ },
+ {
+ "revision": "c05c057e30e4bd6e6609",
+ "url": "/static/js/runtime-main.95403422.js"
+ },
+ {
+ "revision": "15db01c5265adb04fd5e691e5ef26009",
+ "url": "/static/media/ZillaSlab-Regular.15db01c5.ttf"
+ },
+ {
+ "revision": "7c75db4d69137d8618f1e129fb909d2f",
+ "url": "/static/media/libre-barcode-128-text-latin-400.7c75db4d.woff2"
+ },
+ {
+ "revision": "c85cc554478b7dca4980d5c1adb01395",
+ "url": "/static/media/libre-barcode-128-text-latin-400.c85cc554.woff"
+ }
+]);
\ No newline at end of file
diff --git a/codeart_backend/public/robots.txt b/codeart_backend/public/robots.txt
new file mode 100644
index 0000000..e9e57dc
--- /dev/null
+++ b/codeart_backend/public/robots.txt
@@ -0,0 +1,3 @@
+# https://www.robotstxt.org/robotstxt.html
+User-agent: *
+Disallow:
diff --git a/codeart_backend/public/service-worker.js b/codeart_backend/public/service-worker.js
new file mode 100644
index 0000000..d7a0357
--- /dev/null
+++ b/codeart_backend/public/service-worker.js
@@ -0,0 +1,39 @@
+/**
+ * Welcome to your Workbox-powered service worker!
+ *
+ * You'll need to register this file in your web app and you should
+ * disable HTTP caching for this file too.
+ * See https://goo.gl/nhQhGp
+ *
+ * The rest of the code is auto-generated. Please don't update this file
+ * directly; instead, make changes to your Workbox build configuration
+ * and re-run your build process.
+ * See https://goo.gl/2aRDsh
+ */
+
+importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
+
+importScripts(
+ "/precache-manifest.c435daf8b2e911eb4bb8e336fc112412.js"
+);
+
+self.addEventListener('message', (event) => {
+ if (event.data && event.data.type === 'SKIP_WAITING') {
+ self.skipWaiting();
+ }
+});
+
+workbox.core.clientsClaim();
+
+/**
+ * The workboxSW.precacheAndRoute() method efficiently caches and responds to
+ * requests for URLs in the manifest.
+ * See https://goo.gl/S9QRab
+ */
+self.__precacheManifest = [].concat(self.__precacheManifest || []);
+workbox.precaching.precacheAndRoute(self.__precacheManifest, {});
+
+workbox.routing.registerNavigationRoute(workbox.precaching.getCacheKeyForURL("/index.html"), {
+
+ blacklist: [/^\/_/,/\/[^/?]+\.[^/]+$/],
+});
diff --git a/codeart_backend/public/static/css/2.9a44ea78.chunk.css b/codeart_backend/public/static/css/2.9a44ea78.chunk.css
new file mode 100644
index 0000000..e40e91e
--- /dev/null
+++ b/codeart_backend/public/static/css/2.9a44ea78.chunk.css
@@ -0,0 +1,2 @@
+@font-face{font-family:"Libre Barcode 128 Text";font-style:normal;font-display:swap;font-weight:400;src:local("Libre Barcode 128 Text Regular "),local("Libre Barcode 128 Text-Regular"),url(/static/media/libre-barcode-128-text-latin-400.7c75db4d.woff2) format("woff2"),url(/static/media/libre-barcode-128-text-latin-400.c85cc554.woff) format("woff")}
+/*# sourceMappingURL=2.9a44ea78.chunk.css.map */
\ No newline at end of file
diff --git a/codeart_backend/public/static/css/2.9a44ea78.chunk.css.map b/codeart_backend/public/static/css/2.9a44ea78.chunk.css.map
new file mode 100644
index 0000000..81c45aa
--- /dev/null
+++ b/codeart_backend/public/static/css/2.9a44ea78.chunk.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["index.css"],"names":[],"mappings":"AACA,WACE,oCAAqC,CACrC,iBAAkB,CAClB,iBAAkB,CAClB,eAAgB,CAChB,wPAKF","file":"2.9a44ea78.chunk.css","sourcesContent":["/* libre-barcode-128-text-400normal - latin */\n@font-face {\n font-family: 'Libre Barcode 128 Text';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src:\n local('Libre Barcode 128 Text Regular '),\n local('Libre Barcode 128 Text-Regular'),\n url('./files/libre-barcode-128-text-latin-400.woff2') format('woff2'), /* Super Modern Browsers */\n url('./files/libre-barcode-128-text-latin-400.woff') format('woff'); /* Modern Browsers */\n}\n\n"]}
\ No newline at end of file
diff --git a/codeart_backend/public/static/css/main.800ad38d.chunk.css b/codeart_backend/public/static/css/main.800ad38d.chunk.css
new file mode 100644
index 0000000..ecbbfac
--- /dev/null
+++ b/codeart_backend/public/static/css/main.800ad38d.chunk.css
@@ -0,0 +1,2 @@
+body{margin:auto;width:900px;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='304' height='304'%3E%3Cpath fill='%235c5c5c' fill-opacity='.4' d='M44.1 224a5 5 0 110 2H0v-2h44.1zm160 48a5 5 0 110 2H82v-2h122.1zm57.8-46a5 5 0 110-2H304v2h-42.1zm0 16a5 5 0 110-2H304v2h-42.1zm6.2-114a5 5 0 110 2h-86.2a5 5 0 110-2h86.2zm-256-48a5 5 0 110 2H0v-2h12.1zm185.8 34a5 5 0 110-2h86.2a5 5 0 110 2h-86.2zM258 12.1a5 5 0 11-2 0V0h2v12.1zm-64 208a5 5 0 11-2 0v-54.2a5 5 0 112 0v54.2zm48-198.2V80h62v2h-64V21.9a5 5 0 112 0zm16 16V64h46v2h-48V37.9a5 5 0 112 0zm-128 96V208h16v12.1a5 5 0 11-2 0V210h-16v-76.1a5 5 0 112 0zm-5.9-21.9a5 5 0 110 2H114v48H85.9a5 5 0 110-2H112v-48h12.1zm-6.2 130a5 5 0 110-2H176v-74.1a5 5 0 112 0V242h-60.1zm-16-64a5 5 0 110-2H114v48h10.1a5 5 0 110 2H112v-48h-10.1zM66 284.1a5 5 0 11-2 0V274H50v30h-2v-32h18v12.1zM236.1 176a5 5 0 110 2H226v94h48v32h-2v-30h-48v-98h12.1zm25.8-30a5 5 0 110-2H274v44.1a5 5 0 11-2 0V146h-10.1zm-64 96a5 5 0 110-2H208v-80h16v-14h-42.1a5 5 0 110-2H226v18h-16v80h-12.1zm86.2-210a5 5 0 110 2H272V0h2v32h10.1zM98 101.9V146H53.9a5 5 0 110-2H96v-42.1a5 5 0 112 0zM53.9 34a5 5 0 110-2H80V0h2v34H53.9zm60.1 3.9V66H82v64H69.9a5 5 0 110-2H80V64h32V37.9a5 5 0 112 0zM101.9 82a5 5 0 110-2H128V37.9a5 5 0 112 0V82h-28.1zm16-64a5 5 0 110-2H146v44.1a5 5 0 11-2 0V18h-26.1zm102.2 270a5 5 0 110 2H98v14h-2v-16h124.1zM242 149.9V160h16v34h-16v62h48v48h-2v-46h-48v-66h16v-30h-16v-12.1a5 5 0 112 0zM53.9 18a5 5 0 110-2H64V2H48V0h18v18H53.9zm112 32a5 5 0 110-2H192V0h50v2h-48v48h-28.1zm-48-48a5 5 0 01-9.8-2h2.07a3 3 0 105.66 0H178v34h-18V21.9a5 5 0 112 0V32h14V2h-58.1zm0 96a5 5 0 110-2H137l32-32h39V21.9a5 5 0 112 0V66h-40.17l-32 32H117.9zm28.1 90.1a5 5 0 11-2 0v-76.51L175.59 80H224V21.9a5 5 0 112 0V82h-49.59L146 112.41v75.69zm16 32a5 5 0 11-2 0v-99.51L184.59 96H300.1a5 5 0 013.9-3.9v2.07a3 3 0 000 5.66v2.07a5 5 0 01-3.9-3.9H185.41L162 121.41v98.69zm-144-64a5 5 0 11-2 0v-3.51l48-48V48h32V0h2v50H66v55.41l-48 48v2.69zM50 53.9v43.51l-48 48V208h26.1a5 5 0 110 2H0v-65.41l48-48V53.9a5 5 0 112 0zm-16 16v19.51l-34 34v-2.82l32-32V69.9a5 5 0 112 0zM12.1 32a5 5 0 110 2H9.41L0 43.41V40.6L8.59 32h3.51zm265.8 18a5 5 0 110-2h18.69l7.41-7.41v2.82L297.41 50H277.9zm-16 160a5 5 0 110-2H288v-71.41l16-16v2.82l-14 14V210h-28.1zm-208 32a5 5 0 110-2H64v-22.59L40.59 194H21.9a5 5 0 110-2h19.51L66 216.59V242H53.9zm150.2 14a5 5 0 110 2H96v-56.6L56.6 162H37.9a5 5 0 110-2h19.5L98 200.6V256h106.1zm-150.2 2a5 5 0 110-2H80v-46.59L48.59 178H21.9a5 5 0 110-2h27.51L82 208.59V258H53.9zM34 39.8v1.61L9.41 66H0v-2h8.59L32 40.59V0h2v39.8zM2 300.1a5 5 0 013.9 3.9H3.83A3 3 0 000 302.17V256h18v48h-2v-46H2v42.1zM34 241v63h-2v-62H0v-2h34v1zM17 18H0v-2h16V0h2v18h-1zm273-2h14v2h-16V0h2v16zm-32 273v15h-2v-14h-14v14h-2v-16h18v1zM0 92.1A5.02 5.02 0 016 97a5 5 0 01-6 4.9v-2.07a3 3 0 100-5.66V92.1zM80 272h2v32h-2v-32zm37.9 32h-2.07a3 3 0 00-5.66 0h-2.07a5 5 0 019.8 0zM5.9 0A5.02 5.02 0 010 5.9V3.83A3 3 0 003.83 0H5.9zm294.2 0h2.07A3 3 0 00304 3.83V5.9a5 5 0 01-3.9-5.9zm3.9 300.1v2.07a3 3 0 00-1.83 1.83h-2.07a5 5 0 013.9-3.9zM97 100a3 3 0 100-6 3 3 0 000 6zm0-16a3 3 0 100-6 3 3 0 000 6zm16 16a3 3 0 100-6 3 3 0 000 6zm16 16a3 3 0 100-6 3 3 0 000 6zm0 16a3 3 0 100-6 3 3 0 000 6zm-48 32a3 3 0 100-6 3 3 0 000 6zm16 16a3 3 0 100-6 3 3 0 000 6zm32 48a3 3 0 100-6 3 3 0 000 6zm-16 16a3 3 0 100-6 3 3 0 000 6zm32-16a3 3 0 100-6 3 3 0 000 6zm0-32a3 3 0 100-6 3 3 0 000 6zm16 32a3 3 0 100-6 3 3 0 000 6zm32 16a3 3 0 100-6 3 3 0 000 6zm0-16a3 3 0 100-6 3 3 0 000 6zm-16-64a3 3 0 100-6 3 3 0 000 6zm16 0a3 3 0 100-6 3 3 0 000 6zm16 96a3 3 0 100-6 3 3 0 000 6zm0 16a3 3 0 100-6 3 3 0 000 6zm16 16a3 3 0 100-6 3 3 0 000 6zm16-144a3 3 0 100-6 3 3 0 000 6zm0 32a3 3 0 100-6 3 3 0 000 6zm16-32a3 3 0 100-6 3 3 0 000 6zm16-16a3 3 0 100-6 3 3 0 000 6zm-96 0a3 3 0 100-6 3 3 0 000 6zm0 16a3 3 0 100-6 3 3 0 000 6zm16-32a3 3 0 100-6 3 3 0 000 6zm96 0a3 3 0 100-6 3 3 0 000 6zm-16-64a3 3 0 100-6 3 3 0 000 6zm16-16a3 3 0 100-6 3 3 0 000 6zm-32 0a3 3 0 100-6 3 3 0 000 6zm0-16a3 3 0 100-6 3 3 0 000 6zm-16 0a3 3 0 100-6 3 3 0 000 6zm-16 0a3 3 0 100-6 3 3 0 000 6zm-16 0a3 3 0 100-6 3 3 0 000 6zM49 36a3 3 0 100-6 3 3 0 000 6zm-32 0a3 3 0 100-6 3 3 0 000 6zm32 16a3 3 0 100-6 3 3 0 000 6zM33 68a3 3 0 100-6 3 3 0 000 6zm16-48a3 3 0 100-6 3 3 0 000 6zm0 240a3 3 0 100-6 3 3 0 000 6zm16 32a3 3 0 100-6 3 3 0 000 6zm-16-64a3 3 0 100-6 3 3 0 000 6zm0 16a3 3 0 100-6 3 3 0 000 6zm-16-32a3 3 0 100-6 3 3 0 000 6zm80-176a3 3 0 100-6 3 3 0 000 6zm16 0a3 3 0 100-6 3 3 0 000 6zm-16-16a3 3 0 100-6 3 3 0 000 6zm32 48a3 3 0 100-6 3 3 0 000 6zm16-16a3 3 0 100-6 3 3 0 000 6zm0-32a3 3 0 100-6 3 3 0 000 6zm112 176a3 3 0 100-6 3 3 0 000 6zm-16 16a3 3 0 100-6 3 3 0 000 6zm0 16a3 3 0 100-6 3 3 0 000 6zm0 16a3 3 0 100-6 3 3 0 000 6zM17 180a3 3 0 100-6 3 3 0 000 6zm0 16a3 3 0 100-6 3 3 0 000 6zm0-32a3 3 0 100-6 3 3 0 000 6zm16 0a3 3 0 100-6 3 3 0 000 6zM17 84a3 3 0 100-6 3 3 0 000 6zm32 64a3 3 0 100-6 3 3 0 000 6zm16-16a3 3 0 100-6 3 3 0 000 6z'/%3E%3C/svg%3E")}#app-content,body{background-color:#000}#app-content{margin-top:30px;margin-bottom:60px;padding:15px 2% 30px}code{font-family:source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace}@font-face{font-family:"Zilla Slab";src:local("Zilla Slab"),url(/static/media/ZillaSlab-Regular.15db01c5.ttf) format("tff")}.header{font-family:"Libre Barcode 128 Text",cursive;font-size:35px;color:#cfcfcf}.input-board-container{margin-top:15px;width:100%;display:inline-block;background-color:#fff;z-index:5}.input-board-users{display:inline-block;width:98%;padding-left:2%;margin-top:1%;margin-bottom:1%}.input-board-game-select{z-index:999}.input-board{display:inline-block;width:96%;margin-bottom:5%;padding-left:2%;padding-right:2%}.column-symbol-layout-container,.row-symbol-layout-container{width:900px;position:fixed;margin:auto;left:0;right:0;z-index:1}.column-symbol-container{width:830px;margin:auto}.column-symbol{color:red;font-size:25px;text-align:center;display:inline-block;width:6%;margin-left:2%;margin-right:2%;margin-bottom:4.55%}.row-symbol-container{width:945px;margin:35px auto auto;padding-left:20px}.row-symbol{color:#00f;font-size:25px;text-align:center;display:inline-block;width:4%;margin-right:4.7%;margin-bottom:4%}.orange{color:orange}.purple{color:purple}.cyan{color:#0ff}.blue{color:#00f}.red{color:red}.yellow{color:#ff0}.green{color:green}.magenta{color:#f0f}.black{color:#000}.input-board-button-black,.input-board-button-green,.input-board-button-orange,.input-board-button-pink,.input-board-button-yellow{font-size:40px;text-align:center;display:inline-block;width:7.5%;margin-left:2.5%;margin-right:2.5%;margin-top:3.5%;padding-top:1%;padding-bottom:1%;z-index:10;position:relative}.input-board-button-black{background-color:#000;color:#fff}.input-board-button-pink{background-color:#f0c;color:#000}.input-board-button-orange{background-color:#f93;color:#000}.input-board-button-yellow{background-color:#ff6;color:#000}.input-board-button-green{background-color:#6f6;color:#000}.output-board-container{margin-top:60px;padding:5%;background-color:#fff}.output-board{border-collapse:separate;border-spacing:5px;table-layout:fixed}.split-flap-button{width:28px;text-align:center;font-size:25px;height:50px;overflow:hidden;border:4px solid transparent}.split-flap-warning{border:4px dotted grey}.split-flap-error{outline:4px solid red}.split-flap-button-black{background-color:#000;color:#fff}.split-flap-button-white{background-color:#fff;color:#fff}.split-flap-button-black-empty{background-color:#000;color:#000}.split-flap-button-green{background-color:#6f6;color:#6f6}.split-flap-button-yellow{background-color:#ff6;color:#ff6}.split-flap-button-pink{background-color:#f0c;color:#f0c}.split-flap-button-orange{background-color:#f93;color:#f93}.diagnostics{margin-top:60px;padding:5%;background-color:#fff}.power-channel{display:inline-block;background:#000;color:#fff;padding:5px;margin:0 5px}.power-channel .status{margin:0 auto;text-align:center}.power-channel .voltage{text-align:right;color:#9696fa}.power-channel .current{text-align:right;color:#78ff64}.power-channel .status-on-true{color:#fff}.power-channel .status-on-false{color:grey}
+/*# sourceMappingURL=main.800ad38d.chunk.css.map */
\ No newline at end of file
diff --git a/codeart_backend/public/static/css/main.800ad38d.chunk.css.map b/codeart_backend/public/static/css/main.800ad38d.chunk.css.map
new file mode 100644
index 0000000..9900d39
--- /dev/null
+++ b/codeart_backend/public/static/css/main.800ad38d.chunk.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["index.css","style.css"],"names":[],"mappings":"AAAA,KACE,WAAY,CACZ,WAAY,CAQZ,m1JACF,CAGA,kBALE,qBAaF,CARA,aACE,eAAgB,CAEhB,kBAAmB,CAGnB,oBAEF,CAIA,KACE,yEAEF,CAGA,WACE,wBAAyB,CACzB,uFACF,CCnCA,QAGE,4CAA8C,CAC9C,cAAe,CAEf,aAEF,CARA,uBACI,eAAgB,CAChB,UAAW,CACX,oBAAqB,CACrB,qBAAuB,CACvB,SACJ,CAGA,mBACI,oBAAqB,CACrB,SAAU,CACV,eAAgB,CAChB,aAAc,CACd,gBACJ,CAEA,yBACI,WACJ,CAEA,aACI,oBAAqB,CACrB,SAAU,CACV,gBAAiB,CACjB,eAAgB,CAChB,gBACJ,CAGA,6DACI,WAAY,CACZ,cAAe,CACf,WAAW,CACX,MAAO,CACP,OAAQ,CACR,SACJ,CAEA,yBACI,WAAY,CACZ,WACJ,CAEA,eACI,SAAU,CACV,cAAe,CACf,iBAAkB,CAClB,oBAAqB,CACrB,QAAS,CACT,cAAe,CACf,eAAgB,CAChB,mBACJ,CAGA,sBACI,WAAY,CAEZ,qBAAgB,CAChB,iBAEJ,CAEA,YACI,UAAW,CACX,cAAe,CACf,iBAAkB,CAClB,oBAAqB,CACrB,QAAS,CACT,iBAAkB,CAClB,gBACJ,CAEA,QACI,YACJ,CAEA,QACI,YACJ,CAEA,MACI,UACJ,CAEA,MACI,UACJ,CAEA,KACI,SACJ,CAEA,QACI,UACJ,CAEA,OACI,WACJ,CAEA,SACI,UACJ,CACA,OACI,UACJ,CA3GA,mIAEI,cAAe,CACf,iBAAkB,CAClB,oBAAqB,CACrB,UAAW,CACX,gBAAiB,CACjB,iBAAkB,CAClB,eAAgB,CAChB,cAAe,CACf,iBAAkB,CAClB,UAAW,CACX,iBAEJ,CAEA,0BACE,qBAAuB,CACvB,UACF,CAGA,yBACE,qBAAyB,CACzB,UACF,CAEA,2BACE,qBAAyB,CACzB,UACF,CAEA,2BACE,qBAAyB,CACzB,UACF,CAEA,0BACE,qBAAyB,CACzB,UACF,CAxCA,wBACI,eAAgB,CAIhB,UAAkB,CAClB,qBAEJ,CAEA,cACE,wBAAyB,CACzB,kBAAmB,CACnB,kBACF,CAdA,mBACI,UAAW,CACX,iBAAkB,CAClB,cAAe,CACf,WAAY,CACZ,eAAgB,CAChB,4BACJ,CAEA,oBACI,sBACJ,CAEA,kBACI,qBACJ,CAEA,yBACI,qBAAuB,CACvB,UACJ,CAEA,yBACI,qBAAuB,CACvB,UACJ,CAEA,+BACI,qBAAuB,CACvB,UACJ,CAEA,yBACI,qBAAyB,CACzB,UACJ,CAEA,0BACI,qBAAyB,CACzB,UACJ,CAEA,wBACI,qBAAyB,CACzB,UACJ,CAEA,0BACI,qBAAyB,CACzB,UACJ,CAlDA,aACI,eAAgB,CAIhB,UAAkB,CAClB,qBAEJ,CAEA,eACI,oBAAqB,CACrB,eAAiB,CACjB,UAAY,CACZ,WAAY,CACZ,YACJ,CAEA,uBACI,aAAc,CACd,iBACJ,CAEA,wBACI,gBAAiB,CACjB,aACJ,CAEA,wBACI,gBAAiB,CACjB,aACJ,CAEA,+BACI,UACJ,CAEA,gCACI,UACJ","file":"main.800ad38d.chunk.css","sourcesContent":["body {\n margin: auto;\n width: 900px;\n /* font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; */\n /*Free Sprinkles SVG provided by SVGeez.com - CC 4.0 License - © 2019 Megan Young */\n background-color: #000000;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 304 304' width='304' height='304'%3E%3Cpath fill='%235c5c5c' fill-opacity='0.4' d='M44.1 224a5 5 0 1 1 0 2H0v-2h44.1zm160 48a5 5 0 1 1 0 2H82v-2h122.1zm57.8-46a5 5 0 1 1 0-2H304v2h-42.1zm0 16a5 5 0 1 1 0-2H304v2h-42.1zm6.2-114a5 5 0 1 1 0 2h-86.2a5 5 0 1 1 0-2h86.2zm-256-48a5 5 0 1 1 0 2H0v-2h12.1zm185.8 34a5 5 0 1 1 0-2h86.2a5 5 0 1 1 0 2h-86.2zM258 12.1a5 5 0 1 1-2 0V0h2v12.1zm-64 208a5 5 0 1 1-2 0v-54.2a5 5 0 1 1 2 0v54.2zm48-198.2V80h62v2h-64V21.9a5 5 0 1 1 2 0zm16 16V64h46v2h-48V37.9a5 5 0 1 1 2 0zm-128 96V208h16v12.1a5 5 0 1 1-2 0V210h-16v-76.1a5 5 0 1 1 2 0zm-5.9-21.9a5 5 0 1 1 0 2H114v48H85.9a5 5 0 1 1 0-2H112v-48h12.1zm-6.2 130a5 5 0 1 1 0-2H176v-74.1a5 5 0 1 1 2 0V242h-60.1zm-16-64a5 5 0 1 1 0-2H114v48h10.1a5 5 0 1 1 0 2H112v-48h-10.1zM66 284.1a5 5 0 1 1-2 0V274H50v30h-2v-32h18v12.1zM236.1 176a5 5 0 1 1 0 2H226v94h48v32h-2v-30h-48v-98h12.1zm25.8-30a5 5 0 1 1 0-2H274v44.1a5 5 0 1 1-2 0V146h-10.1zm-64 96a5 5 0 1 1 0-2H208v-80h16v-14h-42.1a5 5 0 1 1 0-2H226v18h-16v80h-12.1zm86.2-210a5 5 0 1 1 0 2H272V0h2v32h10.1zM98 101.9V146H53.9a5 5 0 1 1 0-2H96v-42.1a5 5 0 1 1 2 0zM53.9 34a5 5 0 1 1 0-2H80V0h2v34H53.9zm60.1 3.9V66H82v64H69.9a5 5 0 1 1 0-2H80V64h32V37.9a5 5 0 1 1 2 0zM101.9 82a5 5 0 1 1 0-2H128V37.9a5 5 0 1 1 2 0V82h-28.1zm16-64a5 5 0 1 1 0-2H146v44.1a5 5 0 1 1-2 0V18h-26.1zm102.2 270a5 5 0 1 1 0 2H98v14h-2v-16h124.1zM242 149.9V160h16v34h-16v62h48v48h-2v-46h-48v-66h16v-30h-16v-12.1a5 5 0 1 1 2 0zM53.9 18a5 5 0 1 1 0-2H64V2H48V0h18v18H53.9zm112 32a5 5 0 1 1 0-2H192V0h50v2h-48v48h-28.1zm-48-48a5 5 0 0 1-9.8-2h2.07a3 3 0 1 0 5.66 0H178v34h-18V21.9a5 5 0 1 1 2 0V32h14V2h-58.1zm0 96a5 5 0 1 1 0-2H137l32-32h39V21.9a5 5 0 1 1 2 0V66h-40.17l-32 32H117.9zm28.1 90.1a5 5 0 1 1-2 0v-76.51L175.59 80H224V21.9a5 5 0 1 1 2 0V82h-49.59L146 112.41v75.69zm16 32a5 5 0 1 1-2 0v-99.51L184.59 96H300.1a5 5 0 0 1 3.9-3.9v2.07a3 3 0 0 0 0 5.66v2.07a5 5 0 0 1-3.9-3.9H185.41L162 121.41v98.69zm-144-64a5 5 0 1 1-2 0v-3.51l48-48V48h32V0h2v50H66v55.41l-48 48v2.69zM50 53.9v43.51l-48 48V208h26.1a5 5 0 1 1 0 2H0v-65.41l48-48V53.9a5 5 0 1 1 2 0zm-16 16V89.41l-34 34v-2.82l32-32V69.9a5 5 0 1 1 2 0zM12.1 32a5 5 0 1 1 0 2H9.41L0 43.41V40.6L8.59 32h3.51zm265.8 18a5 5 0 1 1 0-2h18.69l7.41-7.41v2.82L297.41 50H277.9zm-16 160a5 5 0 1 1 0-2H288v-71.41l16-16v2.82l-14 14V210h-28.1zm-208 32a5 5 0 1 1 0-2H64v-22.59L40.59 194H21.9a5 5 0 1 1 0-2H41.41L66 216.59V242H53.9zm150.2 14a5 5 0 1 1 0 2H96v-56.6L56.6 162H37.9a5 5 0 1 1 0-2h19.5L98 200.6V256h106.1zm-150.2 2a5 5 0 1 1 0-2H80v-46.59L48.59 178H21.9a5 5 0 1 1 0-2H49.41L82 208.59V258H53.9zM34 39.8v1.61L9.41 66H0v-2h8.59L32 40.59V0h2v39.8zM2 300.1a5 5 0 0 1 3.9 3.9H3.83A3 3 0 0 0 0 302.17V256h18v48h-2v-46H2v42.1zM34 241v63h-2v-62H0v-2h34v1zM17 18H0v-2h16V0h2v18h-1zm273-2h14v2h-16V0h2v16zm-32 273v15h-2v-14h-14v14h-2v-16h18v1zM0 92.1A5.02 5.02 0 0 1 6 97a5 5 0 0 1-6 4.9v-2.07a3 3 0 1 0 0-5.66V92.1zM80 272h2v32h-2v-32zm37.9 32h-2.07a3 3 0 0 0-5.66 0h-2.07a5 5 0 0 1 9.8 0zM5.9 0A5.02 5.02 0 0 1 0 5.9V3.83A3 3 0 0 0 3.83 0H5.9zm294.2 0h2.07A3 3 0 0 0 304 3.83V5.9a5 5 0 0 1-3.9-5.9zm3.9 300.1v2.07a3 3 0 0 0-1.83 1.83h-2.07a5 5 0 0 1 3.9-3.9zM97 100a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-48 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 48a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 96a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-144a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-96 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm96 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-32 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM49 36a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-32 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM33 68a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-48a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 240a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm80-176a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 48a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm112 176a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM17 180a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM17 84a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6z'%3E%3C/path%3E%3C/svg%3E\");\n}\n\n\n#app-content{\n margin-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 60px;\n padding-top: 15px;\n padding-left: 2%;\n padding-right: 2%;\n background-color: black;\n}\n\n\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n\n\n@font-face {\n font-family: 'Zilla Slab';\n src: local('Zilla Slab'), url(./fonts/Zilla_Slab/ZillaSlab-Regular.ttf) format('tff');\n}\n\n/* @font-face {\n font-family: 'IBM Plex Sans';\n src: local('IBM Plex Sans'), url(./fonts/IBM_Plex_Sans/IBMPlexSans-Regular.ttf) format('tff');\n}\n\n\n@font-face {\n font-family: 'IBM Plex Serif';\n src: local('IBM Plex Serif'), url(./fonts/IBM_Plex_Serif/IBMPlexSerif-Light.ttf) format('tff');\n} */\n\n\n",".diagnostics{\n margin-top: 60px;\n padding-left: 5%;\n padding-right: 5%;\n padding-top: 5%;\n padding-bottom: 5%;\n background-color: white;\n /* min-height: 400px; */\n}\n\n.power-channel {\n display: inline-block;\n background: black;\n color: white;\n padding: 5px;\n margin: 0 5px;\n}\n\n.power-channel .status {\n margin: 0 auto;\n text-align: center;\n}\n\n.power-channel .voltage {\n text-align: right;\n color: rgb(150, 150, 250);\n}\n\n.power-channel .current {\n text-align: right;\n color: rgb(120, 255, 100);\n}\n\n.power-channel .status-on-true {\n color: white;\n}\n\n.power-channel .status-on-false {\n color: gray;\n}"]}
\ No newline at end of file
diff --git a/codeart_backend/public/static/js/2.f6b7336f.chunk.js b/codeart_backend/public/static/js/2.f6b7336f.chunk.js
new file mode 100644
index 0000000..d7e303a
--- /dev/null
+++ b/codeart_backend/public/static/js/2.f6b7336f.chunk.js
@@ -0,0 +1,3 @@
+/*! For license information please see 2.f6b7336f.chunk.js.LICENSE.txt */
+(this.webpackJsonpraspi_frontend=this.webpackJsonpraspi_frontend||[]).push([[2],[function(e,t,n){"use strict";e.exports=n(46)},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";function r(e,t){for(var n=0;n=31||"undefined"!==typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],e.exports=n(91)(t),e.exports.formatters.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}).call(this,n(27))},function(e,t,n){"use strict";(function(e){var r=t;function o(e,t,n){for(var r=Object.keys(t),o=0;o0)},r.Buffer=function(){try{var e=r.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(t){return null}}(),r._Buffer_from=null,r._Buffer_allocUnsafe=null,r.newBuffer=function(e){return"number"===typeof e?r.Buffer?r._Buffer_allocUnsafe(e):new r.Array(e):r.Buffer?r._Buffer_from(e):"undefined"===typeof Uint8Array?e:new Uint8Array(e)},r.Array="undefined"!==typeof Uint8Array?Uint8Array:Array,r.Long=r.global.dcodeIO&&r.global.dcodeIO.Long||r.global.Long||r.inquire("long"),r.key2Re=/^true|false|0|1$/,r.key32Re=/^-?(?:0|[1-9][0-9]*)$/,r.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,r.longToHash=function(e){return e?r.LongBits.from(e).toHash():r.LongBits.zeroHash},r.longFromHash=function(e,t){var n=r.LongBits.fromHash(e);return r.Long?r.Long.fromBits(n.lo,n.hi,t):n.toNumber(Boolean(t))},r.merge=o,r.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},r.newError=i,r.ProtocolError=i("ProtocolError"),r.oneOfGetter=function(e){for(var t={},n=0;n-1;--n)if(1===t[e[n]]&&void 0!==this[e[n]]&&null!==this[e[n]])return e[n]}},r.oneOfSetter=function(e){return function(t){for(var n=0;n1?{type:d[o],data:e.substring(1)}:{type:d[o]}:h}o=new Uint8Array(e)[0];var i=a(e,1);return m&&"blob"===n&&(i=new m([i])),{type:d[o],data:i}},t.decodeBase64Packet=function(e,t){var n=d[e.charAt(0)];if(!r)return{type:n,data:{base64:!0,data:e.substr(1)}};var o=r.decode(e.substr(1));return"blob"===t&&m&&(o=new m([o])),{type:n,data:o}},t.encodePayload=function(e,n,r){"function"===typeof n&&(r=n,n=null);var o=i(e);if(n&&o)return m&&!f?t.encodePayloadAsBlob(e,r):t.encodePayloadAsArrayBuffer(e,r);if(!e.length)return r("0:");y(e,(function(e,r){t.encodePacket(e,!!o&&n,!1,(function(e){r(null,function(e){return e.length+":"+e}(e))}))}),(function(e,t){return r(t.join(""))}))},t.decodePayload=function(e,n,r){if("string"!==typeof e)return t.decodePayloadAsBinary(e,n,r);var o;if("function"===typeof n&&(r=n,n=null),""===e)return r(h,0,1);for(var i,a,s="",u=0,l=e.length;u0;){for(var s=new Uint8Array(o),u=0===s[0],l="",c=1;255!==s[c];c++){if(l.length>310)return r(h,0,1);l+=s[c]}o=a(o,2+l.length),l=parseInt(l);var f=a(o,0,l);if(u)try{f=String.fromCharCode.apply(null,new Uint8Array(f))}catch(m){var p=new Uint8Array(f);f="";for(c=0;c=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function h(e,t){if(u.isBuffer(e))return e.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!==typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return U(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return z(e).length;default:if(r)return U(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return P(this,t,n);case"utf8":case"utf-8":return T(this,t,n);case"ascii":return O(this,t,n);case"latin1":case"binary":return _(this,t,n);case"base64":return S(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function g(e,t,n,r,o){if(0===e.length)return-1;if("string"===typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"===typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:v(e,t,n,r,o);if("number"===typeof t)return t&=255,u.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):v(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function v(e,t,n,r,o){var i,a=1,s=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,n/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var c=-1;for(i=n;is&&(n=s-u),i=n;i>=0;i--){for(var f=!0,p=0;po&&(r=o):r=o;var i=t.length;if(i%2!==0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function S(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function T(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:l>223?3:l>191?2:1;if(o+f<=n)switch(f){case 1:l<128&&(c=l);break;case 2:128===(192&(i=e[o+1]))&&(u=(31&l)<<6|63&i)>127&&(c=u);break;case 3:i=e[o+1],a=e[o+2],128===(192&i)&&128===(192&a)&&(u=(15&l)<<12|(63&i)<<6|63&a)>2047&&(u<55296||u>57343)&&(c=u);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128===(192&i)&&128===(192&a)&&128===(192&s)&&(u=(15&l)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(c=u)}null===c?(c=65533,f=1):c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},u.prototype.compare=function(e,t,n,r,o){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),l=this.slice(r,o),c=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return b(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return x(this,e,t,n);case"latin1":case"binary":return k(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function O(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function M(e,t,n,r,o,i){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function N(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function F(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function I(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function L(e,t,n,r,i){return i||I(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function D(e,t,n,r,i){return i||I(e,0,n,8),o.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},u.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},u.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},u.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||M(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},u.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):F(this,e,t,!0),t+4},u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):F(this,e,t,!1),t+4},u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);M(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);M(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):F(this,e,t,!0),t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):F(this,e,t,!1),t+4},u.prototype.writeFloatLE=function(e,t,n){return L(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return L(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return D(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return D(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!u.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"===typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function z(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(B,"")).length<2)return"";for(;e.length%4!==0;)e+="=";return e}(e))}function V(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(14))},function(e,t,n){var r=n(108);e.exports=function(e){var t=e.xdomain,n=e.xscheme,o=e.enablesXDR;try{if("undefined"!==typeof XMLHttpRequest&&(!t||r))return new XMLHttpRequest}catch(i){}try{if("undefined"!==typeof XDomainRequest&&!n&&o)return new XDomainRequest}catch(i){}if(!t)try{return new(self[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(i){}}},function(e,t,n){var r=n(9),o=n(19);function i(e){this.path=e.path,this.hostname=e.hostname,this.port=e.port,this.secure=e.secure,this.query=e.query,this.timestampParam=e.timestampParam,this.timestampRequests=e.timestampRequests,this.readyState="",this.agent=e.agent||!1,this.socket=e.socket,this.enablesXDR=e.enablesXDR,this.withCredentials=e.withCredentials,this.pfx=e.pfx,this.key=e.key,this.passphrase=e.passphrase,this.cert=e.cert,this.ca=e.ca,this.ciphers=e.ciphers,this.rejectUnauthorized=e.rejectUnauthorized,this.forceNode=e.forceNode,this.isReactNative=e.isReactNative,this.extraHeaders=e.extraHeaders,this.localAddress=e.localAddress}e.exports=i,o(i.prototype),i.prototype.onError=function(e,t){var n=new Error(e);return n.type="TransportError",n.description=t,this.emit("error",n),this},i.prototype.open=function(){return"closed"!==this.readyState&&""!==this.readyState||(this.readyState="opening",this.doOpen()),this},i.prototype.close=function(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this},i.prototype.send=function(e){if("open"!==this.readyState)throw new Error("Transport not open");this.write(e)},i.prototype.onOpen=function(){this.readyState="open",this.writable=!0,this.emit("open")},i.prototype.onData=function(e){var t=r.decodePacket(e,this.socket.binaryType);this.onPacket(t)},i.prototype.onPacket=function(e){this.emit("packet",e)},i.prototype.onClose=function(){this.readyState="closed",this.emit("close")}},function(e,t,n){function r(e){if(e)return function(e){for(var t in r.prototype)e[t]=r.prototype[t];return e}(e)}e.exports=r,r.prototype.on=r.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},r.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},r.prototype.off=r.prototype.removeListener=r.prototype.removeAllListeners=r.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n,r=this._callbacks["$"+e];if(!r)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var o=0;oe.length)&&(t=e.length);for(var n=0,r=new Array(t);n>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[n++]=127&e.lo|128,e.lo=e.lo>>>7;t[n++]=e.lo}function y(e,t,n){t[n]=255&e,t[n+1]=e>>>8&255,t[n+2]=e>>>16&255,t[n+3]=e>>>24}f.create=p(),f.alloc=function(e){return new o.Array(e)},o.Array!==Array&&(f.alloc=o.pool(f.alloc,o.Array.prototype.subarray)),f.prototype._push=function(e,t,n){return this.tail=this.tail.next=new u(e,t,n),this.len+=t,this},h.prototype=Object.create(u.prototype),h.prototype.fn=function(e,t,n){for(;e>127;)t[n++]=127&e|128,e>>>=7;t[n]=e},f.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new h((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},f.prototype.int32=function(e){return e<0?this._push(m,10,i.fromNumber(e)):this.uint32(e)},f.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},f.prototype.uint64=function(e){var t=i.from(e);return this._push(m,t.length(),t)},f.prototype.int64=f.prototype.uint64,f.prototype.sint64=function(e){var t=i.from(e).zzEncode();return this._push(m,t.length(),t)},f.prototype.bool=function(e){return this._push(d,1,e?1:0)},f.prototype.fixed32=function(e){return this._push(y,4,e>>>0)},f.prototype.sfixed32=f.prototype.fixed32,f.prototype.fixed64=function(e){var t=i.from(e);return this._push(y,4,t.lo)._push(y,4,t.hi)},f.prototype.sfixed64=f.prototype.fixed64,f.prototype.float=function(e){return this._push(o.float.writeFloatLE,4,e)},f.prototype.double=function(e){return this._push(o.float.writeDoubleLE,8,e)};var g=o.Array.prototype.set?function(e,t,n){t.set(e,n)}:function(e,t,n){for(var r=0;r>>0;if(!t)return this._push(d,1,0);if(o.isString(e)){var n=f.alloc(t=a.length(e));a.decode(e,n,0),e=n}return this.uint32(t)._push(g,t,e)},f.prototype.string=function(e){var t=s.length(e);return t?this.uint32(t)._push(s.write,t,e):this._push(d,1,0)},f.prototype.fork=function(){return this.states=new c(this),this.head=this.tail=new u(l,0,0),this.len=0,this},f.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new u(l,0,0),this.len=0),this},f.prototype.ldelim=function(){var e=this.head,t=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=e.next,this.tail=t,this.len+=n),this},f.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),n=0;e;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t},f._configure=function(e){r=e,f.create=p(),r._configure()}},function(e,t,n){"use strict";e.exports=u;var r,o=n(8),i=o.LongBits,a=o.utf8;function s(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function u(e){this.buf=e,this.pos=0,this.len=e.length}var l="undefined"!==typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new u(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new u(e);throw Error("illegal buffer")},c=function(){return o.Buffer?function(e){return(u.create=function(e){return o.Buffer.isBuffer(e)?new r(e):l(e)})(e)}:l};function f(){var e=new i(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw s(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw s(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function p(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function d(){if(this.pos+8>this.len)throw s(this,8);return new i(p(this.buf,this.pos+=4),p(this.buf,this.pos+=4))}u.create=c(),u.prototype._slice=o.Array.prototype.subarray||o.Array.prototype.slice,u.prototype.uint32=function(){var e=4294967295;return function(){if(e=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return e;if((this.pos+=5)>this.len)throw this.pos=this.len,s(this,10);return e}}(),u.prototype.int32=function(){return 0|this.uint32()},u.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)|0},u.prototype.bool=function(){return 0!==this.uint32()},u.prototype.fixed32=function(){if(this.pos+4>this.len)throw s(this,4);return p(this.buf,this.pos+=4)},u.prototype.sfixed32=function(){if(this.pos+4>this.len)throw s(this,4);return 0|p(this.buf,this.pos+=4)},u.prototype.float=function(){if(this.pos+4>this.len)throw s(this,4);var e=o.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},u.prototype.double=function(){if(this.pos+8>this.len)throw s(this,4);var e=o.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},u.prototype.bytes=function(){var e=this.uint32(),t=this.pos,n=this.pos+e;if(n>this.len)throw s(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(t,n):t===n?new this.buf.constructor(0):this._slice.call(this.buf,t,n)},u.prototype.string=function(){var e=this.bytes();return a.read(e,0,e.length)},u.prototype.skip=function(e){if("number"===typeof e){if(this.pos+e>this.len)throw s(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw s(this)}while(128&this.buf[this.pos++]);return this},u.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!==(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},u._configure=function(e){r=e,u.create=c(),r._configure();var t=o.Long?"toLong":"toNumber";o.merge(u.prototype,{int64:function(){return f.call(this)[t](!1)},uint64:function(){return f.call(this)[t](!0)},sint64:function(){return f.call(this).zzDecode()[t](!1)},fixed64:function(){return d.call(this)[t](!0)},sfixed64:function(){return d.call(this)[t](!1)}})}},function(e,t){var n=/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,r=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];e.exports=function(e){var t=e,o=e.indexOf("["),i=e.indexOf("]");-1!=o&&-1!=i&&(e=e.substring(0,o)+e.substring(o,i).replace(/:/g,";")+e.substring(i,e.length));for(var a=n.exec(e||""),s={},u=14;u--;)s[r[u]]=a[u]||"";return-1!=o&&-1!=i&&(s.source=t,s.host=s.host.substring(1,s.host.length-1).replace(/;/g,":"),s.authority=s.authority.replace("[","").replace("]","").replace(/;/g,":"),s.ipv6uri=!0),s}},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"===typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"===typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var u,l=[],c=!1,f=-1;function p(){c&&u&&(c=!1,u.length?l=u.concat(l):f=-1,l.length&&d())}function d(){if(!c){var e=s(p);c=!0;for(var t=l.length;t;){for(u=l,l=[];++f1)for(var n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&!this.encoding){var e=this.packetBuffer.shift();this.packet(e)}},d.prototype.cleanup=function(){l("cleanup");for(var e=this.subs.length,t=0;t=this._reconnectionAttempts)l("reconnect failed"),this.backoff.reset(),this.emitAll("reconnect_failed"),this.reconnecting=!1;else{var t=this.backoff.duration();l("will wait %dms before reconnect attempt",t),this.reconnecting=!0;var n=setTimeout((function(){e.skipReconnect||(l("attempting reconnect"),e.emitAll("reconnect_attempt",e.backoff.attempts),e.emitAll("reconnecting",e.backoff.attempts),e.skipReconnect||e.open((function(t){t?(l("reconnect attempt error"),e.reconnecting=!1,e.reconnect(),e.emitAll("reconnect_error",t.data)):(l("reconnect success"),e.onreconnect())})))}),t);this.subs.push({destroy:function(){clearTimeout(n)}})}},d.prototype.onreconnect=function(){var e=this.backoff.attempts;this.reconnecting=!1,this.backoff.reset(),this.updateSocketIds(),this.emitAll("reconnect",e)}},function(e,t,n){var r=n(17),o=n(109),i=n(117),a=n(118);t.polling=function(e){var t=!1,n=!1,a=!1!==e.jsonp;if("undefined"!==typeof location){var s="https:"===location.protocol,u=location.port;u||(u=s?443:80),t=e.hostname!==location.hostname||u!==e.port,n=e.secure!==s}if(e.xdomain=t,e.xscheme=n,"open"in new r(e)&&!e.forceJSONP)return new o(e);if(!a)throw new Error("JSONP disabled");return new i(e)},t.websocket=a},function(e,t,n){var r=n(18),o=n(12),i=n(9),a=n(13),s=n(35),u=n(7)("engine.io-client:polling");e.exports=c;var l=null!=new(n(17))({xdomain:!1}).responseType;function c(e){var t=e&&e.forceBase64;l&&!t||(this.supportsBinary=!1),r.call(this,e)}a(c,r),c.prototype.name="polling",c.prototype.doOpen=function(){this.poll()},c.prototype.pause=function(e){var t=this;function n(){u("paused"),t.readyState="paused",e()}if(this.readyState="pausing",this.polling||!this.writable){var r=0;this.polling&&(u("we are currently polling - waiting to pause"),r++,this.once("pollComplete",(function(){u("pre-pause polling complete"),--r||n()}))),this.writable||(u("we are currently writing - waiting to pause"),r++,this.once("drain",(function(){u("pre-pause writing complete"),--r||n()})))}else n()},c.prototype.poll=function(){u("polling"),this.polling=!0,this.doPoll(),this.emit("poll")},c.prototype.onData=function(e){var t=this;u("polling got data %s",e);i.decodePayload(e,this.socket.binaryType,(function(e,n,r){if("opening"===t.readyState&&t.onOpen(),"close"===e.type)return t.onClose(),!1;t.onPacket(e)})),"closed"!==this.readyState&&(this.polling=!1,this.emit("pollComplete"),"open"===this.readyState?this.poll():u('ignoring poll - transport state "%s"',this.readyState))},c.prototype.doClose=function(){var e=this;function t(){u("writing close packet"),e.write([{type:"close"}])}"open"===this.readyState?(u("transport open - closing"),t()):(u("transport not open - deferring close"),this.once("open",t))},c.prototype.write=function(e){var t=this;this.writable=!1;var n=function(){t.writable=!0,t.emit("drain")};i.encodePayload(e,this.supportsBinary,(function(e){t.doWrite(e,n)}))},c.prototype.uri=function(){var e=this.query||{},t=this.secure?"https":"http",n="";return!1!==this.timestampRequests&&(e[this.timestampParam]=s()),this.supportsBinary||e.sid||(e.b64=1),e=o.encode(e),this.port&&("https"===t&&443!==Number(this.port)||"http"===t&&80!==Number(this.port))&&(n=":"+this.port),e.length&&(e="?"+e),t+"://"+(-1!==this.hostname.indexOf(":")?"["+this.hostname+"]":this.hostname)+n+this.path+e}},function(e,t,n){(function(t){var r=n(111),o=Object.prototype.toString,i="function"===typeof Blob||"undefined"!==typeof Blob&&"[object BlobConstructor]"===o.call(Blob),a="function"===typeof File||"undefined"!==typeof File&&"[object FileConstructor]"===o.call(File);e.exports=function e(n){if(!n||"object"!==typeof n)return!1;if(r(n)){for(var o=0,s=n.length;o0);return t}function l(){var e=u(+new Date);return e!==r?(a=0,r=e):e+"."+u(a++)}for(;s<64;s++)i[o[s]]=s;l.encode=u,l.decode=function(e){var t=0;for(s=0;s0?g(_,--T):0,E--,10===O&&(E=1,C--),O}function M(){return O=T2||L(O)>3?"":" "}function z(e,t){for(;--t&&M()&&!(O<48||O>102||O>57&&O<65||O>70&&O<97););return I(e,F()+(t<6&&32==N()&&32==M()))}function V(e,t){for(;M()&&e+O!==57&&(e+O!==84||47!==N()););return"/*"+I(t,T-1)+"*"+d(47===e?e:M())}function H(e){for(;!L(N());)M();return I(e,T)}function $(e){return B(function e(t,n,r,o,i,a,s,u,l){var c=0,f=0,p=s,h=0,y=0,g=0,v=1,w=1,k=1,C=0,E="",S=i,T=a,O=o,_=E;for(;w;)switch(g=C,C=M()){case 34:case 39:case 91:case 40:_+=j(C);break;case 9:case 10:case 13:case 32:_+=U(g);break;case 92:_+=z(F()-1,7);continue;case 47:switch(N()){case 42:case 47:x(W(V(M(),F()),n,r),l);break;default:_+="/"}break;case 123*v:u[c++]=b(_)*k;case 125*v:case 59:case 0:switch(C){case 0:case 125:w=0;case 59+f:y>0&&b(_)-p&&x(y>32?Y(_+";",o,r,p-1):Y(m(_," ","")+";",o,r,p-2),l);break;case 59:_+=";";default:if(x(O=q(_,n,r,c,f,i,u,E,S=[],T=[],p),a),123===C)if(0===f)e(_,n,O,O,S,a,p,u,T);else switch(h){case 100:case 109:case 115:e(t,O,O,o&&x(q(t,O,O,0,0,i,u,E,i,S=[],p),T),i,T,p,u,o?S:T);break;default:e(_,O,O,O,[""],T,p,u,T)}}c=f=y=0,v=k=1,E=_="",p=s;break;case 58:p=1+b(_),y=g;default:if(v<1)if(123==C)--v;else if(125==C&&0==v++&&125==R())continue;switch(_+=d(C),C*v){case 38:k=f>0?1:(_+="\f",-1);break;case 44:u[c++]=(b(_)-1)*k,k=1;break;case 64:45===N()&&(_+=j(M())),h=N(),f=b(E=_+=H(F())),C++;break;case 45:45===g&&2==b(_)&&(v=0)}}return a}("",null,null,null,[""],e=D(e),0,[0],e))}function q(e,t,n,r,o,i,a,s,u,l,c){for(var f=o-1,d=0===o?i:[""],y=w(d),g=0,b=0,x=0;g0?d[k]+" "+C:m(C,/&\f/g,d[k])))&&(u[x++]=E);return P(e,t,n,0===o?"rule":s,u,l,c)}function W(e,t,n){return P(e,t,n,c,d(O),v(e,2,-2),0)}function Y(e,t,n,r){return P(e,t,n,f,v(e,0,r),v(e,r+1,-1),r)}function Q(e,t){switch(function(e,t){return(((t<<2^g(e,0))<<2^g(e,1))<<2^g(e,2))<<2^g(e,3)}(e,t)){case 5103:return l+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return l+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return l+e+u+e+s+e+e;case 6828:case 4268:return l+e+s+e+e;case 6165:return l+e+s+"flex-"+e+e;case 5187:return l+e+m(e,/(\w+).+(:[^]+)/,l+"box-$1$2"+s+"flex-$1$2")+e;case 5443:return l+e+s+"flex-item-"+m(e,/flex-|-self/,"")+e;case 4675:return l+e+s+"flex-line-pack"+m(e,/align-content|flex-|-self/,"")+e;case 5548:return l+e+s+m(e,"shrink","negative")+e;case 5292:return l+e+s+m(e,"basis","preferred-size")+e;case 6060:return l+"box-"+m(e,"-grow","")+l+e+s+m(e,"grow","positive")+e;case 4554:return l+m(e,/([^-])(transform)/g,"$1"+l+"$2")+e;case 6187:return m(m(m(e,/(zoom-|grab)/,l+"$1"),/(image-set)/,l+"$1"),e,"")+e;case 5495:case 3959:return m(e,/(image-set\([^]*)/,l+"$1$`$1");case 4968:return m(m(e,/(.+:)(flex-)?(.*)/,l+"box-pack:$3"+s+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+l+e+e;case 4095:case 3583:case 4068:case 2532:return m(e,/(.+)-inline(.+)/,l+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(b(e)-1-t>6)switch(g(e,t+1)){case 109:if(45!==g(e,t+4))break;case 102:return m(e,/(.+:)(.+)-([^]+)/,"$1"+l+"$2-$3$1"+u+(108==g(e,t+3)?"$3":"$2-$3"))+e;case 115:return~y(e,"stretch")?Q(m(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==g(e,t+1))break;case 6444:switch(g(e,b(e)-3-(~y(e,"!important")&&10))){case 107:return m(e,":",":"+l)+e;case 101:return m(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+l+(45===g(e,14)?"inline-":"")+"box$3$1"+l+"$2$3$1"+s+"$2box$3")+e}break;case 5936:switch(g(e,t+11)){case 114:return l+e+s+m(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return l+e+s+m(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return l+e+s+m(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return l+e+s+e+e}return e}function K(e,t){for(var n="",r=w(e),o=0;o=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)},ue={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},le=/[A-Z]|^ms/g,ce=/_EMO_([^_]+?)_([^]*?)_EMO_/g,fe=function(e){return 45===e.charCodeAt(1)},pe=function(e){return null!=e&&"boolean"!==typeof e},de=J((function(e){return fe(e)?e:e.replace(le,"-$&").toLowerCase()})),he=function(e,t){switch(e){case"animation":case"animationName":if("string"===typeof t)return t.replace(ce,(function(e,t,n){return ye={name:t,styles:n,next:ye},t}))}return 1===ue[e]||fe(e)||"number"!==typeof t||0===t?t:t+"px"};function me(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return ye={name:n.name,styles:n.styles,next:ye},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)ye={name:r.name,styles:r.styles,next:ye},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Ne(e){return(Ne="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Fe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ie(e,t){for(var n=0;n-1}function et(e){return Ze(e)?window.pageYOffset:e.scrollTop}function tt(e,t){Ze(e)?window.scrollTo(0,t):e.scrollTop=t}function nt(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function rt(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:200,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Qe,o=et(e),i=t-o,a=10,s=0;function u(){var t=nt(s+=a,o,i,n);tt(e,t),s=d)return{placement:"bottom",maxHeight:t};if(C>=d&&!a)return i&&rt(u,E,160),{placement:"bottom",maxHeight:t};if(!a&&C>=r||a&&x>=r)return i&&rt(u,E,160),{placement:"bottom",maxHeight:a?x-v:C-v};if("auto"===o||a){var T=t,O=a?w:k;return O>=r&&(T=Math.min(O-v-s.controlHeight,t)),{placement:"top",maxHeight:T}}if("bottom"===o)return i&&tt(u,E),{placement:"bottom",maxHeight:t};break;case"top":if(w>=d)return{placement:"top",maxHeight:t};if(k>=d&&!a)return i&&rt(u,S,160),{placement:"top",maxHeight:t};if(!a&&k>=r||a&&w>=r){var _=t;return(!a&&k>=r||a&&w>=r)&&(_=a?w-b:k-b),i&&rt(u,S,160),{placement:"top",maxHeight:_}}return{placement:"bottom",maxHeight:t};default:throw new Error('Invalid placement provided "'.concat(o,'".'))}return l}var pt=function(e){return"auto"===e?"bottom":e},dt=Object(o.createContext)({getPortalPlacement:null}),ht=function(e){Be(n,e);var t=We(n);function n(){var e;Fe(this,n);for(var r=arguments.length,o=new Array(r),i=0;ie.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?"s":""," ").concat(o.join(","),", selected.");case"select-option":return"option ".concat(r,i?" is disabled. Select another option.":", selected.");default:return""}},onFocus:function(e){var t=e.context,n=e.focused,r=e.options,o=e.label,i=void 0===o?"":o,a=e.selectValue,s=e.isDisabled,u=e.isSelected,l=function(e,t){return e&&e.length?"".concat(e.indexOf(t)+1," of ").concat(e.length):""};if("value"===t&&a)return"value ".concat(i," focused, ").concat(l(a,n),".");if("menu"===t){var c=s?" disabled":"",f="".concat(u?"selected":"focused").concat(c);return"option ".concat(i," ").concat(f,", ").concat(l(r,n),".")}return""},onFilter:function(e){var t=e.inputValue,n=e.resultsMessage;return"".concat(n).concat(t?" for search term "+t:"",".")}},Gt=function(e){var t=e.ariaSelection,n=e.focusedOption,r=e.focusedValue,a=e.focusableOptions,s=e.isFocused,u=e.selectValue,l=e.selectProps,c=e.id,f=l.ariaLiveMessages,p=l.getOptionLabel,d=l.inputValue,h=l.isMulti,m=l.isOptionDisabled,y=l.isSearchable,g=l.menuIsOpen,v=l.options,b=l.screenReaderStatus,w=l.tabSelectsValue,x=l["aria-label"],k=l["aria-live"],C=Object(o.useMemo)((function(){return He(He({},Xt),f||{})}),[f]),E=Object(o.useMemo)((function(){var e,n="";if(t&&C.onChange){var r=t.option,o=t.options,i=t.removedValue,a=t.removedValues,s=t.value,l=i||r||(e=s,Array.isArray(e)?null:e),c=l?p(l):"",f=o||a||void 0,d=f?f.map(p):[],h=He({isDisabled:l&&m(l,u),label:c,labels:d},t);n=C.onChange(h)}return n}),[t,C,m,u,p]),S=Object(o.useMemo)((function(){var e="",t=n||r,o=!!(n&&u&&u.includes(n));if(t&&C.onFocus){var i={focused:t,label:p(t),isDisabled:m(t,u),isSelected:o,options:v,context:t===n?"menu":"value",selectValue:u};e=C.onFocus(i)}return e}),[n,r,p,m,C,v,u]),T=Object(o.useMemo)((function(){var e="";if(g&&v.length&&C.onFilter){var t=b({count:a.length});e=C.onFilter({inputValue:d,resultsMessage:t})}return e}),[a,d,g,C,v,b]),O=Object(o.useMemo)((function(){var e="";if(C.guidance){var t=r?"value":g?"menu":"input";e=C.guidance({"aria-label":x,context:t,isDisabled:n&&m(n,u),isMulti:h,isSearchable:y,tabSelectsValue:w})}return e}),[x,n,r,h,m,y,g,C,u,w]),_="".concat(S," ").concat(T," ").concat(O),P=Oe(i.a.Fragment,null,Oe("span",{id:"aria-selection"},E),Oe("span",{id:"aria-context"},_)),A="initial-input-focus"===(null===t||void 0===t?void 0:t.action);return Oe(i.a.Fragment,null,Oe(Kt,{id:c},A&&P),Oe(Kt,{"aria-live":k,"aria-atomic":"false","aria-relevant":"additions text"},s&&!A&&P))},Jt=[{base:"A",letters:"A\u24b6\uff21\xc0\xc1\xc2\u1ea6\u1ea4\u1eaa\u1ea8\xc3\u0100\u0102\u1eb0\u1eae\u1eb4\u1eb2\u0226\u01e0\xc4\u01de\u1ea2\xc5\u01fa\u01cd\u0200\u0202\u1ea0\u1eac\u1eb6\u1e00\u0104\u023a\u2c6f"},{base:"AA",letters:"\ua732"},{base:"AE",letters:"\xc6\u01fc\u01e2"},{base:"AO",letters:"\ua734"},{base:"AU",letters:"\ua736"},{base:"AV",letters:"\ua738\ua73a"},{base:"AY",letters:"\ua73c"},{base:"B",letters:"B\u24b7\uff22\u1e02\u1e04\u1e06\u0243\u0182\u0181"},{base:"C",letters:"C\u24b8\uff23\u0106\u0108\u010a\u010c\xc7\u1e08\u0187\u023b\ua73e"},{base:"D",letters:"D\u24b9\uff24\u1e0a\u010e\u1e0c\u1e10\u1e12\u1e0e\u0110\u018b\u018a\u0189\ua779"},{base:"DZ",letters:"\u01f1\u01c4"},{base:"Dz",letters:"\u01f2\u01c5"},{base:"E",letters:"E\u24ba\uff25\xc8\xc9\xca\u1ec0\u1ebe\u1ec4\u1ec2\u1ebc\u0112\u1e14\u1e16\u0114\u0116\xcb\u1eba\u011a\u0204\u0206\u1eb8\u1ec6\u0228\u1e1c\u0118\u1e18\u1e1a\u0190\u018e"},{base:"F",letters:"F\u24bb\uff26\u1e1e\u0191\ua77b"},{base:"G",letters:"G\u24bc\uff27\u01f4\u011c\u1e20\u011e\u0120\u01e6\u0122\u01e4\u0193\ua7a0\ua77d\ua77e"},{base:"H",letters:"H\u24bd\uff28\u0124\u1e22\u1e26\u021e\u1e24\u1e28\u1e2a\u0126\u2c67\u2c75\ua78d"},{base:"I",letters:"I\u24be\uff29\xcc\xcd\xce\u0128\u012a\u012c\u0130\xcf\u1e2e\u1ec8\u01cf\u0208\u020a\u1eca\u012e\u1e2c\u0197"},{base:"J",letters:"J\u24bf\uff2a\u0134\u0248"},{base:"K",letters:"K\u24c0\uff2b\u1e30\u01e8\u1e32\u0136\u1e34\u0198\u2c69\ua740\ua742\ua744\ua7a2"},{base:"L",letters:"L\u24c1\uff2c\u013f\u0139\u013d\u1e36\u1e38\u013b\u1e3c\u1e3a\u0141\u023d\u2c62\u2c60\ua748\ua746\ua780"},{base:"LJ",letters:"\u01c7"},{base:"Lj",letters:"\u01c8"},{base:"M",letters:"M\u24c2\uff2d\u1e3e\u1e40\u1e42\u2c6e\u019c"},{base:"N",letters:"N\u24c3\uff2e\u01f8\u0143\xd1\u1e44\u0147\u1e46\u0145\u1e4a\u1e48\u0220\u019d\ua790\ua7a4"},{base:"NJ",letters:"\u01ca"},{base:"Nj",letters:"\u01cb"},{base:"O",letters:"O\u24c4\uff2f\xd2\xd3\xd4\u1ed2\u1ed0\u1ed6\u1ed4\xd5\u1e4c\u022c\u1e4e\u014c\u1e50\u1e52\u014e\u022e\u0230\xd6\u022a\u1ece\u0150\u01d1\u020c\u020e\u01a0\u1edc\u1eda\u1ee0\u1ede\u1ee2\u1ecc\u1ed8\u01ea\u01ec\xd8\u01fe\u0186\u019f\ua74a\ua74c"},{base:"OI",letters:"\u01a2"},{base:"OO",letters:"\ua74e"},{base:"OU",letters:"\u0222"},{base:"P",letters:"P\u24c5\uff30\u1e54\u1e56\u01a4\u2c63\ua750\ua752\ua754"},{base:"Q",letters:"Q\u24c6\uff31\ua756\ua758\u024a"},{base:"R",letters:"R\u24c7\uff32\u0154\u1e58\u0158\u0210\u0212\u1e5a\u1e5c\u0156\u1e5e\u024c\u2c64\ua75a\ua7a6\ua782"},{base:"S",letters:"S\u24c8\uff33\u1e9e\u015a\u1e64\u015c\u1e60\u0160\u1e66\u1e62\u1e68\u0218\u015e\u2c7e\ua7a8\ua784"},{base:"T",letters:"T\u24c9\uff34\u1e6a\u0164\u1e6c\u021a\u0162\u1e70\u1e6e\u0166\u01ac\u01ae\u023e\ua786"},{base:"TZ",letters:"\ua728"},{base:"U",letters:"U\u24ca\uff35\xd9\xda\xdb\u0168\u1e78\u016a\u1e7a\u016c\xdc\u01db\u01d7\u01d5\u01d9\u1ee6\u016e\u0170\u01d3\u0214\u0216\u01af\u1eea\u1ee8\u1eee\u1eec\u1ef0\u1ee4\u1e72\u0172\u1e76\u1e74\u0244"},{base:"V",letters:"V\u24cb\uff36\u1e7c\u1e7e\u01b2\ua75e\u0245"},{base:"VY",letters:"\ua760"},{base:"W",letters:"W\u24cc\uff37\u1e80\u1e82\u0174\u1e86\u1e84\u1e88\u2c72"},{base:"X",letters:"X\u24cd\uff38\u1e8a\u1e8c"},{base:"Y",letters:"Y\u24ce\uff39\u1ef2\xdd\u0176\u1ef8\u0232\u1e8e\u0178\u1ef6\u1ef4\u01b3\u024e\u1efe"},{base:"Z",letters:"Z\u24cf\uff3a\u0179\u1e90\u017b\u017d\u1e92\u1e94\u01b5\u0224\u2c7f\u2c6b\ua762"},{base:"a",letters:"a\u24d0\uff41\u1e9a\xe0\xe1\xe2\u1ea7\u1ea5\u1eab\u1ea9\xe3\u0101\u0103\u1eb1\u1eaf\u1eb5\u1eb3\u0227\u01e1\xe4\u01df\u1ea3\xe5\u01fb\u01ce\u0201\u0203\u1ea1\u1ead\u1eb7\u1e01\u0105\u2c65\u0250"},{base:"aa",letters:"\ua733"},{base:"ae",letters:"\xe6\u01fd\u01e3"},{base:"ao",letters:"\ua735"},{base:"au",letters:"\ua737"},{base:"av",letters:"\ua739\ua73b"},{base:"ay",letters:"\ua73d"},{base:"b",letters:"b\u24d1\uff42\u1e03\u1e05\u1e07\u0180\u0183\u0253"},{base:"c",letters:"c\u24d2\uff43\u0107\u0109\u010b\u010d\xe7\u1e09\u0188\u023c\ua73f\u2184"},{base:"d",letters:"d\u24d3\uff44\u1e0b\u010f\u1e0d\u1e11\u1e13\u1e0f\u0111\u018c\u0256\u0257\ua77a"},{base:"dz",letters:"\u01f3\u01c6"},{base:"e",letters:"e\u24d4\uff45\xe8\xe9\xea\u1ec1\u1ebf\u1ec5\u1ec3\u1ebd\u0113\u1e15\u1e17\u0115\u0117\xeb\u1ebb\u011b\u0205\u0207\u1eb9\u1ec7\u0229\u1e1d\u0119\u1e19\u1e1b\u0247\u025b\u01dd"},{base:"f",letters:"f\u24d5\uff46\u1e1f\u0192\ua77c"},{base:"g",letters:"g\u24d6\uff47\u01f5\u011d\u1e21\u011f\u0121\u01e7\u0123\u01e5\u0260\ua7a1\u1d79\ua77f"},{base:"h",letters:"h\u24d7\uff48\u0125\u1e23\u1e27\u021f\u1e25\u1e29\u1e2b\u1e96\u0127\u2c68\u2c76\u0265"},{base:"hv",letters:"\u0195"},{base:"i",letters:"i\u24d8\uff49\xec\xed\xee\u0129\u012b\u012d\xef\u1e2f\u1ec9\u01d0\u0209\u020b\u1ecb\u012f\u1e2d\u0268\u0131"},{base:"j",letters:"j\u24d9\uff4a\u0135\u01f0\u0249"},{base:"k",letters:"k\u24da\uff4b\u1e31\u01e9\u1e33\u0137\u1e35\u0199\u2c6a\ua741\ua743\ua745\ua7a3"},{base:"l",letters:"l\u24db\uff4c\u0140\u013a\u013e\u1e37\u1e39\u013c\u1e3d\u1e3b\u017f\u0142\u019a\u026b\u2c61\ua749\ua781\ua747"},{base:"lj",letters:"\u01c9"},{base:"m",letters:"m\u24dc\uff4d\u1e3f\u1e41\u1e43\u0271\u026f"},{base:"n",letters:"n\u24dd\uff4e\u01f9\u0144\xf1\u1e45\u0148\u1e47\u0146\u1e4b\u1e49\u019e\u0272\u0149\ua791\ua7a5"},{base:"nj",letters:"\u01cc"},{base:"o",letters:"o\u24de\uff4f\xf2\xf3\xf4\u1ed3\u1ed1\u1ed7\u1ed5\xf5\u1e4d\u022d\u1e4f\u014d\u1e51\u1e53\u014f\u022f\u0231\xf6\u022b\u1ecf\u0151\u01d2\u020d\u020f\u01a1\u1edd\u1edb\u1ee1\u1edf\u1ee3\u1ecd\u1ed9\u01eb\u01ed\xf8\u01ff\u0254\ua74b\ua74d\u0275"},{base:"oi",letters:"\u01a3"},{base:"ou",letters:"\u0223"},{base:"oo",letters:"\ua74f"},{base:"p",letters:"p\u24df\uff50\u1e55\u1e57\u01a5\u1d7d\ua751\ua753\ua755"},{base:"q",letters:"q\u24e0\uff51\u024b\ua757\ua759"},{base:"r",letters:"r\u24e1\uff52\u0155\u1e59\u0159\u0211\u0213\u1e5b\u1e5d\u0157\u1e5f\u024d\u027d\ua75b\ua7a7\ua783"},{base:"s",letters:"s\u24e2\uff53\xdf\u015b\u1e65\u015d\u1e61\u0161\u1e67\u1e63\u1e69\u0219\u015f\u023f\ua7a9\ua785\u1e9b"},{base:"t",letters:"t\u24e3\uff54\u1e6b\u1e97\u0165\u1e6d\u021b\u0163\u1e71\u1e6f\u0167\u01ad\u0288\u2c66\ua787"},{base:"tz",letters:"\ua729"},{base:"u",letters:"u\u24e4\uff55\xf9\xfa\xfb\u0169\u1e79\u016b\u1e7b\u016d\xfc\u01dc\u01d8\u01d6\u01da\u1ee7\u016f\u0171\u01d4\u0215\u0217\u01b0\u1eeb\u1ee9\u1eef\u1eed\u1ef1\u1ee5\u1e73\u0173\u1e77\u1e75\u0289"},{base:"v",letters:"v\u24e5\uff56\u1e7d\u1e7f\u028b\ua75f\u028c"},{base:"vy",letters:"\ua761"},{base:"w",letters:"w\u24e6\uff57\u1e81\u1e83\u0175\u1e87\u1e85\u1e98\u1e89\u2c73"},{base:"x",letters:"x\u24e7\uff58\u1e8b\u1e8d"},{base:"y",letters:"y\u24e8\uff59\u1ef3\xfd\u0177\u1ef9\u0233\u1e8f\xff\u1ef7\u1e99\u1ef5\u01b4\u024f\u1eff"},{base:"z",letters:"z\u24e9\uff5a\u017a\u1e91\u017c\u017e\u1e93\u1e95\u01b6\u0225\u0240\u2c6c\ua763"}],Zt=new RegExp("["+Jt.map((function(e){return e.letters})).join("")+"]","g"),en={},tn=0;tn0,m=f-p-l,y=!1;m>t&&s.current&&(r&&r(e),s.current=!1),h&&u.current&&(a&&a(e),u.current=!1),h&&t>m?(n&&!s.current&&n(e),d.scrollTop=f,y=!0,s.current=!0):!h&&-t>l&&(i&&!u.current&&i(e),d.scrollTop=0,y=!0,u.current=!0),y&&function(e){e.preventDefault(),e.stopPropagation()}(e)}}),[n,r,i,a]),p=Object(o.useCallback)((function(e){f(e,e.deltaY)}),[f]),d=Object(o.useCallback)((function(e){l.current=e.changedTouches[0].clientY}),[]),h=Object(o.useCallback)((function(e){var t=l.current-e.changedTouches[0].clientY;f(e,t)}),[f]),m=Object(o.useCallback)((function(e){if(e){var t=!!ut&&{passive:!1};e.addEventListener("wheel",p,t),e.addEventListener("touchstart",d,t),e.addEventListener("touchmove",h,t)}}),[h,d,p]),y=Object(o.useCallback)((function(e){e&&(e.removeEventListener("wheel",p,!1),e.removeEventListener("touchstart",d,!1),e.removeEventListener("touchmove",h,!1))}),[h,d,p]);return Object(o.useEffect)((function(){if(t){var e=c.current;return m(e),function(){y(e)}}}),[t,m,y]),function(e){c.current=e}}({isEnabled:void 0===r||r,onBottomArrive:e.onBottomArrive,onBottomLeave:e.onBottomLeave,onTopArrive:e.onTopArrive,onTopLeave:e.onTopLeave}),s=function(e){var t=e.isEnabled,n=e.accountForScrollbars,r=void 0===n||n,i=Object(o.useRef)({}),a=Object(o.useRef)(null),s=Object(o.useCallback)((function(e){if(gn){var t=document.body,n=t&&t.style;if(r&&fn.forEach((function(e){var t=n&&n[e];i.current[e]=t})),r&&vn<1){var o=parseInt(i.current.paddingRight,10)||0,a=document.body?document.body.clientWidth:0,s=window.innerWidth-a+o||0;Object.keys(pn).forEach((function(e){var t=pn[e];n&&(n[e]=t)})),n&&(n.paddingRight="".concat(s,"px"))}t&&yn()&&(t.addEventListener("touchmove",dn,bn),e&&(e.addEventListener("touchstart",mn,bn),e.addEventListener("touchmove",hn,bn))),vn+=1}}),[r]),u=Object(o.useCallback)((function(e){if(gn){var t=document.body,n=t&&t.style;vn=Math.max(vn-1,0),r&&vn<1&&fn.forEach((function(e){var t=i.current[e];n&&(n[e]=t)})),t&&yn()&&(t.removeEventListener("touchmove",dn,bn),e&&(e.removeEventListener("touchstart",mn,bn),e.removeEventListener("touchmove",hn,bn)))}}),[r]);return Object(o.useEffect)((function(){if(t){var e=a.current;return s(e),function(){u(e)}}}),[t,s,u]),function(e){a.current=e}}({isEnabled:n});return Oe(i.a.Fragment,null,n&&Oe("div",{onClick:wn,css:xn}),t((function(e){a(e),s(e)})))}var Cn={clearIndicator:Rt,container:function(e){var t=e.isDisabled;return{label:"container",direction:e.isRtl?"rtl":void 0,pointerEvents:t?"none":void 0,position:"relative"}},control:function(e){var t=e.isDisabled,n=e.isFocused,r=e.theme,o=r.colors,i=r.borderRadius,a=r.spacing;return{label:"control",alignItems:"center",backgroundColor:t?o.neutral5:o.neutral0,borderColor:t?o.neutral10:n?o.primary:o.neutral20,borderRadius:i,borderStyle:"solid",borderWidth:1,boxShadow:n?"0 0 0 1px ".concat(o.primary):void 0,cursor:"default",display:"flex",flexWrap:"wrap",justifyContent:"space-between",minHeight:a.controlHeight,outline:"0 !important",position:"relative",transition:"all 100ms","&:hover":{borderColor:n?o.primary:o.neutral30}}},dropdownIndicator:At,group:function(e){var t=e.theme.spacing;return{paddingBottom:2*t.baseUnit,paddingTop:2*t.baseUnit}},groupHeading:function(e){var t=e.theme.spacing;return{label:"group",color:"#999",cursor:"default",display:"block",fontSize:"75%",fontWeight:500,marginBottom:"0.25em",paddingLeft:3*t.baseUnit,paddingRight:3*t.baseUnit,textTransform:"uppercase"}},indicatorsContainer:function(){return{alignItems:"center",alignSelf:"stretch",display:"flex",flexShrink:0}},indicatorSeparator:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing.baseUnit,o=n.colors;return{label:"indicatorSeparator",alignSelf:"stretch",backgroundColor:t?o.neutral10:o.neutral20,marginBottom:2*r,marginTop:2*r,width:1}},input:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing,o=n.colors;return He({margin:r.baseUnit/2,paddingBottom:r.baseUnit/2,paddingTop:r.baseUnit/2,visibility:t?"hidden":"visible",color:o.neutral80},Bt)},loadingIndicator:function(e){var t=e.isFocused,n=e.size,r=e.theme,o=r.colors,i=r.spacing.baseUnit;return{label:"loadingIndicator",color:t?o.neutral60:o.neutral20,display:"flex",padding:2*i,transition:"color 150ms",alignSelf:"center",fontSize:n,lineHeight:1,marginRight:n,textAlign:"center",verticalAlign:"middle"}},loadingMessage:gt,menu:function(e){var t,n=e.placement,r=e.theme,o=r.borderRadius,i=r.spacing,a=r.colors;return je(t={label:"menu"},function(e){return e?{bottom:"top",top:"bottom"}[e]:"bottom"}(n),"100%"),je(t,"backgroundColor",a.neutral0),je(t,"borderRadius",o),je(t,"boxShadow","0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)"),je(t,"marginBottom",i.menuGutter),je(t,"marginTop",i.menuGutter),je(t,"position","absolute"),je(t,"width","100%"),je(t,"zIndex",1),t},menuList:function(e){var t=e.maxHeight,n=e.theme.spacing.baseUnit;return{maxHeight:t,overflowY:"auto",paddingBottom:n,paddingTop:n,position:"relative",WebkitOverflowScrolling:"touch"}},menuPortal:function(e){var t=e.rect,n=e.offset,r=e.position;return{left:t.left,position:r,top:n,width:t.width,zIndex:1}},multiValue:function(e){var t=e.theme,n=t.spacing,r=t.borderRadius;return{label:"multiValue",backgroundColor:t.colors.neutral10,borderRadius:r/2,display:"flex",margin:n.baseUnit/2,minWidth:0}},multiValueLabel:function(e){var t=e.theme,n=t.borderRadius,r=t.colors,o=e.cropWithEllipsis;return{borderRadius:n/2,color:r.neutral80,fontSize:"85%",overflow:"hidden",padding:3,paddingLeft:6,textOverflow:o||void 0===o?"ellipsis":void 0,whiteSpace:"nowrap"}},multiValueRemove:function(e){var t=e.theme,n=t.spacing,r=t.borderRadius,o=t.colors;return{alignItems:"center",borderRadius:r/2,backgroundColor:e.isFocused?o.dangerLight:void 0,display:"flex",paddingLeft:n.baseUnit,paddingRight:n.baseUnit,":hover":{backgroundColor:o.dangerLight,color:o.danger}}},noOptionsMessage:yt,option:function(e){var t=e.isDisabled,n=e.isFocused,r=e.isSelected,o=e.theme,i=o.spacing,a=o.colors;return{label:"option",backgroundColor:r?a.primary:n?a.primary25:"transparent",color:t?a.neutral20:r?a.neutral0:"inherit",cursor:"default",display:"block",fontSize:"inherit",padding:"".concat(2*i.baseUnit,"px ").concat(3*i.baseUnit,"px"),width:"100%",userSelect:"none",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)",":active":{backgroundColor:t?void 0:r?a.primary:a.primary50}}},placeholder:function(e){var t=e.theme,n=t.spacing;return{label:"placeholder",color:t.colors.neutral50,gridArea:"1 / 1 / 2 / 3",marginLeft:n.baseUnit/2,marginRight:n.baseUnit/2}},singleValue:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing,o=n.colors;return{label:"singleValue",color:t?o.neutral40:o.neutral80,gridArea:"1 / 1 / 2 / 3",marginLeft:r.baseUnit/2,marginRight:r.baseUnit/2,maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},valueContainer:function(e){var t=e.theme.spacing,n=e.isMulti,r=e.hasValue;return{alignItems:"center",display:n&&r?"flex":"grid",flex:1,flexWrap:"wrap",padding:"".concat(t.baseUnit/2,"px ").concat(2*t.baseUnit,"px"),WebkitOverflowScrolling:"touch",position:"relative",overflow:"hidden"}}};var En,Sn={borderRadius:4,colors:{primary:"#2684FF",primary75:"#4C9AFF",primary50:"#B2D4FF",primary25:"#DEEBFF",danger:"#DE350B",dangerLight:"#FFBDAD",neutral0:"hsl(0, 0%, 100%)",neutral5:"hsl(0, 0%, 95%)",neutral10:"hsl(0, 0%, 90%)",neutral20:"hsl(0, 0%, 80%)",neutral30:"hsl(0, 0%, 70%)",neutral40:"hsl(0, 0%, 60%)",neutral50:"hsl(0, 0%, 50%)",neutral60:"hsl(0, 0%, 40%)",neutral70:"hsl(0, 0%, 30%)",neutral80:"hsl(0, 0%, 20%)",neutral90:"hsl(0, 0%, 10%)"},spacing:{baseUnit:4,controlHeight:38,menuGutter:8}},Tn={"aria-live":"polite",backspaceRemovesValue:!0,blurInputOnSelect:ot(),captureMenuScroll:!ot(),closeMenuOnSelect:!0,closeMenuOnScroll:!1,components:{},controlShouldRenderValue:!0,escapeClearsValue:!1,filterOption:function(e,t){if(e.data.__isNew__)return!0;var n=He({ignoreCase:!0,ignoreAccents:!0,stringify:un,trim:!0,matchFrom:"any"},En),r=n.ignoreCase,o=n.ignoreAccents,i=n.stringify,a=n.trim,s=n.matchFrom,u=a?sn(t):t,l=a?sn(i(e)):i(e);return r&&(u=u.toLowerCase(),l=l.toLowerCase()),o&&(u=an(u),l=on(l)),"start"===s?l.substr(0,u.length)===u:l.indexOf(u)>-1},formatGroupLabel:function(e){return e.label},getOptionLabel:function(e){return e.label},getOptionValue:function(e){return e.value},isDisabled:!1,isLoading:!1,isMulti:!1,isRtl:!1,isSearchable:!0,isOptionDisabled:function(e){return!!e.isDisabled},loadingMessage:function(){return"Loading..."},maxMenuHeight:300,minMenuHeight:140,menuIsOpen:!1,menuPlacement:"bottom",menuPosition:"absolute",menuShouldBlockScroll:!1,menuShouldScrollIntoView:!function(){try{return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}catch(s){return!1}}(),noOptionsMessage:function(){return"No options"},openMenuOnFocus:!1,openMenuOnClick:!0,options:[],pageSize:5,placeholder:"Select...",screenReaderStatus:function(e){var t=e.count;return"".concat(t," result").concat(1!==t?"s":""," available")},styles:{},tabIndex:0,tabSelectsValue:!0};function On(e,t,n,r){return{type:"option",data:t,isDisabled:Nn(e,t,n),isSelected:Fn(e,t,n),label:Rn(e,t),value:Mn(e,t),index:r}}function _n(e,t){return e.options.map((function(n,r){if("options"in n){var o=n.options.map((function(n,r){return On(e,n,t,r)})).filter((function(t){return An(e,t)}));return o.length>0?{type:"group",data:n,options:o,index:r}:void 0}var i=On(e,n,t,r);return An(e,i)?i:void 0})).filter(lt)}function Pn(e){return e.reduce((function(e,t){return"group"===t.type?e.push.apply(e,$t(t.options.map((function(e){return e.data})))):e.push(t.data),e}),[])}function An(e,t){var n=e.inputValue,r=void 0===n?"":n,o=t.data,i=t.isSelected,a=t.label,s=t.value;return(!Ln(e)||!i)&&In(e,{label:a,value:s,data:o},r)}var Rn=function(e,t){return e.getOptionLabel(t)},Mn=function(e,t){return e.getOptionValue(t)};function Nn(e,t,n){return"function"===typeof e.isOptionDisabled&&e.isOptionDisabled(t,n)}function Fn(e,t,n){if(n.indexOf(t)>-1)return!0;if("function"===typeof e.isOptionSelected)return e.isOptionSelected(t,n);var r=Mn(e,t);return n.some((function(t){return Mn(e,t)===r}))}function In(e,t,n){return!e.filterOption||e.filterOption(t,n)}var Ln=function(e){var t=e.hideSelectedOptions,n=e.isMulti;return void 0===t?n:t},Dn=1,Bn=function(e){Be(n,e);var t=We(n);function n(e){var r;return Fe(this,n),(r=t.call(this,e)).state={ariaSelection:null,focusedOption:null,focusedValue:null,inputIsHidden:!1,isFocused:!1,selectValue:[],clearFocusValueOnUpdate:!1,prevWasFocused:!1,inputIsHiddenAfterUpdate:void 0,prevProps:void 0},r.blockOptionHover=!1,r.isComposing=!1,r.commonProps=void 0,r.initialTouchX=0,r.initialTouchY=0,r.instancePrefix="",r.openAfterFocus=!1,r.scrollToFocusedOptionOnUpdate=!1,r.userIsDragging=void 0,r.controlRef=null,r.getControlRef=function(e){r.controlRef=e},r.focusedOptionRef=null,r.getFocusedOptionRef=function(e){r.focusedOptionRef=e},r.menuListRef=null,r.getMenuListRef=function(e){r.menuListRef=e},r.inputRef=null,r.getInputRef=function(e){r.inputRef=e},r.focus=r.focusInput,r.blur=r.blurInput,r.onChange=function(e,t){var n=r.props,o=n.onChange,i=n.name;t.name=i,r.ariaOnChange(e,t),o(e,t)},r.setValue=function(e,t,n){var o=r.props,i=o.closeMenuOnSelect,a=o.isMulti;r.onInputChange("",{action:"set-value"}),i&&(r.setState({inputIsHiddenAfterUpdate:!a}),r.onMenuClose()),r.setState({clearFocusValueOnUpdate:!0}),r.onChange(e,{action:t,option:n})},r.selectOption=function(e){var t=r.props,n=t.blurInputOnSelect,o=t.isMulti,i=t.name,a=r.state.selectValue,s=o&&r.isOptionSelected(e,a),u=r.isOptionDisabled(e,a);if(s){var l=r.getOptionValue(e);r.setValue(a.filter((function(e){return r.getOptionValue(e)!==l})),"deselect-option",e)}else{if(u)return void r.ariaOnChange(e,{action:"select-option",option:e,name:i});o?r.setValue([].concat($t(a),[e]),"select-option",e):r.setValue(e,"select-option")}n&&r.blurInput()},r.removeValue=function(e){var t=r.props.isMulti,n=r.state.selectValue,o=r.getOptionValue(e),i=n.filter((function(e){return r.getOptionValue(e)!==o})),a=ct(t,i,i[0]||null);r.onChange(a,{action:"remove-value",removedValue:e}),r.focusInput()},r.clearValue=function(){var e=r.state.selectValue;r.onChange(ct(r.props.isMulti,[],null),{action:"clear",removedValues:e})},r.popValue=function(){var e=r.props.isMulti,t=r.state.selectValue,n=t[t.length-1],o=t.slice(0,t.length-1),i=ct(e,o,o[0]||null);r.onChange(i,{action:"pop-value",removedValue:n})},r.getValue=function(){return r.state.selectValue},r.cx=function(){for(var e=arguments.length,t=new Array(e),n=0;n5||i>5}},r.onTouchEnd=function(e){r.userIsDragging||(r.controlRef&&!r.controlRef.contains(e.target)&&r.menuListRef&&!r.menuListRef.contains(e.target)&&r.blurInput(),r.initialTouchX=0,r.initialTouchY=0)},r.onControlTouchEnd=function(e){r.userIsDragging||r.onControlMouseDown(e)},r.onClearIndicatorTouchEnd=function(e){r.userIsDragging||r.onClearIndicatorMouseDown(e)},r.onDropdownIndicatorTouchEnd=function(e){r.userIsDragging||r.onDropdownIndicatorMouseDown(e)},r.handleInputChange=function(e){var t=e.currentTarget.value;r.setState({inputIsHiddenAfterUpdate:!1}),r.onInputChange(t,{action:"input-change"}),r.props.menuIsOpen||r.onMenuOpen()},r.onInputFocus=function(e){r.props.onFocus&&r.props.onFocus(e),r.setState({inputIsHiddenAfterUpdate:!1,isFocused:!0}),(r.openAfterFocus||r.props.openMenuOnFocus)&&r.openMenu("first"),r.openAfterFocus=!1},r.onInputBlur=function(e){r.menuListRef&&r.menuListRef.contains(document.activeElement)?r.inputRef.focus():(r.props.onBlur&&r.props.onBlur(e),r.onInputChange("",{action:"input-blur"}),r.onMenuClose(),r.setState({focusedValue:null,isFocused:!1}))},r.onOptionHover=function(e){r.blockOptionHover||r.state.focusedOption===e||r.setState({focusedOption:e})},r.shouldHideSelectedOptions=function(){return Ln(r.props)},r.onKeyDown=function(e){var t=r.props,n=t.isMulti,o=t.backspaceRemovesValue,i=t.escapeClearsValue,a=t.inputValue,s=t.isClearable,u=t.isDisabled,l=t.menuIsOpen,c=t.onKeyDown,f=t.tabSelectsValue,p=t.openMenuOnFocus,d=r.state,h=d.focusedOption,m=d.focusedValue,y=d.selectValue;if(!u&&("function"!==typeof c||(c(e),!e.defaultPrevented))){switch(r.blockOptionHover=!0,e.key){case"ArrowLeft":if(!n||a)return;r.focusValue("previous");break;case"ArrowRight":if(!n||a)return;r.focusValue("next");break;case"Delete":case"Backspace":if(a)return;if(m)r.removeValue(m);else{if(!o)return;n?r.popValue():s&&r.clearValue()}break;case"Tab":if(r.isComposing)return;if(e.shiftKey||!l||!f||!h||p&&r.isOptionSelected(h,y))return;r.selectOption(h);break;case"Enter":if(229===e.keyCode)break;if(l){if(!h)return;if(r.isComposing)return;r.selectOption(h);break}return;case"Escape":l?(r.setState({inputIsHiddenAfterUpdate:!1}),r.onInputChange("",{action:"menu-close"}),r.onMenuClose()):s&&i&&r.clearValue();break;case" ":if(a)return;if(!l){r.openMenu("first");break}if(!h)return;r.selectOption(h);break;case"ArrowUp":l?r.focusOption("up"):r.openMenu("last");break;case"ArrowDown":l?r.focusOption("down"):r.openMenu("first");break;case"PageUp":if(!l)return;r.focusOption("pageup");break;case"PageDown":if(!l)return;r.focusOption("pagedown");break;case"Home":if(!l)return;r.focusOption("first");break;case"End":if(!l)return;r.focusOption("last");break;default:return}e.preventDefault()}},r.instancePrefix="react-select-"+(r.props.instanceId||++Dn),r.state.selectValue=Ge(e.value),r}return Le(n,[{key:"componentDidMount",value:function(){this.startListeningComposition(),this.startListeningToTouch(),this.props.closeMenuOnScroll&&document&&document.addEventListener&&document.addEventListener("scroll",this.onScroll,!0),this.props.autoFocus&&this.focusInput()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.isDisabled,r=t.menuIsOpen,o=this.state.isFocused;(o&&!n&&e.isDisabled||o&&r&&!e.menuIsOpen)&&this.focusInput(),o&&n&&!e.isDisabled&&this.setState({isFocused:!1},this.onMenuClose),this.menuListRef&&this.focusedOptionRef&&this.scrollToFocusedOptionOnUpdate&&(!function(e,t){var n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),o=t.offsetHeight/3;r.bottom+o>n.bottom?tt(e,Math.min(t.offsetTop+t.clientHeight-e.offsetHeight+o,e.scrollHeight)):r.top-o-1&&(a=s)}this.scrollToFocusedOptionOnUpdate=!(o&&this.menuListRef),this.setState({inputIsHiddenAfterUpdate:!1,focusedValue:null,focusedOption:i[a]},(function(){return t.onMenuOpen()}))}},{key:"focusValue",value:function(e){var t=this.state,n=t.selectValue,r=t.focusedValue;if(this.props.isMulti){this.setState({focusedOption:null});var o=n.indexOf(r);r||(o=-1);var i=n.length-1,a=-1;if(n.length){switch(e){case"previous":a=0===o?0:-1===o?i:o-1;break;case"next":o>-1&&o0&&void 0!==arguments[0]?arguments[0]:"first",t=this.props.pageSize,n=this.state.focusedOption,r=this.getFocusableOptions();if(r.length){var o=0,i=r.indexOf(n);n||(i=-1),"up"===e?o=i>0?i-1:r.length-1:"down"===e?o=(i+1)%r.length:"pageup"===e?(o=i-t)<0&&(o=0):"pagedown"===e?(o=i+t)>r.length-1&&(o=r.length-1):"last"===e&&(o=r.length-1),this.scrollToFocusedOptionOnUpdate=!0,this.setState({focusedOption:r[o],focusedValue:null})}}},{key:"getTheme",value:function(){return this.props.theme?"function"===typeof this.props.theme?this.props.theme(Sn):He(He({},Sn),this.props.theme):Sn}},{key:"getCommonProps",value:function(){var e=this.clearValue,t=this.cx,n=this.getStyles,r=this.getValue,o=this.selectOption,i=this.setValue,a=this.props,s=a.isMulti,u=a.isRtl,l=a.options;return{clearValue:e,cx:t,getStyles:n,getValue:r,hasValue:this.hasValue(),isMulti:s,isRtl:u,options:l,selectOption:o,selectProps:a,setValue:i,theme:this.getTheme()}}},{key:"hasValue",value:function(){return this.state.selectValue.length>0}},{key:"hasOptions",value:function(){return!!this.getFocusableOptions().length}},{key:"isClearable",value:function(){var e=this.props,t=e.isClearable,n=e.isMulti;return void 0===t?n:t}},{key:"isOptionDisabled",value:function(e,t){return Nn(this.props,e,t)}},{key:"isOptionSelected",value:function(e,t){return Fn(this.props,e,t)}},{key:"filterOption",value:function(e,t){return In(this.props,e,t)}},{key:"formatOptionLabel",value:function(e,t){if("function"===typeof this.props.formatOptionLabel){var n=this.props.inputValue,r=this.state.selectValue;return this.props.formatOptionLabel(e,{context:t,inputValue:n,selectValue:r})}return this.getOptionLabel(e)}},{key:"formatGroupLabel",value:function(e){return this.props.formatGroupLabel(e)}},{key:"startListeningComposition",value:function(){document&&document.addEventListener&&(document.addEventListener("compositionstart",this.onCompositionStart,!1),document.addEventListener("compositionend",this.onCompositionEnd,!1))}},{key:"stopListeningComposition",value:function(){document&&document.removeEventListener&&(document.removeEventListener("compositionstart",this.onCompositionStart),document.removeEventListener("compositionend",this.onCompositionEnd))}},{key:"startListeningToTouch",value:function(){document&&document.addEventListener&&(document.addEventListener("touchstart",this.onTouchStart,!1),document.addEventListener("touchmove",this.onTouchMove,!1),document.addEventListener("touchend",this.onTouchEnd,!1))}},{key:"stopListeningToTouch",value:function(){document&&document.removeEventListener&&(document.removeEventListener("touchstart",this.onTouchStart),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("touchend",this.onTouchEnd))}},{key:"renderInput",value:function(){var e=this.props,t=e.isDisabled,n=e.isSearchable,o=e.inputId,a=e.inputValue,s=e.tabIndex,u=e.form,l=e.menuIsOpen,c=this.getComponents().Input,f=this.state,p=f.inputIsHidden,d=f.ariaSelection,h=this.commonProps,m=o||this.getElementId("input"),y=He(He({"aria-autocomplete":"list","aria-expanded":l,"aria-haspopup":!0,"aria-controls":this.getElementId("listbox"),"aria-owns":this.getElementId("listbox"),"aria-errormessage":this.props["aria-errormessage"],"aria-invalid":this.props["aria-invalid"],"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],role:"combobox"},!n&&{"aria-readonly":!0}),this.hasValue()?"initial-input-focus"===(null===d||void 0===d?void 0:d.action)&&{"aria-describedby":this.getElementId("live-region")}:{"aria-describedby":this.getElementId("placeholder")});return n?i.a.createElement(c,r({},h,{autoCapitalize:"none",autoComplete:"off",autoCorrect:"off",id:m,innerRef:this.getInputRef,isDisabled:t,isHidden:p,onBlur:this.onInputBlur,onChange:this.handleInputChange,onFocus:this.onInputFocus,spellCheck:"false",tabIndex:s,form:u,type:"text",value:a},y)):i.a.createElement(cn,r({id:m,innerRef:this.getInputRef,onBlur:this.onInputBlur,onChange:Qe,onFocus:this.onInputFocus,disabled:t,tabIndex:s,inputMode:"none",form:u,value:""},y))}},{key:"renderPlaceholderOrValue",value:function(){var e=this,t=this.getComponents(),n=t.MultiValue,o=t.MultiValueContainer,a=t.MultiValueLabel,s=t.MultiValueRemove,u=t.SingleValue,l=t.Placeholder,c=this.commonProps,f=this.props,p=f.controlShouldRenderValue,d=f.isDisabled,h=f.isMulti,m=f.inputValue,y=f.placeholder,g=this.state,v=g.selectValue,b=g.focusedValue,w=g.isFocused;if(!this.hasValue()||!p)return m?null:i.a.createElement(l,r({},c,{key:"placeholder",isDisabled:d,isFocused:w,innerProps:{id:this.getElementId("placeholder")}}),y);if(h)return v.map((function(t,u){var l=t===b;return i.a.createElement(n,r({},c,{components:{Container:o,Label:a,Remove:s},isFocused:l,isDisabled:d,key:"".concat(e.getOptionValue(t),"-").concat(u),index:u,removeProps:{onClick:function(){return e.removeValue(t)},onTouchEnd:function(){return e.removeValue(t)},onMouseDown:function(e){e.preventDefault(),e.stopPropagation()}},data:t}),e.formatOptionLabel(t,"value"))}));if(m)return null;var x=v[0];return i.a.createElement(u,r({},c,{data:x,isDisabled:d}),this.formatOptionLabel(x,"value"))}},{key:"renderClearIndicator",value:function(){var e=this.getComponents().ClearIndicator,t=this.commonProps,n=this.props,o=n.isDisabled,a=n.isLoading,s=this.state.isFocused;if(!this.isClearable()||!e||o||!this.hasValue()||a)return null;var u={onMouseDown:this.onClearIndicatorMouseDown,onTouchEnd:this.onClearIndicatorTouchEnd,"aria-hidden":"true"};return i.a.createElement(e,r({},t,{innerProps:u,isFocused:s}))}},{key:"renderLoadingIndicator",value:function(){var e=this.getComponents().LoadingIndicator,t=this.commonProps,n=this.props,o=n.isDisabled,a=n.isLoading,s=this.state.isFocused;if(!e||!a)return null;return i.a.createElement(e,r({},t,{innerProps:{"aria-hidden":"true"},isDisabled:o,isFocused:s}))}},{key:"renderIndicatorSeparator",value:function(){var e=this.getComponents(),t=e.DropdownIndicator,n=e.IndicatorSeparator;if(!t||!n)return null;var o=this.commonProps,a=this.props.isDisabled,s=this.state.isFocused;return i.a.createElement(n,r({},o,{isDisabled:a,isFocused:s}))}},{key:"renderDropdownIndicator",value:function(){var e=this.getComponents().DropdownIndicator;if(!e)return null;var t=this.commonProps,n=this.props.isDisabled,o=this.state.isFocused,a={onMouseDown:this.onDropdownIndicatorMouseDown,onTouchEnd:this.onDropdownIndicatorTouchEnd,"aria-hidden":"true"};return i.a.createElement(e,r({},t,{innerProps:a,isDisabled:n,isFocused:o}))}},{key:"renderMenu",value:function(){var e=this,t=this.getComponents(),n=t.Group,o=t.GroupHeading,a=t.Menu,s=t.MenuList,u=t.MenuPortal,l=t.LoadingMessage,c=t.NoOptionsMessage,f=t.Option,p=this.commonProps,d=this.state.focusedOption,h=this.props,m=h.captureMenuScroll,y=h.inputValue,g=h.isLoading,v=h.loadingMessage,b=h.minMenuHeight,w=h.maxMenuHeight,x=h.menuIsOpen,k=h.menuPlacement,C=h.menuPosition,E=h.menuPortalTarget,S=h.menuShouldBlockScroll,T=h.menuShouldScrollIntoView,O=h.noOptionsMessage,_=h.onMenuScrollToTop,P=h.onMenuScrollToBottom;if(!x)return null;var A,R=function(t,n){var o=t.type,a=t.data,s=t.isDisabled,u=t.isSelected,l=t.label,c=t.value,h=d===a,m=s?void 0:function(){return e.onOptionHover(a)},y=s?void 0:function(){return e.selectOption(a)},g="".concat(e.getElementId("option"),"-").concat(n),v={id:g,onClick:y,onMouseMove:m,onMouseOver:m,tabIndex:-1};return i.a.createElement(f,r({},p,{innerProps:v,data:a,isDisabled:s,isSelected:u,key:g,label:l,type:o,value:c,isFocused:h,innerRef:h?e.getFocusedOptionRef:void 0}),e.formatOptionLabel(t.data,"menu"))};if(this.hasOptions())A=this.getCategorizedOptions().map((function(t){if("group"===t.type){var a=t.data,s=t.options,u=t.index,l="".concat(e.getElementId("group"),"-").concat(u),c="".concat(l,"-heading");return i.a.createElement(n,r({},p,{key:l,data:a,options:s,Heading:o,headingProps:{id:c,data:t.data},label:e.formatGroupLabel(t.data)}),t.options.map((function(e){return R(e,"".concat(u,"-").concat(e.index))})))}if("option"===t.type)return R(t,"".concat(t.index))}));else if(g){var M=v({inputValue:y});if(null===M)return null;A=i.a.createElement(l,p,M)}else{var N=O({inputValue:y});if(null===N)return null;A=i.a.createElement(c,p,N)}var F={minMenuHeight:b,maxMenuHeight:w,menuPlacement:k,menuPosition:C,menuShouldScrollIntoView:T},I=i.a.createElement(ht,r({},p,F),(function(t){var n=t.ref,o=t.placerProps,u=o.placement,l=o.maxHeight;return i.a.createElement(a,r({},p,F,{innerRef:n,innerProps:{onMouseDown:e.onMenuMouseDown,onMouseMove:e.onMenuMouseMove,id:e.getElementId("listbox")},isLoading:g,placement:u}),i.a.createElement(kn,{captureEnabled:m,onTopArrive:_,onBottomArrive:P,lockEnabled:S},(function(t){return i.a.createElement(s,r({},p,{innerRef:function(n){e.getMenuListRef(n),t(n)},isLoading:g,maxHeight:l,focusedOption:d}),A)})))}));return E||"fixed"===C?i.a.createElement(u,r({},p,{appendTo:E,controlElement:this.controlRef,menuPlacement:k,menuPosition:C}),I):I}},{key:"renderFormField",value:function(){var e=this,t=this.props,n=t.delimiter,r=t.isDisabled,o=t.isMulti,a=t.name,s=this.state.selectValue;if(a&&!r){if(o){if(n){var u=s.map((function(t){return e.getOptionValue(t)})).join(n);return i.a.createElement("input",{name:a,type:"hidden",value:u})}var l=s.length>0?s.map((function(t,n){return i.a.createElement("input",{key:"i-".concat(n),name:a,type:"hidden",value:e.getOptionValue(t)})})):i.a.createElement("input",{name:a,type:"hidden"});return i.a.createElement("div",null,l)}var c=s[0]?this.getOptionValue(s[0]):"";return i.a.createElement("input",{name:a,type:"hidden",value:c})}}},{key:"renderLiveRegion",value:function(){var e=this.commonProps,t=this.state,n=t.ariaSelection,o=t.focusedOption,a=t.focusedValue,s=t.isFocused,u=t.selectValue,l=this.getFocusableOptions();return i.a.createElement(Gt,r({},e,{id:this.getElementId("live-region"),ariaSelection:n,focusedOption:o,focusedValue:a,isFocused:s,selectValue:u,focusableOptions:l}))}},{key:"render",value:function(){var e=this.getComponents(),t=e.Control,n=e.IndicatorsContainer,o=e.SelectContainer,a=e.ValueContainer,s=this.props,u=s.className,l=s.id,c=s.isDisabled,f=s.menuIsOpen,p=this.state.isFocused,d=this.commonProps=this.getCommonProps();return i.a.createElement(o,r({},d,{className:u,innerProps:{id:l,onKeyDown:this.onKeyDown},isDisabled:c,isFocused:p}),this.renderLiveRegion(),i.a.createElement(t,r({},d,{innerRef:this.getControlRef,innerProps:{onMouseDown:this.onControlMouseDown,onTouchEnd:this.onControlTouchEnd},isDisabled:c,isFocused:p,menuIsOpen:f}),i.a.createElement(a,r({},d,{isDisabled:c}),this.renderPlaceholderOrValue(),this.renderInput()),i.a.createElement(n,r({},d,{isDisabled:c}),this.renderClearIndicator(),this.renderLoadingIndicator(),this.renderIndicatorSeparator(),this.renderDropdownIndicator())),this.renderMenu(),this.renderFormField())}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,r=t.clearFocusValueOnUpdate,o=t.inputIsHiddenAfterUpdate,i=t.ariaSelection,a=t.isFocused,s=t.prevWasFocused,u=e.options,l=e.value,c=e.menuIsOpen,f=e.inputValue,p=e.isMulti,d=Ge(l),h={};if(n&&(l!==n.value||u!==n.options||c!==n.menuIsOpen||f!==n.inputValue)){var m=c?function(e,t){return Pn(_n(e,t))}(e,d):[],y=r?function(e,t){var n=e.focusedValue,r=e.selectValue.indexOf(n);if(r>-1){if(t.indexOf(n)>-1)return n;if(r-1?n:t[0]}(t,m),focusedValue:y,clearFocusValueOnUpdate:!1}}var g=null!=o&&e!==n?{inputIsHidden:o,inputIsHiddenAfterUpdate:void 0}:{},v=i,b=a&&s;return a&&!b&&(v={value:ct(p,d,d[0]||null),options:d,action:"initial-input-focus"},b=!s),"initial-input-focus"===(null===i||void 0===i?void 0:i.action)&&(v=null),He(He(He({},h),g),{},{prevProps:e,ariaSelection:v,prevWasFocused:b})}}]),n}(o.Component);function jn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(u){s=!0,o=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}}(e,t)||Ht(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}Bn.defaultProps=Tn;var Un=["defaultInputValue","defaultMenuIsOpen","defaultValue","inputValue","menuIsOpen","onChange","onInputChange","onMenuClose","onMenuOpen","value"];n(55),n(59),n(61),n(65),n(66),n(67);var zn=i.a.forwardRef((function(e,t){var n=function(e){var t=e.defaultInputValue,n=void 0===t?"":t,r=e.defaultMenuIsOpen,i=void 0!==r&&r,a=e.defaultValue,s=void 0===a?null:a,u=e.inputValue,l=e.menuIsOpen,c=e.onChange,f=e.onInputChange,p=e.onMenuClose,d=e.onMenuOpen,h=e.value,m=Me(e,Un),y=jn(Object(o.useState)(void 0!==u?u:n),2),g=y[0],v=y[1],b=jn(Object(o.useState)(void 0!==l?l:i),2),w=b[0],x=b[1],k=jn(Object(o.useState)(void 0!==h?h:s),2),C=k[0],E=k[1],S=Object(o.useCallback)((function(e,t){"function"===typeof c&&c(e,t),E(e)}),[c]),T=Object(o.useCallback)((function(e,t){var n;"function"===typeof f&&(n=f(e,t)),v(void 0!==n?n:e)}),[f]),O=Object(o.useCallback)((function(){"function"===typeof d&&d(),x(!0)}),[d]),_=Object(o.useCallback)((function(){"function"===typeof p&&p(),x(!1)}),[p]),P=void 0!==u?u:g,A=void 0!==l?l:w,R=void 0!==h?h:C;return He(He({},m),{},{inputValue:P,menuIsOpen:A,onChange:S,onInputChange:T,onMenuClose:_,onMenuOpen:O,value:R})}(e);return i.a.createElement(Bn,r({ref:t},n))}));o.Component,t.a=zn},function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(s&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),x(n),l}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;x(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:C(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),l}},e}(e.exports);try{regeneratorRuntime=r}catch(o){Function("r","regeneratorRuntime = r")(r)}},function(e,t,n){"use strict";var r=n(21),o="function"===typeof Symbol&&Symbol.for,i=o?Symbol.for("react.element"):60103,a=o?Symbol.for("react.portal"):60106,s=o?Symbol.for("react.fragment"):60107,u=o?Symbol.for("react.strict_mode"):60108,l=o?Symbol.for("react.profiler"):60114,c=o?Symbol.for("react.provider"):60109,f=o?Symbol.for("react.context"):60110,p=o?Symbol.for("react.forward_ref"):60112,d=o?Symbol.for("react.suspense"):60113,h=o?Symbol.for("react.memo"):60115,m=o?Symbol.for("react.lazy"):60116,y="function"===typeof Symbol&&Symbol.iterator;function g(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;nA.length&&A.push(e)}function N(e,t,n){return null==e?0:function e(t,n,r,o){var s=typeof t;"undefined"!==s&&"boolean"!==s||(t=null);var u=!1;if(null===t)u=!0;else switch(s){case"string":case"number":u=!0;break;case"object":switch(t.$$typeof){case i:case a:u=!0}}if(u)return r(o,t,""===n?"."+F(t,0):n),1;if(u=0,n=""===n?".":n+":",Array.isArray(t))for(var l=0;lt}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!H.call(q,e)||!H.call($,e)&&(V.test(e)?q[e]=!0:($[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}X.hasOwnProperty("ReactCurrentDispatcher")||(X.ReactCurrentDispatcher={current:null}),X.hasOwnProperty("ReactCurrentBatchConfig")||(X.ReactCurrentBatchConfig={suspense:null});var J=/^(.*)[\\\/]/,Z="function"===typeof Symbol&&Symbol.for,ee=Z?Symbol.for("react.element"):60103,te=Z?Symbol.for("react.portal"):60106,ne=Z?Symbol.for("react.fragment"):60107,re=Z?Symbol.for("react.strict_mode"):60108,oe=Z?Symbol.for("react.profiler"):60114,ie=Z?Symbol.for("react.provider"):60109,ae=Z?Symbol.for("react.context"):60110,se=Z?Symbol.for("react.concurrent_mode"):60111,ue=Z?Symbol.for("react.forward_ref"):60112,le=Z?Symbol.for("react.suspense"):60113,ce=Z?Symbol.for("react.suspense_list"):60120,fe=Z?Symbol.for("react.memo"):60115,pe=Z?Symbol.for("react.lazy"):60116,de=Z?Symbol.for("react.block"):60121,he="function"===typeof Symbol&&Symbol.iterator;function me(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=he&&e[he]||e["@@iterator"])?e:null}function ye(e){if(null==e)return null;if("function"===typeof e)return e.displayName||e.name||null;if("string"===typeof e)return e;switch(e){case ne:return"Fragment";case te:return"Portal";case oe:return"Profiler";case re:return"StrictMode";case le:return"Suspense";case ce:return"SuspenseList"}if("object"===typeof e)switch(e.$$typeof){case ae:return"Context.Consumer";case ie:return"Context.Provider";case ue:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case fe:return ye(e.type);case de:return ye(e.render);case pe:if(e=1===e._status?e._result:null)return ye(e)}return null}function ge(e){var t="";do{e:switch(e.tag){case 3:case 4:case 6:case 7:case 10:case 9:var n="";break e;default:var r=e._debugOwner,o=e._debugSource,i=ye(e.type);n=null,r&&(n=ye(r.type)),r=i,i="",o?i=" (at "+o.fileName.replace(J,"")+":"+o.lineNumber+")":n&&(i=" (created by "+n+")"),n="\n in "+(r||"Unknown")+i}t+=n,e=e.return}while(e);return t}function ve(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function be(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function we(e){e._valueTracker||(e._valueTracker=function(e){var t=be(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&"undefined"!==typeof n&&"function"===typeof n.get&&"function"===typeof n.set){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,i.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function xe(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=be(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function ke(e,t){var n=t.checked;return o({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Ce(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=ve(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function Ee(e,t){null!=(t=t.checked)&&G(e,"checked",t,!1)}function Se(e,t){Ee(e,t);var n=ve(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?Oe(e,t.type,n):t.hasOwnProperty("defaultValue")&&Oe(e,t.type,ve(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function Te(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function Oe(e,t,n){"number"===t&&e.ownerDocument.activeElement===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function _e(e,t){return e=o({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function Pe(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o=n.length))throw Error(a(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:ve(n)}}function Me(e,t){var n=ve(t.value),r=ve(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function Ne(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var Fe="http://www.w3.org/1999/xhtml",Ie="http://www.w3.org/2000/svg";function Le(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function De(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?Le(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var Be,je=function(e){return"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction((function(){return e(t,n)}))}:e}((function(e,t){if(e.namespaceURI!==Ie||"innerHTML"in e)e.innerHTML=t;else{for((Be=Be||document.createElement("div")).innerHTML="",t=Be.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}}));function Ue(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}function ze(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Ve={animationend:ze("Animation","AnimationEnd"),animationiteration:ze("Animation","AnimationIteration"),animationstart:ze("Animation","AnimationStart"),transitionend:ze("Transition","TransitionEnd")},He={},$e={};function qe(e){if(He[e])return He[e];if(!Ve[e])return e;var t,n=Ve[e];for(t in n)if(n.hasOwnProperty(t)&&t in $e)return He[e]=n[t];return e}O&&($e=document.createElement("div").style,"AnimationEvent"in window||(delete Ve.animationend.animation,delete Ve.animationiteration.animation,delete Ve.animationstart.animation),"TransitionEvent"in window||delete Ve.transitionend.transition);var We=qe("animationend"),Ye=qe("animationiteration"),Qe=qe("animationstart"),Ke=qe("transitionend"),Xe="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ge=new("function"===typeof WeakMap?WeakMap:Map);function Je(e){var t=Ge.get(e);return void 0===t&&(t=new Map,Ge.set(e,t)),t}function Ze(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!==(1026&(t=e).effectTag)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function et(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function tt(e){if(Ze(e)!==e)throw Error(a(188))}function nt(e){if(!(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ze(e)))throw Error(a(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var i=o.alternate;if(null===i){if(null!==(r=o.return)){n=r;continue}break}if(o.child===i.child){for(i=o.child;i;){if(i===n)return tt(o),e;if(i===r)return tt(o),t;i=i.sibling}throw Error(a(188))}if(n.return!==r.return)n=o,r=i;else{for(var s=!1,u=o.child;u;){if(u===n){s=!0,n=o,r=i;break}if(u===r){s=!0,r=o,n=i;break}u=u.sibling}if(!s){for(u=i.child;u;){if(u===n){s=!0,n=i,r=o;break}if(u===r){s=!0,r=i,n=o;break}u=u.sibling}if(!s)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(3!==n.tag)throw Error(a(188));return n.stateNode.current===n?e:t}(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function rt(e,t){if(null==t)throw Error(a(30));return null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function ot(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}var it=null;function at(e){if(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t))for(var r=0;rct.length&&ct.push(e)}function pt(e,t,n,r){if(ct.length){var o=ct.pop();return o.topLevelType=e,o.eventSystemFlags=r,o.nativeEvent=t,o.targetInst=n,o}return{topLevelType:e,eventSystemFlags:r,nativeEvent:t,targetInst:n,ancestors:[]}}function dt(e){var t=e.targetInst,n=t;do{if(!n){e.ancestors.push(n);break}var r=n;if(3===r.tag)r=r.stateNode.containerInfo;else{for(;r.return;)r=r.return;r=3!==r.tag?null:r.stateNode.containerInfo}if(!r)break;5!==(t=n.tag)&&6!==t||e.ancestors.push(n),n=On(r)}while(n);for(n=0;n=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=fn(r)}}function dn(){for(var e=window,t=cn();t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=cn((e=t.contentWindow).document)}return t}function hn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var mn=null,yn=null;function gn(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function vn(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"===typeof t.children||"number"===typeof t.children||"object"===typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var bn="function"===typeof setTimeout?setTimeout:void 0,wn="function"===typeof clearTimeout?clearTimeout:void 0;function xn(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function kn(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Cn=Math.random().toString(36).slice(2),En="__reactInternalInstance$"+Cn,Sn="__reactEventHandlers$"+Cn,Tn="__reactContainere$"+Cn;function On(e){var t=e[En];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Tn]||n[En]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=kn(e);null!==e;){if(n=e[En])return n;e=kn(e)}return t}n=(e=n).parentNode}return null}function _n(e){return!(e=e[En]||e[Tn])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function Pn(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function An(e){return e[Sn]||null}function Rn(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function Mn(e,t){var n=e.stateNode;if(!n)return null;var r=h(n);if(!r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!==typeof n)throw Error(a(231,t,typeof n));return n}function Nn(e,t,n){(t=Mn(e,n.dispatchConfig.phasedRegistrationNames[t]))&&(n._dispatchListeners=rt(n._dispatchListeners,t),n._dispatchInstances=rt(n._dispatchInstances,e))}function Fn(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var t=e._targetInst,n=[];t;)n.push(t),t=Rn(t);for(t=n.length;0this.eventPool.length&&this.eventPool.push(e)}function Yn(e){e.eventPool=[],e.getPooled=qn,e.release=Wn}o($n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=Vn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=Vn)},persist:function(){this.isPersistent=Vn},isPersistent:Hn,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=Hn,this._dispatchInstances=this._dispatchListeners=null}}),$n.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},$n.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var i=new t;return o(i,n.prototype),n.prototype=i,n.prototype.constructor=n,n.Interface=o({},r.Interface,e),n.extend=r.extend,Yn(n),n},Yn($n);var Qn=$n.extend({data:null}),Kn=$n.extend({data:null}),Xn=[9,13,27,32],Gn=O&&"CompositionEvent"in window,Jn=null;O&&"documentMode"in document&&(Jn=document.documentMode);var Zn=O&&"TextEvent"in window&&!Jn,er=O&&(!Gn||Jn&&8=Jn),tr=String.fromCharCode(32),nr={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},rr=!1;function or(e,t){switch(e){case"keyup":return-1!==Xn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function ir(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var ar=!1;var sr={eventTypes:nr,extractEvents:function(e,t,n,r){var o;if(Gn)e:{switch(e){case"compositionstart":var i=nr.compositionStart;break e;case"compositionend":i=nr.compositionEnd;break e;case"compositionupdate":i=nr.compositionUpdate;break e}i=void 0}else ar?or(e,n)&&(i=nr.compositionEnd):"keydown"===e&&229===n.keyCode&&(i=nr.compositionStart);return i?(er&&"ko"!==n.locale&&(ar||i!==nr.compositionStart?i===nr.compositionEnd&&ar&&(o=zn()):(jn="value"in(Bn=r)?Bn.value:Bn.textContent,ar=!0)),i=Qn.getPooled(i,t,n,r),o?i.data=o:null!==(o=ir(n))&&(i.data=o),Dn(i),o=i):o=null,(e=Zn?function(e,t){switch(e){case"compositionend":return ir(t);case"keypress":return 32!==t.which?null:(rr=!0,tr);case"textInput":return(e=t.data)===tr&&rr?null:e;default:return null}}(e,n):function(e,t){if(ar)return"compositionend"===e||!Gn&&or(e,t)?(e=zn(),Un=jn=Bn=null,ar=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=document.documentMode,zr={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},Vr=null,Hr=null,$r=null,qr=!1;function Wr(e,t){var n=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;return qr||null==Vr||Vr!==cn(n)?null:("selectionStart"in(n=Vr)&&hn(n)?n={start:n.selectionStart,end:n.selectionEnd}:n={anchorNode:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset},$r&&jr($r,n)?null:($r=n,(e=$n.getPooled(zr.select,Hr,e,t)).type="select",e.target=Vr,Dn(e),e))}var Yr={eventTypes:zr,extractEvents:function(e,t,n,r,o,i){if(!(i=!(o=i||(r.window===r?r.document:9===r.nodeType?r:r.ownerDocument)))){e:{o=Je(o),i=S.onSelect;for(var a=0;aso||(e.current=ao[so],ao[so]=null,so--)}function lo(e,t){so++,ao[so]=e.current,e.current=t}var co={},fo={current:co},po={current:!1},ho=co;function mo(e,t){var n=e.type.contextTypes;if(!n)return co;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,i={};for(o in n)i[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function yo(e){return null!==(e=e.childContextTypes)&&void 0!==e}function go(){uo(po),uo(fo)}function vo(e,t,n){if(fo.current!==co)throw Error(a(168));lo(fo,t),lo(po,n)}function bo(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!==typeof r.getChildContext)return n;for(var i in r=r.getChildContext())if(!(i in e))throw Error(a(108,ye(t)||"Unknown",i));return o({},n,{},r)}function wo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||co,ho=fo.current,lo(fo,e),lo(po,po.current),!0}function xo(e,t,n){var r=e.stateNode;if(!r)throw Error(a(169));n?(e=bo(e,t,ho),r.__reactInternalMemoizedMergedChildContext=e,uo(po),uo(fo),lo(fo,e)):uo(po),lo(po,n)}var ko=i.unstable_runWithPriority,Co=i.unstable_scheduleCallback,Eo=i.unstable_cancelCallback,So=i.unstable_requestPaint,To=i.unstable_now,Oo=i.unstable_getCurrentPriorityLevel,_o=i.unstable_ImmediatePriority,Po=i.unstable_UserBlockingPriority,Ao=i.unstable_NormalPriority,Ro=i.unstable_LowPriority,Mo=i.unstable_IdlePriority,No={},Fo=i.unstable_shouldYield,Io=void 0!==So?So:function(){},Lo=null,Do=null,Bo=!1,jo=To(),Uo=1e4>jo?To:function(){return To()-jo};function zo(){switch(Oo()){case _o:return 99;case Po:return 98;case Ao:return 97;case Ro:return 96;case Mo:return 95;default:throw Error(a(332))}}function Vo(e){switch(e){case 99:return _o;case 98:return Po;case 97:return Ao;case 96:return Ro;case 95:return Mo;default:throw Error(a(332))}}function Ho(e,t){return e=Vo(e),ko(e,t)}function $o(e,t,n){return e=Vo(e),Co(e,t,n)}function qo(e){return null===Lo?(Lo=[e],Do=Co(_o,Yo)):Lo.push(e),No}function Wo(){if(null!==Do){var e=Do;Do=null,Eo(e)}Yo()}function Yo(){if(!Bo&&null!==Lo){Bo=!0;var e=0;try{var t=Lo;Ho(99,(function(){for(;e=t&&(Aa=!0),e.firstContext=null)}function oi(e,t){if(Zo!==e&&!1!==t&&0!==t)if("number"===typeof t&&1073741823!==t||(Zo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Jo){if(null===Go)throw Error(a(308));Jo=t,Go.dependencies={expirationTime:0,firstContext:t,responders:null}}else Jo=Jo.next=t;return e._currentValue}var ii=!1;function ai(e){e.updateQueue={baseState:e.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}function si(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,baseQueue:e.baseQueue,shared:e.shared,effects:e.effects})}function ui(e,t){return(e={expirationTime:e,suspenseConfig:t,tag:0,payload:null,callback:null,next:null}).next=e}function li(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function ci(e,t){var n=e.alternate;null!==n&&si(n,e),null===(n=(e=e.updateQueue).baseQueue)?(e.baseQueue=t.next=t,t.next=t):(t.next=n.next,n.next=t)}function fi(e,t,n,r){var i=e.updateQueue;ii=!1;var a=i.baseQueue,s=i.shared.pending;if(null!==s){if(null!==a){var u=a.next;a.next=s.next,s.next=u}a=s,i.shared.pending=null,null!==(u=e.alternate)&&(null!==(u=u.updateQueue)&&(u.baseQueue=s))}if(null!==a){u=a.next;var l=i.baseState,c=0,f=null,p=null,d=null;if(null!==u)for(var h=u;;){if((s=h.expirationTime)c&&(c=s)}else{null!==d&&(d=d.next={expirationTime:1073741823,suspenseConfig:h.suspenseConfig,tag:h.tag,payload:h.payload,callback:h.callback,next:null}),iu(s,h.suspenseConfig);e:{var y=e,g=h;switch(s=t,m=n,g.tag){case 1:if("function"===typeof(y=g.payload)){l=y.call(m,l,s);break e}l=y;break e;case 3:y.effectTag=-4097&y.effectTag|64;case 0:if(null===(s="function"===typeof(y=g.payload)?y.call(m,l,s):y)||void 0===s)break e;l=o({},l,s);break e;case 2:ii=!0}}null!==h.callback&&(e.effectTag|=32,null===(s=i.effects)?i.effects=[h]:s.push(h))}if(null===(h=h.next)||h===u){if(null===(s=i.shared.pending))break;h=a.next=s.next,s.next=u,i.baseQueue=a=s,i.shared.pending=null}}null===d?f=l:d.next=p,i.baseState=f,i.baseQueue=d,au(c),e.expirationTime=c,e.memoizedState=l}}function pi(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;tm?(y=f,f=null):y=f.sibling;var g=d(o,f,s[m],u);if(null===g){null===f&&(f=y);break}e&&f&&null===g.alternate&&t(o,f),a=i(g,a,m),null===c?l=g:c.sibling=g,c=g,f=y}if(m===s.length)return n(o,f),l;if(null===f){for(;my?(g=m,m=null):g=m.sibling;var b=d(o,m,v.value,l);if(null===b){null===m&&(m=g);break}e&&m&&null===b.alternate&&t(o,m),s=i(b,s,y),null===f?c=b:f.sibling=b,f=b,m=g}if(v.done)return n(o,m),c;if(null===m){for(;!v.done;y++,v=u.next())null!==(v=p(o,v.value,l))&&(s=i(v,s,y),null===f?c=v:f.sibling=v,f=v);return c}for(m=r(o,m);!v.done;y++,v=u.next())null!==(v=h(m,o,y,v.value,l))&&(e&&null!==v.alternate&&m.delete(null===v.key?y:v.key),s=i(v,s,y),null===f?c=v:f.sibling=v,f=v);return e&&m.forEach((function(e){return t(o,e)})),c}return function(e,r,i,u){var l="object"===typeof i&&null!==i&&i.type===ne&&null===i.key;l&&(i=i.props.children);var c="object"===typeof i&&null!==i;if(c)switch(i.$$typeof){case ee:e:{for(c=i.key,l=r;null!==l;){if(l.key===c){switch(l.tag){case 7:if(i.type===ne){n(e,l.sibling),(r=o(l,i.props.children)).return=e,e=r;break e}break;default:if(l.elementType===i.type){n(e,l.sibling),(r=o(l,i.props)).ref=ki(e,l,i),r.return=e,e=r;break e}}n(e,l);break}t(e,l),l=l.sibling}i.type===ne?((r=_u(i.props.children,e.mode,u,i.key)).return=e,e=r):((u=Ou(i.type,i.key,i.props,null,e.mode,u)).ref=ki(e,r,i),u.return=e,e=u)}return s(e);case te:e:{for(l=i.key;null!==r;){if(r.key===l){if(4===r.tag&&r.stateNode.containerInfo===i.containerInfo&&r.stateNode.implementation===i.implementation){n(e,r.sibling),(r=o(r,i.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Au(i,e.mode,u)).return=e,e=r}return s(e)}if("string"===typeof i||"number"===typeof i)return i=""+i,null!==r&&6===r.tag?(n(e,r.sibling),(r=o(r,i)).return=e,e=r):(n(e,r),(r=Pu(i,e.mode,u)).return=e,e=r),s(e);if(xi(i))return m(e,r,i,u);if(me(i))return y(e,r,i,u);if(c&&Ci(e,i),"undefined"===typeof i&&!l)switch(e.tag){case 1:case 0:throw e=e.type,Error(a(152,e.displayName||e.name||"Component"))}return n(e,r)}}var Si=Ei(!0),Ti=Ei(!1),Oi={},_i={current:Oi},Pi={current:Oi},Ai={current:Oi};function Ri(e){if(e===Oi)throw Error(a(174));return e}function Mi(e,t){switch(lo(Ai,t),lo(Pi,e),lo(_i,Oi),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:De(null,"");break;default:t=De(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}uo(_i),lo(_i,t)}function Ni(){uo(_i),uo(Pi),uo(Ai)}function Fi(e){Ri(Ai.current);var t=Ri(_i.current),n=De(t,e.type);t!==n&&(lo(Pi,e),lo(_i,n))}function Ii(e){Pi.current===e&&(uo(_i),uo(Pi))}var Li={current:0};function Di(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!==(64&t.effectTag))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function Bi(e,t){return{responder:e,props:t}}var ji=X.ReactCurrentDispatcher,Ui=X.ReactCurrentBatchConfig,zi=0,Vi=null,Hi=null,$i=null,qi=!1;function Wi(){throw Error(a(321))}function Yi(e,t){if(null===t)return!1;for(var n=0;ni))throw Error(a(301));i+=1,$i=Hi=null,t.updateQueue=null,ji.current=ba,e=n(r,o)}while(t.expirationTime===zi)}if(ji.current=ya,t=null!==Hi&&null!==Hi.next,zi=0,$i=Hi=Vi=null,qi=!1,t)throw Error(a(300));return e}function Ki(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===$i?Vi.memoizedState=$i=e:$i=$i.next=e,$i}function Xi(){if(null===Hi){var e=Vi.alternate;e=null!==e?e.memoizedState:null}else e=Hi.next;var t=null===$i?Vi.memoizedState:$i.next;if(null!==t)$i=t,Hi=e;else{if(null===e)throw Error(a(310));e={memoizedState:(Hi=e).memoizedState,baseState:Hi.baseState,baseQueue:Hi.baseQueue,queue:Hi.queue,next:null},null===$i?Vi.memoizedState=$i=e:$i=$i.next=e}return $i}function Gi(e,t){return"function"===typeof t?t(e):t}function Ji(e){var t=Xi(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=Hi,o=r.baseQueue,i=n.pending;if(null!==i){if(null!==o){var s=o.next;o.next=i.next,i.next=s}r.baseQueue=o=i,n.pending=null}if(null!==o){o=o.next,r=r.baseState;var u=s=i=null,l=o;do{var c=l.expirationTime;if(cVi.expirationTime&&(Vi.expirationTime=c,au(c))}else null!==u&&(u=u.next={expirationTime:1073741823,suspenseConfig:l.suspenseConfig,action:l.action,eagerReducer:l.eagerReducer,eagerState:l.eagerState,next:null}),iu(c,l.suspenseConfig),r=l.eagerReducer===e?l.eagerState:e(r,l.action);l=l.next}while(null!==l&&l!==o);null===u?i=r:u.next=s,Dr(r,t.memoizedState)||(Aa=!0),t.memoizedState=r,t.baseState=i,t.baseQueue=u,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function Zi(e){var t=Xi(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,i=t.memoizedState;if(null!==o){n.pending=null;var s=o=o.next;do{i=e(i,s.action),s=s.next}while(s!==o);Dr(i,t.memoizedState)||(Aa=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function ea(e){var t=Ki();return"function"===typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:Gi,lastRenderedState:e}).dispatch=ma.bind(null,Vi,e),[t.memoizedState,e]}function ta(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Vi.updateQueue)?(t={lastEffect:null},Vi.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function na(){return Xi().memoizedState}function ra(e,t,n,r){var o=Ki();Vi.effectTag|=e,o.memoizedState=ta(1|t,n,void 0,void 0===r?null:r)}function oa(e,t,n,r){var o=Xi();r=void 0===r?null:r;var i=void 0;if(null!==Hi){var a=Hi.memoizedState;if(i=a.destroy,null!==r&&Yi(r,a.deps))return void ta(t,n,i,r)}Vi.effectTag|=e,o.memoizedState=ta(1|t,n,i,r)}function ia(e,t){return ra(516,4,e,t)}function aa(e,t){return oa(516,4,e,t)}function sa(e,t){return oa(4,2,e,t)}function ua(e,t){return"function"===typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function la(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,oa(4,2,ua.bind(null,t,e),n)}function ca(){}function fa(e,t){return Ki().memoizedState=[e,void 0===t?null:t],e}function pa(e,t){var n=Xi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Yi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function da(e,t){var n=Xi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Yi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function ha(e,t,n){var r=zo();Ho(98>r?98:r,(function(){e(!0)})),Ho(97<\/script>",e=e.removeChild(e.firstChild)):"string"===typeof r.is?e=u.createElement(i,{is:r.is}):(e=u.createElement(i),"select"===i&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,i),e[En]=t,e[Sn]=r,Ua(e,t),t.stateNode=e,u=an(i,r),i){case"iframe":case"object":case"embed":Yt("load",e),l=r;break;case"video":case"audio":for(l=0;lr.tailExpiration&&1t)&&Vs.set(e,t))}}function Ks(e,t){e.expirationTime=(e=n>(e=e.nextKnownPendingLevel)?n:e)&&t!==e?0:e}function Gs(e){if(0!==e.lastExpiredTime)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=qo(Zs.bind(null,e));else{var t=Xs(e),n=e.callbackNode;if(0===t)null!==n&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var r=Ws();if(1073741823===t?r=99:1===t||2===t?r=95:r=0>=(r=10*(1073741821-t)-10*(1073741821-r))?99:250>=r?98:5250>=r?97:95,null!==n){var o=e.callbackPriority;if(e.callbackExpirationTime===t&&o>=r)return;n!==No&&Eo(n)}e.callbackExpirationTime=t,e.callbackPriority=r,t=1073741823===t?qo(Zs.bind(null,e)):$o(r,Js.bind(null,e),{timeout:10*(1073741821-t)-Uo()}),e.callbackNode=t}}}function Js(e,t){if(qs=0,t)return Iu(e,t=Ws()),Gs(e),null;var n=Xs(e);if(0!==n){if(t=e.callbackNode,0!==(48&Cs))throw Error(a(327));if(mu(),e===Es&&n===Ts||nu(e,n),null!==Ss){var r=Cs;Cs|=16;for(var o=ou();;)try{uu();break}catch(u){ru(e,u)}if(ei(),Cs=r,vs.current=o,1===Os)throw t=_s,nu(e,n),Nu(e,n),Gs(e),t;if(null===Ss)switch(o=e.finishedWork=e.current.alternate,e.finishedExpirationTime=n,r=Os,Es=null,r){case ws:case 1:throw Error(a(345));case 2:Iu(e,2=n){e.lastPingedTime=n,nu(e,n);break}}if(0!==(i=Xs(e))&&i!==n)break;if(0!==r&&r!==n){e.lastPingedTime=r;break}e.timeoutHandle=bn(pu.bind(null,e),o);break}pu(e);break;case ks:if(Nu(e,n),n===(r=e.lastSuspendedTime)&&(e.nextKnownPendingLevel=fu(o)),Ns&&(0===(o=e.lastPingedTime)||o>=n)){e.lastPingedTime=n,nu(e,n);break}if(0!==(o=Xs(e))&&o!==n)break;if(0!==r&&r!==n){e.lastPingedTime=r;break}if(1073741823!==As?r=10*(1073741821-As)-Uo():1073741823===Ps?r=0:(r=10*(1073741821-Ps)-5e3,0>(r=(o=Uo())-r)&&(r=0),(n=10*(1073741821-n)-o)<(r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*gs(r/1960))-r)&&(r=n)),10=(r=0|s.busyMinDurationMs)?r=0:(o=0|s.busyDelayMs,r=(i=Uo()-(10*(1073741821-i)-(0|s.timeoutMs||5e3)))<=o?0:o+r-i),10 component higher in the tree to provide a loading indicator or placeholder to display."+ge(a))}5!==Os&&(Os=2),s=Ja(s,a),f=i;do{switch(f.tag){case 3:u=s,f.effectTag|=4096,f.expirationTime=t,ci(f,hs(f,u,t));break e;case 1:u=s;var w=f.type,x=f.stateNode;if(0===(64&f.effectTag)&&("function"===typeof w.getDerivedStateFromError||null!==x&&"function"===typeof x.componentDidCatch&&(null===Bs||!Bs.has(x)))){f.effectTag|=4096,f.expirationTime=t,ci(f,ms(f,u,t));break e}}f=f.return}while(null!==f)}Ss=cu(Ss)}catch(k){t=k;continue}break}}function ou(){var e=vs.current;return vs.current=ya,null===e?ya:e}function iu(e,t){eMs&&(Ms=e)}function su(){for(;null!==Ss;)Ss=lu(Ss)}function uu(){for(;null!==Ss&&!Fo();)Ss=lu(Ss)}function lu(e){var t=ys(e.alternate,e,Ts);return e.memoizedProps=e.pendingProps,null===t&&(t=cu(e)),bs.current=null,t}function cu(e){Ss=e;do{var t=Ss.alternate;if(e=Ss.return,0===(2048&Ss.effectTag)){if(t=Xa(t,Ss,Ts),1===Ts||1!==Ss.childExpirationTime){for(var n=0,r=Ss.child;null!==r;){var o=r.expirationTime,i=r.childExpirationTime;o>n&&(n=o),i>n&&(n=i),r=r.sibling}Ss.childExpirationTime=n}if(null!==t)return t;null!==e&&0===(2048&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=Ss.firstEffect),null!==Ss.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=Ss.firstEffect),e.lastEffect=Ss.lastEffect),1(e=e.childExpirationTime)?t:e}function pu(e){var t=zo();return Ho(99,du.bind(null,e,t)),null}function du(e,t){do{mu()}while(null!==Us);if(0!==(48&Cs))throw Error(a(327));var n=e.finishedWork,r=e.finishedExpirationTime;if(null===n)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,n===e.current)throw Error(a(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var o=fu(n);if(e.firstPendingTime=o,r<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:r<=e.firstSuspendedTime&&(e.firstSuspendedTime=r-1),r<=e.lastPingedTime&&(e.lastPingedTime=0),r<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===Es&&(Ss=Es=null,Ts=0),1u&&(c=u,u=s,s=c),c=pn(w,s),f=pn(w,u),c&&f&&(1!==k.rangeCount||k.anchorNode!==c.node||k.anchorOffset!==c.offset||k.focusNode!==f.node||k.focusOffset!==f.offset)&&((x=x.createRange()).setStart(c.node,c.offset),k.removeAllRanges(),s>u?(k.addRange(x),k.extend(f.node,f.offset)):(x.setEnd(f.node,f.offset),k.addRange(x))))),x=[];for(k=w;k=k.parentNode;)1===k.nodeType&&x.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"===typeof w.focus&&w.focus(),w=0;w=n?$a(e,t,n):(lo(Li,1&Li.current),null!==(t=Qa(e,t,n))?t.sibling:null);lo(Li,1&Li.current);break;case 19:if(r=t.childExpirationTime>=n,0!==(64&e.effectTag)){if(r)return Ya(e,t,n);t.effectTag|=64}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null),lo(Li,Li.current),!r)return null}return Qa(e,t,n)}Aa=!1}}else Aa=!1;switch(t.expirationTime=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,o=mo(t,fo.current),ri(t,n),o=Qi(null,t,r,e,o,n),t.effectTag|=1,"object"===typeof o&&null!==o&&"function"===typeof o.render&&void 0===o.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,yo(r)){var i=!0;wo(t)}else i=!1;t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,ai(t);var s=r.getDerivedStateFromProps;"function"===typeof s&&mi(t,r,s,e),o.updater=yi,t.stateNode=o,o._reactInternalFiber=t,wi(t,r,e,n),t=Ba(null,t,r,!0,i,n)}else t.tag=0,Ra(null,t,o,n),t=t.child;return t;case 16:e:{if(o=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,function(e){if(-1===e._status){e._status=0;var t=e._ctor;t=t(),e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}}(o),1!==o._status)throw o._result;switch(o=o._result,t.type=o,i=t.tag=function(e){if("function"===typeof e)return Su(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===ue)return 11;if(e===fe)return 14}return 2}(o),e=Ko(o,e),i){case 0:t=La(null,t,o,e,n);break e;case 1:t=Da(null,t,o,e,n);break e;case 11:t=Ma(null,t,o,e,n);break e;case 14:t=Na(null,t,o,Ko(o.type,e),r,n);break e}throw Error(a(306,o,""))}return t;case 0:return r=t.type,o=t.pendingProps,La(e,t,r,o=t.elementType===r?o:Ko(r,o),n);case 1:return r=t.type,o=t.pendingProps,Da(e,t,r,o=t.elementType===r?o:Ko(r,o),n);case 3:if(ja(t),r=t.updateQueue,null===e||null===r)throw Error(a(282));if(r=t.pendingProps,o=null!==(o=t.memoizedState)?o.element:null,si(e,t),fi(t,r,null,n),(r=t.memoizedState.element)===o)_a(),t=Qa(e,t,n);else{if((o=t.stateNode.hydrate)&&(xa=xn(t.stateNode.containerInfo.firstChild),wa=t,o=ka=!0),o)for(n=Ti(t,null,r,n),t.child=n;n;)n.effectTag=-3&n.effectTag|1024,n=n.sibling;else Ra(e,t,r,n),_a();t=t.child}return t;case 5:return Fi(t),null===e&&Sa(t),r=t.type,o=t.pendingProps,i=null!==e?e.memoizedProps:null,s=o.children,vn(r,o)?s=null:null!==i&&vn(r,i)&&(t.effectTag|=16),Ia(e,t),4&t.mode&&1!==n&&o.hidden?(t.expirationTime=t.childExpirationTime=1,t=null):(Ra(e,t,s,n),t=t.child),t;case 6:return null===e&&Sa(t),null;case 13:return $a(e,t,n);case 4:return Mi(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Si(t,null,r,n):Ra(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,Ma(e,t,r,o=t.elementType===r?o:Ko(r,o),n);case 7:return Ra(e,t,t.pendingProps,n),t.child;case 8:case 12:return Ra(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,o=t.pendingProps,s=t.memoizedProps,i=o.value;var u=t.type._context;if(lo(Xo,u._currentValue),u._currentValue=i,null!==s)if(u=s.value,0===(i=Dr(u,i)?0:0|("function"===typeof r._calculateChangedBits?r._calculateChangedBits(u,i):1073741823))){if(s.children===o.children&&!po.current){t=Qa(e,t,n);break e}}else for(null!==(u=t.child)&&(u.return=t);null!==u;){var l=u.dependencies;if(null!==l){s=u.child;for(var c=l.firstContext;null!==c;){if(c.context===r&&0!==(c.observedBits&i)){1===u.tag&&((c=ui(n,null)).tag=2,li(u,c)),u.expirationTime=t&&e<=t}function Nu(e,t){var n=e.firstSuspendedTime,r=e.lastSuspendedTime;nt||0===n)&&(e.lastSuspendedTime=t),t<=e.lastPingedTime&&(e.lastPingedTime=0),t<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function Fu(e,t){t>e.firstPendingTime&&(e.firstPendingTime=t);var n=e.firstSuspendedTime;0!==n&&(t>=n?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:t>=e.lastSuspendedTime&&(e.lastSuspendedTime=t+1),t>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=t))}function Iu(e,t){var n=e.lastExpiredTime;(0===n||n>t)&&(e.lastExpiredTime=t)}function Lu(e,t,n,r){var o=t.current,i=Ws(),s=di.suspense;i=Ys(i,o,s);e:if(n){t:{if(Ze(n=n._reactInternalFiber)!==n||1!==n.tag)throw Error(a(170));var u=n;do{switch(u.tag){case 3:u=u.stateNode.context;break t;case 1:if(yo(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break t}}u=u.return}while(null!==u);throw Error(a(171))}if(1===n.tag){var l=n.type;if(yo(l)){n=bo(n,l,u);break e}}n=u}else n=co;return null===t.context?t.context=n:t.pendingContext=n,(t=ui(i,s)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),li(o,t),Qs(o,i),i}function Du(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 5:default:return e.child.stateNode}}function Bu(e,t){null!==(e=e.memoizedState)&&null!==e.dehydrated&&e.retryTime=k},s=function(){},t.unstable_forceFrameRate=function(e){0>e||125>>1,o=e[r];if(!(void 0!==o&&0<_(o,t)))break e;e[r]=t,e[n]=o,n=r}}function T(e){return void 0===(e=e[0])?null:e}function O(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length;r_(a,n))void 0!==u&&0>_(u,a)?(e[r]=u,e[s]=n,r=s):(e[r]=a,e[i]=n,r=i);else{if(!(void 0!==u&&0>_(u,n)))break e;e[r]=u,e[s]=n,r=s}}}return t}return null}function _(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var P=[],A=[],R=1,M=null,N=3,F=!1,I=!1,L=!1;function D(e){for(var t=T(A);null!==t;){if(null===t.callback)O(A);else{if(!(t.startTime<=e))break;O(A),t.sortIndex=t.expirationTime,S(P,t)}t=T(A)}}function B(e){if(L=!1,D(e),!I)if(null!==T(P))I=!0,r(j);else{var t=T(A);null!==t&&o(B,t.startTime-e)}}function j(e,n){I=!1,L&&(L=!1,i()),F=!0;var r=N;try{for(D(n),M=T(P);null!==M&&(!(M.expirationTime>n)||e&&!a());){var s=M.callback;if(null!==s){M.callback=null,N=M.priorityLevel;var u=s(M.expirationTime<=n);n=t.unstable_now(),"function"===typeof u?M.callback=u:M===T(P)&&O(P),D(n)}else O(P);M=T(P)}if(null!==M)var l=!0;else{var c=T(A);null!==c&&o(B,c.startTime-n),l=!1}return l}finally{M=null,N=r,F=!1}}function U(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var z=s;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){I||F||(I=!0,r(j))},t.unstable_getCurrentPriorityLevel=function(){return N},t.unstable_getFirstCallbackNode=function(){return T(P)},t.unstable_next=function(e){switch(N){case 1:case 2:case 3:var t=3;break;default:t=N}var n=N;N=t;try{return e()}finally{N=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=z,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=N;N=e;try{return t()}finally{N=n}},t.unstable_scheduleCallback=function(e,n,a){var s=t.unstable_now();if("object"===typeof a&&null!==a){var u=a.delay;u="number"===typeof u&&0s?(e.sortIndex=u,S(A,e),null===T(P)&&e===T(A)&&(L?i():L=!0,o(B,u-s))):(e.sortIndex=a,S(P,e),I||F||(I=!0,r(j))),e},t.unstable_shouldYield=function(){var e=t.unstable_now();D(e);var n=T(P);return n!==M&&null!==M&&null!==n&&null!==n.callback&&n.startTime<=e&&n.expirationTime=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(62),o=n(63),i=n(23),a=n(64);e.exports=function(e,t){return r(e)||o(e,t)||i(e,t)||a()},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e){if(Array.isArray(e))return e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(u){s=!0,o=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function n(t){return"function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?(e.exports=n=function(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=n=function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),n(t)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function n(){return e.exports=n=Object.assign||function(e){for(var t=1;t1&&"="===e.charAt(t);)++n;return Math.ceil(3*e.length)/4-n};for(var o=new Array(64),i=new Array(123),a=0;a<64;)i[o[a]=a<26?a+65:a<52?a+71:a<62?a-4:a-59|43]=a++;r.encode=function(e,t,n){for(var r,i=null,a=[],s=0,u=0;t>2],r=(3&l)<<4,u=1;break;case 1:a[s++]=o[r|l>>4],r=(15&l)<<2,u=2;break;case 2:a[s++]=o[r|l>>6],a[s++]=o[63&l],u=0}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,a)),s=0)}return u&&(a[s++]=o[r],a[s++]=61,1===u&&(a[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,a.slice(0,s))),i.join("")):String.fromCharCode.apply(String,a.slice(0,s))};r.decode=function(e,t,n){for(var r,o=n,a=0,s=0;s1)break;if(void 0===(u=i[u]))throw Error("invalid encoding");switch(a){case 0:r=u,a=1;break;case 1:t[n++]=r<<2|(48&u)>>4,r=u,a=2;break;case 2:t[n++]=(15&r)<<4|(60&u)>>2,r=u,a=3;break;case 3:t[n++]=(3&r)<<6|u,a=0}}if(1===a)throw Error("invalid encoding");return n-o},r.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}},function(e,t,n){"use strict";function r(){this._listeners={}}e.exports=r,r.prototype.on=function(e,t,n){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:n||this}),this},r.prototype.off=function(e,t){if(void 0===e)this._listeners={};else if(void 0===t)this._listeners[e]=[];else for(var n=this._listeners[e],r=0;r0?0:2147483648,n,r);else if(isNaN(t))e(2143289344,n,r);else if(t>34028234663852886e22)e((o<<31|2139095040)>>>0,n,r);else if(t<11754943508222875e-54)e((o<<31|Math.round(t/1401298464324817e-60))>>>0,n,r);else{var i=Math.floor(Math.log(t)/Math.LN2);e((o<<31|i+127<<23|8388607&Math.round(t*Math.pow(2,-i)*8388608))>>>0,n,r)}}function n(e,t,n){var r=e(t,n),o=2*(r>>31)+1,i=r>>>23&255,a=8388607&r;return 255===i?a?NaN:o*(1/0):0===i?1401298464324817e-60*o*a:o*Math.pow(2,i-150)*(a+8388608)}e.writeFloatLE=t.bind(null,o),e.writeFloatBE=t.bind(null,i),e.readFloatLE=n.bind(null,a),e.readFloatBE=n.bind(null,s)}(),"undefined"!==typeof Float64Array?function(){var t=new Float64Array([-0]),n=new Uint8Array(t.buffer),r=128===n[7];function o(e,r,o){t[0]=e,r[o]=n[0],r[o+1]=n[1],r[o+2]=n[2],r[o+3]=n[3],r[o+4]=n[4],r[o+5]=n[5],r[o+6]=n[6],r[o+7]=n[7]}function i(e,r,o){t[0]=e,r[o]=n[7],r[o+1]=n[6],r[o+2]=n[5],r[o+3]=n[4],r[o+4]=n[3],r[o+5]=n[2],r[o+6]=n[1],r[o+7]=n[0]}function a(e,r){return n[0]=e[r],n[1]=e[r+1],n[2]=e[r+2],n[3]=e[r+3],n[4]=e[r+4],n[5]=e[r+5],n[6]=e[r+6],n[7]=e[r+7],t[0]}function s(e,r){return n[7]=e[r],n[6]=e[r+1],n[5]=e[r+2],n[4]=e[r+3],n[3]=e[r+4],n[2]=e[r+5],n[1]=e[r+6],n[0]=e[r+7],t[0]}e.writeDoubleLE=r?o:i,e.writeDoubleBE=r?i:o,e.readDoubleLE=r?a:s,e.readDoubleBE=r?s:a}():function(){function t(e,t,n,r,o,i){var a=r<0?1:0;if(a&&(r=-r),0===r)e(0,o,i+t),e(1/r>0?0:2147483648,o,i+n);else if(isNaN(r))e(0,o,i+t),e(2146959360,o,i+n);else if(r>17976931348623157e292)e(0,o,i+t),e((a<<31|2146435072)>>>0,o,i+n);else{var s;if(r<22250738585072014e-324)e((s=r/5e-324)>>>0,o,i+t),e((a<<31|s/4294967296)>>>0,o,i+n);else{var u=Math.floor(Math.log(r)/Math.LN2);1024===u&&(u=1023),e(4503599627370496*(s=r*Math.pow(2,-u))>>>0,o,i+t),e((a<<31|u+1023<<20|1048576*s&1048575)>>>0,o,i+n)}}}function n(e,t,n,r,o){var i=e(r,o+t),a=e(r,o+n),s=2*(a>>31)+1,u=a>>>20&2047,l=4294967296*(1048575&a)+i;return 2047===u?l?NaN:s*(1/0):0===u?5e-324*s*l:s*Math.pow(2,u-1075)*(l+4503599627370496)}e.writeDoubleLE=t.bind(null,o,0,4),e.writeDoubleBE=t.bind(null,i,4,0),e.readDoubleLE=n.bind(null,a,0,4),e.readDoubleBE=n.bind(null,s,4,0)}(),e}function o(e,t,n){t[n]=255&e,t[n+1]=e>>>8&255,t[n+2]=e>>>16&255,t[n+3]=e>>>24}function i(e,t,n){t[n]=e>>>24,t[n+1]=e>>>16&255,t[n+2]=e>>>8&255,t[n+3]=255&e}function a(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function s(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}e.exports=r(r)},function(module,exports,__webpack_require__){"use strict";function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}module.exports=inquire},function(e,t,n){"use strict";var r=t;r.length=function(e){for(var t=0,n=0,r=0;r191&&r<224?i[a++]=(31&r)<<6|63&e[t++]:r>239&&r<365?(r=((7&r)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,i[a++]=55296+(r>>10),i[a++]=56320+(1023&r)):i[a++]=(15&r)<<12|(63&e[t++])<<6|63&e[t++],a>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,i)),a=0);return o?(a&&o.push(String.fromCharCode.apply(String,i.slice(0,a))),o.join("")):String.fromCharCode.apply(String,i.slice(0,a))},r.write=function(e,t,n){for(var r,o,i=n,a=0;a>6|192,t[n++]=63&r|128):55296===(64512&r)&&56320===(64512&(o=e.charCodeAt(a+1)))?(r=65536+((1023&r)<<10)+(1023&o),++a,t[n++]=r>>18|240,t[n++]=r>>12&63|128,t[n++]=r>>6&63|128,t[n++]=63&r|128):(t[n++]=r>>12|224,t[n++]=r>>6&63|128,t[n++]=63&r|128);return n-i}},function(e,t,n){"use strict";e.exports=function(e,t,n){var r=n||8192,o=r>>>1,i=null,a=r;return function(n){if(n<1||n>o)return e(n);a+n>r&&(i=e(r),a=0);var s=t.call(i,a,a+=n);return 7&a&&(a=1+(7|a)),s}}},function(e,t,n){"use strict";e.exports=o;var r=n(8);function o(e,t){this.lo=e>>>0,this.hi=t>>>0}var i=o.zero=new o(0,0);i.toNumber=function(){return 0},i.zzEncode=i.zzDecode=function(){return this},i.length=function(){return 1};var a=o.zeroHash="\0\0\0\0\0\0\0\0";o.fromNumber=function(e){if(0===e)return i;var t=e<0;t&&(e=-e);var n=e>>>0,r=(e-n)/4294967296>>>0;return t&&(r=~r>>>0,n=~n>>>0,++n>4294967295&&(n=0,++r>4294967295&&(r=0))),new o(n,r)},o.from=function(e){if("number"===typeof e)return o.fromNumber(e);if(r.isString(e)){if(!r.Long)return o.fromNumber(parseInt(e,10));e=r.Long.fromString(e)}return e.low||e.high?new o(e.low>>>0,e.high>>>0):i},o.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,n=~this.hi>>>0;return t||(n=n+1>>>0),-(t+4294967296*n)}return this.lo+4294967296*this.hi},o.prototype.toLong=function(e){return r.Long?new r.Long(0|this.lo,0|this.hi,Boolean(e)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(e)}};var s=String.prototype.charCodeAt;o.fromHash=function(e){return e===a?i:new o((s.call(e,0)|s.call(e,1)<<8|s.call(e,2)<<16|s.call(e,3)<<24)>>>0,(s.call(e,4)|s.call(e,5)<<8|s.call(e,6)<<16|s.call(e,7)<<24)>>>0)},o.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},o.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},o.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},o.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return 0===n?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:n<128?9:10}},function(e,t,n){"use strict";e.exports=i;var r=n(24);(i.prototype=Object.create(r.prototype)).constructor=i;var o=n(8);function i(){r.call(this)}function a(e,t,n){e.length<40?o.utf8.write(e,t,n):t.utf8Write?t.utf8Write(e,n):t.write(e,n)}i._configure=function(){i.alloc=o._Buffer_allocUnsafe,i.writeBytesBuffer=o.Buffer&&o.Buffer.prototype instanceof Uint8Array&&"set"===o.Buffer.prototype.set.name?function(e,t,n){t.set(e,n)}:function(e,t,n){if(e.copy)e.copy(t,n,0,e.length);else for(var r=0;r>>0;return this.uint32(t),t&&this._push(i.writeBytesBuffer,t,e),this},i.prototype.string=function(e){var t=o.Buffer.byteLength(e);return this.uint32(t),t&&this._push(a,t,e),this},i._configure()},function(e,t,n){"use strict";e.exports=i;var r=n(25);(i.prototype=Object.create(r.prototype)).constructor=i;var o=n(8);function i(e){r.call(this,e)}i._configure=function(){o.Buffer&&(i.prototype._slice=o.Buffer.prototype.slice)},i.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))},i._configure()},function(e,t,n){"use strict";t.Service=n(86)},function(e,t,n){"use strict";e.exports=o;var r=n(8);function o(e,t,n){if("function"!==typeof e)throw TypeError("rpcImpl must be a function");r.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(n)}(o.prototype=Object.create(r.EventEmitter.prototype)).constructor=o,o.prototype.rpcCall=function e(t,n,o,i,a){if(!i)throw TypeError("request must be specified");var s=this;if(!a)return r.asPromise(e,s,t,n,o,i);if(s.rpcImpl)try{return s.rpcImpl(t,n[s.requestDelimited?"encodeDelimited":"encode"](i).finish(),(function(e,n){if(e)return s.emit("error",e,t),a(e);if(null!==n){if(!(n instanceof o))try{n=o[s.responseDelimited?"decodeDelimited":"decode"](n)}catch(e){return s.emit("error",e,t),a(e)}return s.emit("data",n,t),a(null,n)}s.end(!0)}))}catch(u){return s.emit("error",u,t),void setTimeout((function(){a(u)}),0)}else setTimeout((function(){a(Error("already ended"))}),0)},o.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},function(e,t,n){"use strict";e.exports={}},,function(e,t,n){},function(e,t,n){var r=n(26),o=n(7)("socket.io-client:url");e.exports=function(e,t){var n=e;t=t||"undefined"!==typeof location&&location,null==e&&(e=t.protocol+"//"+t.host);"string"===typeof e&&("/"===e.charAt(0)&&(e="/"===e.charAt(1)?t.protocol+e:t.host+e),/^(https?|wss?):\/\//.test(e)||(o("protocol-less url %s",e),e="undefined"!==typeof t?t.protocol+"//"+e:"https://"+e),o("parse %s",e),n=r(e));n.port||(/^(http|ws)$/.test(n.protocol)?n.port="80":/^(http|ws)s$/.test(n.protocol)&&(n.port="443"));n.path=n.path||"/";var i=-1!==n.host.indexOf(":")?"["+n.host+"]":n.host;return n.id=n.protocol+"://"+i+":"+n.port,n.href=n.protocol+"://"+i+(t&&t.port===n.port?"":":"+n.port),n}},function(e,t,n){var r=n(92);e.exports=function(e){function t(e){for(var t=0,n=0;n=1.5*n;return Math.round(e/n)+" "+r+(o?"s":"")}e.exports=function(e,t){t=t||{};var s=typeof e;if("string"===s&&e.length>0)return function(e){if((e=String(e)).length>100)return;var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!t)return;var a=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*a;case"weeks":case"week":case"w":return 6048e5*a;case"days":case"day":case"d":return a*i;case"hours":case"hour":case"hrs":case"hr":case"h":return a*o;case"minutes":case"minute":case"mins":case"min":case"m":return a*r;case"seconds":case"second":case"secs":case"sec":case"s":return a*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}(e);if("number"===s&&isFinite(e))return t.long?function(e){var t=Math.abs(e);if(t>=i)return a(e,t,i,"day");if(t>=o)return a(e,t,o,"hour");if(t>=r)return a(e,t,r,"minute");if(t>=n)return a(e,t,n,"second");return e+" ms"}(e):function(e){var t=Math.abs(e);if(t>=i)return Math.round(e/i)+"d";if(t>=o)return Math.round(e/o)+"h";if(t>=r)return Math.round(e/r)+"m";if(t>=n)return Math.round(e/n)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t,n){(function(r){function o(){var e;try{e=t.storage.debug}catch(n){}return!e&&"undefined"!==typeof r&&"env"in r&&(e=Object({NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0}).DEBUG),e}(t=e.exports=n(99)).log=function(){return"object"===typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)},t.formatArgs=function(e){var n=this.useColors;if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),!n)return;var r="color: "+this.color;e.splice(1,0,r,"color: inherit");var o=0,i=0;e[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(o++,"%c"===e&&(i=o))})),e.splice(i,0,r)},t.save=function(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(n){}},t.load=o,t.useColors=function(){if("undefined"!==typeof window&&window.process&&"renderer"===window.process.type)return!0;if("undefined"!==typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;return"undefined"!==typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!==typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!==typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!==typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage="undefined"!=typeof chrome&&"undefined"!=typeof chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}},t.enable(o())}).call(this,n(27))},function(e,t,n){function r(e){var n;function r(){if(r.enabled){var e=r,o=+new Date,i=o-(n||o);e.diff=i,e.prev=n,e.curr=o,n=o;for(var a=new Array(arguments.length),s=0;s0)return function(e){if((e=String(e)).length>100)return;var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(!t)return;var a=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*a;case"days":case"day":case"d":return a*i;case"hours":case"hour":case"hrs":case"hr":case"h":return a*o;case"minutes":case"minute":case"mins":case"min":case"m":return a*r;case"seconds":case"second":case"secs":case"sec":case"s":return a*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}(e);if("number"===u&&!1===isNaN(e))return t.long?a(s=e,i,"day")||a(s,o,"hour")||a(s,r,"minute")||a(s,n,"second")||s+" ms":function(e){if(e>=i)return Math.round(e/i)+"d";if(e>=o)return Math.round(e/o)+"h";if(e>=r)return Math.round(e/r)+"m";if(e>=n)return Math.round(e/n)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t,n){function r(e){if(e)return function(e){for(var t in r.prototype)e[t]=r.prototype[t];return e}(e)}e.exports=r,r.prototype.on=r.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},r.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},r.prototype.off=r.prototype.removeListener=r.prototype.removeAllListeners=r.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n,r=this._callbacks["$"+e];if(!r)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var o=0;o0?a-4:a;for(n=0;n>16&255,u[c++]=t>>8&255,u[c++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,u[c++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,u[c++]=t>>8&255,u[c++]=255&t);return u},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!==typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,u=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function c(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,u=(1<>1,c=-7,f=n?o-1:0,p=n?-1:1,d=e[t+f];for(f+=p,i=d&(1<<-c)-1,d>>=-c,c+=s;c>0;i=256*i+e[t+f],f+=p,c-=8);for(a=i&(1<<-c)-1,i>>=-c,c+=r;c>0;a=256*a+e[t+f],f+=p,c-=8);if(0===i)i=1-l;else{if(i===u)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,r),i-=l}return(d?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,u,l=8*i-o-1,c=(1<>1,p=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:i-1,h=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),(t+=a+f>=1?p/u:p*Math.pow(2,1-f))*u>=2&&(a++,u/=2),a+f>=c?(s=0,a=c):a+f>=1?(s=(t*u-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+d]=255&s,d+=h,s/=256,o-=8);for(a=a<0;e[n+d]=255&a,d+=h,a/=256,l-=8);e[n+d-h]|=128*m}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){e.exports=n(107),e.exports.parser=n(9)},function(e,t,n){var r=n(32),o=n(19),i=n(7)("engine.io-client:socket"),a=n(36),s=n(9),u=n(26),l=n(12);function c(e,t){if(!(this instanceof c))return new c(e,t);t=t||{},e&&"object"===typeof e&&(t=e,e=null),e?(e=u(e),t.hostname=e.host,t.secure="https"===e.protocol||"wss"===e.protocol,t.port=e.port,e.query&&(t.query=e.query)):t.host&&(t.hostname=u(t.host).host),this.secure=null!=t.secure?t.secure:"undefined"!==typeof location&&"https:"===location.protocol,t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.agent=t.agent||!1,this.hostname=t.hostname||("undefined"!==typeof location?location.hostname:"localhost"),this.port=t.port||("undefined"!==typeof location&&location.port?location.port:this.secure?443:80),this.query=t.query||{},"string"===typeof this.query&&(this.query=l.decode(this.query)),this.upgrade=!1!==t.upgrade,this.path=(t.path||"/engine.io").replace(/\/$/,"")+"/",this.forceJSONP=!!t.forceJSONP,this.jsonp=!1!==t.jsonp,this.forceBase64=!!t.forceBase64,this.enablesXDR=!!t.enablesXDR,this.withCredentials=!1!==t.withCredentials,this.timestampParam=t.timestampParam||"t",this.timestampRequests=t.timestampRequests,this.transports=t.transports||["polling","websocket"],this.transportOptions=t.transportOptions||{},this.readyState="",this.writeBuffer=[],this.prevBufferLen=0,this.policyPort=t.policyPort||843,this.rememberUpgrade=t.rememberUpgrade||!1,this.binaryType=null,this.onlyBinaryUpgrades=t.onlyBinaryUpgrades,this.perMessageDeflate=!1!==t.perMessageDeflate&&(t.perMessageDeflate||{}),!0===this.perMessageDeflate&&(this.perMessageDeflate={}),this.perMessageDeflate&&null==this.perMessageDeflate.threshold&&(this.perMessageDeflate.threshold=1024),this.pfx=t.pfx||null,this.key=t.key||null,this.passphrase=t.passphrase||null,this.cert=t.cert||null,this.ca=t.ca||null,this.ciphers=t.ciphers||null,this.rejectUnauthorized=void 0===t.rejectUnauthorized||t.rejectUnauthorized,this.forceNode=!!t.forceNode,this.isReactNative="undefined"!==typeof navigator&&"string"===typeof navigator.product&&"reactnative"===navigator.product.toLowerCase(),("undefined"===typeof self||this.isReactNative)&&(t.extraHeaders&&Object.keys(t.extraHeaders).length>0&&(this.extraHeaders=t.extraHeaders),t.localAddress&&(this.localAddress=t.localAddress)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingIntervalTimer=null,this.pingTimeoutTimer=null,this.open()}e.exports=c,c.priorWebsocketSuccess=!1,o(c.prototype),c.protocol=s.protocol,c.Socket=c,c.Transport=n(18),c.transports=n(32),c.parser=n(9),c.prototype.createTransport=function(e){i('creating transport "%s"',e);var t=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}(this.query);t.EIO=s.protocol,t.transport=e;var n=this.transportOptions[e]||{};return this.id&&(t.sid=this.id),new r[e]({query:t,socket:this,agent:n.agent||this.agent,hostname:n.hostname||this.hostname,port:n.port||this.port,secure:n.secure||this.secure,path:n.path||this.path,forceJSONP:n.forceJSONP||this.forceJSONP,jsonp:n.jsonp||this.jsonp,forceBase64:n.forceBase64||this.forceBase64,enablesXDR:n.enablesXDR||this.enablesXDR,withCredentials:n.withCredentials||this.withCredentials,timestampRequests:n.timestampRequests||this.timestampRequests,timestampParam:n.timestampParam||this.timestampParam,policyPort:n.policyPort||this.policyPort,pfx:n.pfx||this.pfx,key:n.key||this.key,passphrase:n.passphrase||this.passphrase,cert:n.cert||this.cert,ca:n.ca||this.ca,ciphers:n.ciphers||this.ciphers,rejectUnauthorized:n.rejectUnauthorized||this.rejectUnauthorized,perMessageDeflate:n.perMessageDeflate||this.perMessageDeflate,extraHeaders:n.extraHeaders||this.extraHeaders,forceNode:n.forceNode||this.forceNode,localAddress:n.localAddress||this.localAddress,requestTimeout:n.requestTimeout||this.requestTimeout,protocols:n.protocols||void 0,isReactNative:this.isReactNative})},c.prototype.open=function(){var e;if(this.rememberUpgrade&&c.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))e="websocket";else{if(0===this.transports.length){var t=this;return void setTimeout((function(){t.emit("error","No transports available")}),0)}e=this.transports[0]}this.readyState="opening";try{e=this.createTransport(e)}catch(n){return this.transports.shift(),void this.open()}e.open(),this.setTransport(e)},c.prototype.setTransport=function(e){i("setting transport %s",e.name);var t=this;this.transport&&(i("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=e,e.on("drain",(function(){t.onDrain()})).on("packet",(function(e){t.onPacket(e)})).on("error",(function(e){t.onError(e)})).on("close",(function(){t.onClose("transport close")}))},c.prototype.probe=function(e){i('probing transport "%s"',e);var t=this.createTransport(e,{probe:1}),n=!1,r=this;function o(){if(r.onlyBinaryUpgrades){var o=!this.supportsBinary&&r.transport.supportsBinary;n=n||o}n||(i('probe transport "%s" opened',e),t.send([{type:"ping",data:"probe"}]),t.once("packet",(function(o){if(!n)if("pong"===o.type&&"probe"===o.data){if(i('probe transport "%s" pong',e),r.upgrading=!0,r.emit("upgrading",t),!t)return;c.priorWebsocketSuccess="websocket"===t.name,i('pausing current transport "%s"',r.transport.name),r.transport.pause((function(){n||"closed"!==r.readyState&&(i("changing transport and sending upgrade packet"),p(),r.setTransport(t),t.send([{type:"upgrade"}]),r.emit("upgrade",t),t=null,r.upgrading=!1,r.flush())}))}else{i('probe transport "%s" failed',e);var a=new Error("probe error");a.transport=t.name,r.emit("upgradeError",a)}})))}function a(){n||(n=!0,p(),t.close(),t=null)}function s(n){var o=new Error("probe error: "+n);o.transport=t.name,a(),i('probe transport "%s" failed because of error: %s',e,n),r.emit("upgradeError",o)}function u(){s("transport closed")}function l(){s("socket closed")}function f(e){t&&e.name!==t.name&&(i('"%s" works - aborting "%s"',e.name,t.name),a())}function p(){t.removeListener("open",o),t.removeListener("error",s),t.removeListener("close",u),r.removeListener("close",l),r.removeListener("upgrading",f)}c.priorWebsocketSuccess=!1,t.once("open",o),t.once("error",s),t.once("close",u),this.once("close",l),this.once("upgrading",f),t.open()},c.prototype.onOpen=function(){if(i("socket open"),this.readyState="open",c.priorWebsocketSuccess="websocket"===this.transport.name,this.emit("open"),this.flush(),"open"===this.readyState&&this.upgrade&&this.transport.pause){i("starting upgrade probes");for(var e=0,t=this.upgrades.length;er&&(n=r),t>=r||t>=n||0===r)return new ArrayBuffer(0);for(var o=new Uint8Array(e),i=new Uint8Array(n-t),a=t,s=0;a=55296&&t<=56319&&o=55296&&e<=57343){if(t)throw Error("Lone surrogate U+"+e.toString(16).toUpperCase()+" is not a scalar value");return!1}return!0}function u(e,t){return i(e>>t&63|128)}function l(e,t){if(0==(4294967168&e))return i(e);var n="";return 0==(4294965248&e)?n=i(e>>6&31|192):0==(4294901760&e)?(s(e,t)||(e=65533),n=i(e>>12&15|224),n+=u(e,6)):0==(4292870144&e)&&(n=i(e>>18&7|240),n+=u(e,12),n+=u(e,6)),n+=i(63&e|128)}function c(){if(o>=r)throw Error("Invalid byte index");var e=255&n[o];if(o++,128==(192&e))return 63&e;throw Error("Invalid continuation byte")}function f(e){var t,i;if(o>r)throw Error("Invalid byte index");if(o==r)return!1;if(t=255&n[o],o++,0==(128&t))return t;if(192==(224&t)){if((i=(31&t)<<6|c())>=128)return i;throw Error("Invalid continuation byte")}if(224==(240&t)){if((i=(15&t)<<12|c()<<6|c())>=2048)return s(i,e)?i:65533;throw Error("Invalid continuation byte")}if(240==(248&t)&&(i=(7&t)<<18|c()<<12|c()<<6|c())>=65536&&i<=1114111)return i;throw Error("Invalid UTF-8 detected")}e.exports={version:"2.1.2",encode:function(e,t){for(var n=!1!==(t=t||{}).strict,r=a(e),o=r.length,i=-1,s="";++i65535&&(o+=i((t-=65536)>>>10&1023|55296),t=56320|1023&t),o+=i(t);return o}(l)}}},function(e,t){!function(){"use strict";for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=new Uint8Array(256),r=0;r>2],i+=e[(3&r[n])<<4|r[n+1]>>4],i+=e[(15&r[n+1])<<2|r[n+2]>>6],i+=e[63&r[n+2]];return o%3===2?i=i.substring(0,i.length-1)+"=":o%3===1&&(i=i.substring(0,i.length-2)+"=="),i},t.decode=function(e){var t,r,o,i,a,s=.75*e.length,u=e.length,l=0;"="===e[e.length-1]&&(s--,"="===e[e.length-2]&&s--);var c=new ArrayBuffer(s),f=new Uint8Array(c);for(t=0;t>4,f[l++]=(15&o)<<4|i>>2,f[l++]=(3&i)<<6|63&a;return c}}()},function(e,t){var n="undefined"!==typeof n?n:"undefined"!==typeof WebKitBlobBuilder?WebKitBlobBuilder:"undefined"!==typeof MSBlobBuilder?MSBlobBuilder:"undefined"!==typeof MozBlobBuilder&&MozBlobBuilder,r=function(){try{return 2===new Blob(["hi"]).size}catch(e){return!1}}(),o=r&&function(){try{return 2===new Blob([new Uint8Array([1,2])]).size}catch(e){return!1}}(),i=n&&n.prototype.append&&n.prototype.getBlob;function a(e){return e.map((function(e){if(e.buffer instanceof ArrayBuffer){var t=e.buffer;if(e.byteLength!==t.byteLength){var n=new Uint8Array(e.byteLength);n.set(new Uint8Array(t,e.byteOffset,e.byteLength)),t=n.buffer}return t}return e}))}function s(e,t){t=t||{};var r=new n;return a(e).forEach((function(e){r.append(e)})),t.type?r.getBlob(t.type):r.getBlob()}function u(e,t){return new Blob(a(e),t||{})}"undefined"!==typeof Blob&&(s.prototype=Blob.prototype,u.prototype=Blob.prototype),e.exports=r?o?Blob:u:i?s:void 0},function(e,t,n){(function(t){var r=n(33),o=n(13);e.exports=c;var i,a=/\n/g,s=/\\n/g;function u(){}function l(){return"undefined"!==typeof self?self:"undefined"!==typeof window?window:"undefined"!==typeof t?t:{}}function c(e){if(r.call(this,e),this.query=this.query||{},!i){var t=l();i=t.___eio=t.___eio||[]}this.index=i.length;var n=this;i.push((function(e){n.onData(e)})),this.query.j=this.index,"function"===typeof addEventListener&&addEventListener("beforeunload",(function(){n.script&&(n.script.onerror=u)}),!1)}o(c,r),c.prototype.supportsBinary=!1,c.prototype.doClose=function(){this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),this.form&&(this.form.parentNode.removeChild(this.form),this.form=null,this.iframe=null),r.prototype.doClose.call(this)},c.prototype.doPoll=function(){var e=this,t=document.createElement("script");this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),t.async=!0,t.src=this.uri(),t.onerror=function(t){e.onError("jsonp poll error",t)};var n=document.getElementsByTagName("script")[0];n?n.parentNode.insertBefore(t,n):(document.head||document.body).appendChild(t),this.script=t,"undefined"!==typeof navigator&&/gecko/i.test(navigator.userAgent)&&setTimeout((function(){var e=document.createElement("iframe");document.body.appendChild(e),document.body.removeChild(e)}),100)},c.prototype.doWrite=function(e,t){var n=this;if(!this.form){var r,o=document.createElement("form"),i=document.createElement("textarea"),u=this.iframeId="eio_iframe_"+this.index;o.className="socketio",o.style.position="absolute",o.style.top="-1000px",o.style.left="-1000px",o.target=u,o.method="POST",o.setAttribute("accept-charset","utf-8"),i.name="d",o.appendChild(i),document.body.appendChild(o),this.form=o,this.area=i}function l(){c(),t()}function c(){if(n.iframe)try{n.form.removeChild(n.iframe)}catch(t){n.onError("jsonp polling iframe removal error",t)}try{var e='