diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..8d2a1fc --- /dev/null +++ b/.editorconfig @@ -0,0 +1,4 @@ +[*.cs] + +# CS8618: Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. +dotnet_diagnostic.CS8618.severity = none diff --git a/.gitignore b/.gitignore index 472ed42..509c307 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ *.userosscache *.sln.docstates *.backup +.nuget/ # Build results [Dd]ebug/ diff --git a/ArduinoAgent/Arduino-joystick-rotate/Arduino-joystick-rotate.ino b/ArduinoAgent/Arduino-joystick-rotate/Arduino-joystick-rotate.ino deleted file mode 100644 index d881f96..0000000 --- a/ArduinoAgent/Arduino-joystick-rotate/Arduino-joystick-rotate.ino +++ /dev/null @@ -1,160 +0,0 @@ -#include -#include - -// Rotary Encoder Inputs -#define CLK1 19 -#define DT1 18 -#define SW1 17 - -#define CLK2 2 -#define DT2 3 -#define SW2 4 - -#define VRx A0 -#define VRy A1 -#define JSW 8 - -// Rotatry encoder variables -int currentStateCLK1; -int lastStateCLK1; -int currentStateCLK2; -int lastStateCLK2; - -String currentEvent = ""; -String currentDir1 = ""; -String currentDir2 = ""; -boolean rotaryEncoderRotating1 = false; -boolean rotaryEncoderRotating2 = false; - -unsigned long lastButton1Press = 0; -unsigned long lastButton2Press = 0; - -Joystick joystick(VRx, VRy, JSW); - -NewEncoder encoderLower(DT1, CLK1, -32768, 32767, 0, FULL_PULSE); -NewEncoder encoderUpper(DT2, CLK2, -32768, 32767, 0, FULL_PULSE); -int16_t prevEncoderValueLower; -int16_t prevEncoderValueUpper; - -void setup() { - // Set encoder pins as inputs - pinMode(SW1, INPUT_PULLUP); - pinMode(SW2, INPUT_PULLUP); - - // Setup joystick - joystick.initialize(); - joystick.calibrate(); - joystick.setSensivity(3); - - // Setup Serial Monitor - Serial.begin(9600); - - NewEncoder::EncoderState encoderState1; - NewEncoder::EncoderState encoderState2; - - encoderLower.begin(); - encoderLower.getState(encoderState1); - prevEncoderValueLower = encoderState1.currentValue; - - encoderUpper.begin(); - encoderUpper.getState(encoderState2); - prevEncoderValueUpper = encoderState2.currentValue; -} - -void loop() { - int16_t currentEncoderValueLower; - int16_t currentEncoderValueUpper; - NewEncoder::EncoderState currentEncoderStateLower; - NewEncoder::EncoderState currentEncoderStateUpper; - - // Read rotary encoder lower - if (encoderLower.getState(currentEncoderStateLower)) { - currentEncoderValueLower = currentEncoderStateLower.currentValue; - if (currentEncoderValueLower != prevEncoderValueLower) { - if(currentEncoderValueLower > prevEncoderValueLower){ - Serial.println("EncoderLower:CW:" + String(currentEncoderValueLower - prevEncoderValueLower)); - } - else{ - Serial.println("EncoderLower:CCW:" + String(prevEncoderValueLower - currentEncoderValueLower)); - } - prevEncoderValueLower = currentEncoderValueLower; - } - } - - // Read rotary encoder upper - if (encoderUpper.getState(currentEncoderStateUpper)) { - currentEncoderValueUpper = currentEncoderStateUpper.currentValue; - if (currentEncoderValueUpper != prevEncoderValueUpper) { - if(currentEncoderValueUpper > prevEncoderValueUpper){ - Serial.println("EncoderUpper:CW:" + String(currentEncoderValueUpper - prevEncoderValueUpper)); - } - else{ - Serial.println("EncoderUpper:CCW:" + String(prevEncoderValueUpper - currentEncoderValueUpper)); - } - prevEncoderValueUpper = currentEncoderValueUpper; - } - } - - // Read the rotary encoder button state - int btnState1 = digitalRead(SW1); - int btnState2 = digitalRead(SW2); - - //If we detect LOW signal, button is pressed - if (btnState1 == LOW) { - //if 500ms have passed since last LOW pulse, it means that the - //button has been pressed, released and pressed again - if (millis() - lastButton1Press > 500) { - Serial.println("EncoderLower:SW"); - } - - // Remember last button press event - lastButton1Press = millis(); - } - - if (btnState2 == LOW) { - //if 500ms have passed since last LOW pulse, it means that the - //button has been pressed, released and pressed again - if (millis() - lastButton2Press > 500) { - Serial.println("EncoderUpper:SW"); - } - - // Remember last button press event - lastButton2Press = millis(); - } - - // Read joystick - if(joystick.isPressed()) - { - Serial.println("Joystick:SW"); - } - - if(joystick.isReleased()) - { - // left - if(joystick.isLeft()) - { - Serial.println("Joystick:UP"); - } - - // right - if(joystick.isRight()) - { - Serial.println("Joystick:DOWN"); - } - - // up - if(joystick.isUp()) - { - Serial.println("Joystick:RIGHT"); - } - - // down - if(joystick.isDown()) - { - Serial.println("Joystick:LEFT"); - } - } - - // slow down a bit - delay(200); -} diff --git a/ArduinoAgent/Arduino/Arduino.ino b/ArduinoAgent/Arduino/Arduino.ino deleted file mode 100644 index e4224d0..0000000 --- a/ArduinoAgent/Arduino/Arduino.ino +++ /dev/null @@ -1,160 +0,0 @@ -#include -#include - -// Rotary Encoder Inputs -#define CLK1 19 -#define DT1 18 -#define SW1 17 - -#define CLK2 2 -#define DT2 3 -#define SW2 4 - -#define VRx A0 -#define VRy A1 -#define JSW 8 - -// Rotatry encoder variables -int currentStateCLK1; -int lastStateCLK1; -int currentStateCLK2; -int lastStateCLK2; - -String currentEvent = ""; -String currentDir1 = ""; -String currentDir2 = ""; -boolean rotaryEncoderRotating1 = false; -boolean rotaryEncoderRotating2 = false; - -unsigned long lastButton1Press = 0; -unsigned long lastButton2Press = 0; - -Joystick joystick(VRx, VRy, JSW); - -NewEncoder encoderLower(DT1, CLK1, -32768, 32767, 0, FULL_PULSE); -NewEncoder encoderUpper(DT2, CLK2, -32768, 32767, 0, FULL_PULSE); -int16_t prevEncoderValueLower; -int16_t prevEncoderValueUpper; - -void setup() { - // Set encoder pins as inputs - pinMode(SW1, INPUT_PULLUP); - pinMode(SW2, INPUT_PULLUP); - - // Setup joystick - joystick.initialize(); - joystick.calibrate(); - joystick.setSensivity(3); - - // Setup Serial Monitor - Serial.begin(9600); - - NewEncoder::EncoderState encoderState1; - NewEncoder::EncoderState encoderState2; - - encoderLower.begin(); - encoderLower.getState(encoderState1); - prevEncoderValueLower = encoderState1.currentValue; - - encoderUpper.begin(); - encoderUpper.getState(encoderState2); - prevEncoderValueUpper = encoderState2.currentValue; -} - -void loop() { - int16_t currentEncoderValueLower; - int16_t currentEncoderValueUpper; - NewEncoder::EncoderState currentEncoderStateLower; - NewEncoder::EncoderState currentEncoderStateUpper; - - // Read rotary encoder lower - if (encoderLower.getState(currentEncoderStateLower)) { - currentEncoderValueLower = currentEncoderStateLower.currentValue; - if (currentEncoderValueLower != prevEncoderValueLower) { - if(currentEncoderValueLower > prevEncoderValueLower){ - Serial.println("EncoderLower:CW:" + String(currentEncoderValueLower - prevEncoderValueLower)); - } - else{ - Serial.println("EncoderLower:CCW:" + String(prevEncoderValueLower - currentEncoderValueLower)); - } - prevEncoderValueLower = currentEncoderValueLower; - } - } - - // Read rotary encoder upper - if (encoderUpper.getState(currentEncoderStateUpper)) { - currentEncoderValueUpper = currentEncoderStateUpper.currentValue; - if (currentEncoderValueUpper != prevEncoderValueUpper) { - if(currentEncoderValueUpper > prevEncoderValueUpper){ - Serial.println("EncoderUpper:CW:" + String(currentEncoderValueUpper - prevEncoderValueUpper)); - } - else{ - Serial.println("EncoderUpper:CCW:" + String(prevEncoderValueUpper - currentEncoderValueUpper)); - } - prevEncoderValueUpper = currentEncoderValueUpper; - } - } - - // Read the rotary encoder button state - int btnState1 = digitalRead(SW1); - int btnState2 = digitalRead(SW2); - - //If we detect LOW signal, button is pressed - if (btnState1 == LOW) { - //if 500ms have passed since last LOW pulse, it means that the - //button has been pressed, released and pressed again - if (millis() - lastButton1Press > 500) { - Serial.println("EncoderLower:SW"); - } - - // Remember last button press event - lastButton1Press = millis(); - } - - if (btnState2 == LOW) { - //if 500ms have passed since last LOW pulse, it means that the - //button has been pressed, released and pressed again - if (millis() - lastButton2Press > 500) { - Serial.println("EncoderUpper:SW"); - } - - // Remember last button press event - lastButton2Press = millis(); - } - - // Read joystick - if(joystick.isPressed()) - { - Serial.println("Joystick:SW"); - } - - if(joystick.isReleased()) - { - // left - if(joystick.isLeft()) - { - Serial.println("Joystick:LEFT"); - } - - // right - if(joystick.isRight()) - { - Serial.println("Joystick:RIGHT"); - } - - // up - if(joystick.isUp()) - { - Serial.println("Joystick:UP"); - } - - // down - if(joystick.isDown()) - { - Serial.println("Joystick:DOWN"); - } - } - - // slow down a bit - delay(200); -} diff --git a/ArduinoAgent/Arduino/fritzing/Fritzing Sketch.fzz b/ArduinoAgent/Arduino/fritzing/Fritzing Sketch.fzz deleted file mode 100644 index 20e7190..0000000 Binary files a/ArduinoAgent/Arduino/fritzing/Fritzing Sketch.fzz and /dev/null differ diff --git a/ArduinoAgent/Arduino/fritzing/KY-040_AZ_Rotary_encoder_v0.fzpz b/ArduinoAgent/Arduino/fritzing/KY-040_AZ_Rotary_encoder_v0.fzpz deleted file mode 100644 index 4756137..0000000 Binary files a/ArduinoAgent/Arduino/fritzing/KY-040_AZ_Rotary_encoder_v0.fzpz and /dev/null differ diff --git a/ArduinoAgent/Arduino/libraries/Arduino_Analog_Joystick_Library-master.zip b/ArduinoAgent/Arduino/libraries/Arduino_Analog_Joystick_Library-master.zip deleted file mode 100644 index c3f2ee1..0000000 Binary files a/ArduinoAgent/Arduino/libraries/Arduino_Analog_Joystick_Library-master.zip and /dev/null differ diff --git a/ArduinoAgent/Arduino/libraries/NewEncoder-master.zip b/ArduinoAgent/Arduino/libraries/NewEncoder-master.zip deleted file mode 100644 index 073fee9..0000000 Binary files a/ArduinoAgent/Arduino/libraries/NewEncoder-master.zip and /dev/null differ diff --git a/ArduinoAgent/Arduino/libraries/keypad.zip b/ArduinoAgent/Arduino/libraries/keypad.zip deleted file mode 100644 index a8abb7a..0000000 Binary files a/ArduinoAgent/Arduino/libraries/keypad.zip and /dev/null differ diff --git a/ArduinoAgent/Arduino/with_keypad/Arduino-with-keypad.ino b/ArduinoAgent/Arduino/with_keypad/Arduino-with-keypad.ino deleted file mode 100644 index 76d8cd0..0000000 --- a/ArduinoAgent/Arduino/with_keypad/Arduino-with-keypad.ino +++ /dev/null @@ -1,197 +0,0 @@ -#include -#include -#include - -// Rotary Encoder Inputs -#define CLK1 19 -#define DT1 18 -#define SW1 17 - -#define CLK2 2 -#define DT2 3 -#define SW2 4 - -#define VRx A0 -#define VRy A1 - -const byte ROWS = 4; -const byte COLS = 4; - -char hexaKeys[ROWS][COLS] = { - {'1', '2', '3', 'A'}, - {'4', '5', '6', 'B'}, - {'7', '8', '9', 'C'}, - {'*', '0', '#', 'D'} -}; - -byte rowPins[ROWS] = {31, 33, 35, 37}; -byte colPins[COLS] = {39, 41, 43, 45}; -Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); - -// Rotatry encoder variables -int currentStateCLK1; -int lastStateCLK1; -int currentStateCLK2; -int lastStateCLK2; - -String currentEvent = ""; -String currentDir1 = ""; -String currentDir2 = ""; -boolean rotaryEncoderRotating1 = false; -boolean rotaryEncoderRotating2 = false; - -unsigned long lastButton1Press = 0; -unsigned long lastButton2Press = 0; - -Joystick joystick(VRx, VRy, 8); - -NewEncoder encoderLower(DT1, CLK1, -32768, 32767, 0, FULL_PULSE); -NewEncoder encoderUpper(DT2, CLK2, -32768, 32767, 0, FULL_PULSE); -int16_t prevEncoderValueLower; -int16_t prevEncoderValueUpper; - -void setup() { - // Set encoder pins as inputs - pinMode(SW1, INPUT_PULLUP); - pinMode(SW2, INPUT_PULLUP); - - // Setup joystick - joystick.initialize(); - joystick.calibrate(); - joystick.setSensivity(3); - - // Setup Serial Monitor - Serial.begin(9600); - - NewEncoder::EncoderState encoderState1; - NewEncoder::EncoderState encoderState2; - - encoderLower.begin(); - encoderLower.getState(encoderState1); - prevEncoderValueLower = encoderState1.currentValue; - - encoderUpper.begin(); - encoderUpper.getState(encoderState2); - prevEncoderValueUpper = encoderState2.currentValue; -} - -void loop() { - int16_t currentEncoderValueLower; - int16_t currentEncoderValueUpper; - NewEncoder::EncoderState currentEncoderStateLower; - NewEncoder::EncoderState currentEncoderStateUpper; - - // Read rotary encoder lower - if (encoderLower.getState(currentEncoderStateLower)) { - currentEncoderValueLower = currentEncoderStateLower.currentValue; - if (currentEncoderValueLower != prevEncoderValueLower) { - if(currentEncoderValueLower > prevEncoderValueLower){ - Serial.println("EncoderLower:CW:" + String(currentEncoderValueLower - prevEncoderValueLower)); - } - else{ - Serial.println("EncoderLower:CCW:" + String(prevEncoderValueLower - currentEncoderValueLower)); - } - prevEncoderValueLower = currentEncoderValueLower; - } - } - - // Read rotary encoder upper - if (encoderUpper.getState(currentEncoderStateUpper)) { - currentEncoderValueUpper = currentEncoderStateUpper.currentValue; - if (currentEncoderValueUpper != prevEncoderValueUpper) { - if(currentEncoderValueUpper > prevEncoderValueUpper){ - Serial.println("EncoderUpper:CW:" + String(currentEncoderValueUpper - prevEncoderValueUpper)); - } - else{ - Serial.println("EncoderUpper:CCW:" + String(prevEncoderValueUpper - currentEncoderValueUpper)); - } - prevEncoderValueUpper = currentEncoderValueUpper; - } - } - - // Read the rotary encoder button state - int btnState1 = digitalRead(SW1); - int btnState2 = digitalRead(SW2); - - //If we detect LOW signal, button is pressed - if (btnState1 == LOW) { - //if 500ms have passed since last LOW pulse, it means that the - //button has been pressed, released and pressed again - if (millis() - lastButton1Press > 500) { - Serial.println("EncoderLower:SW"); - } - - // Remember last button press event - lastButton1Press = millis(); - } - - if (btnState2 == LOW) { - //if 500ms have passed since last LOW pulse, it means that the - //button has been pressed, released and pressed again - if (millis() - lastButton2Press > 500) { - Serial.println("EncoderUpper:SW"); - } - - // Remember last button press event - lastButton2Press = millis(); - } - - // Read joystick - if(joystick.isPressed()) - { - Serial.println("Joystick:SW"); - } - - // Read joystick (updated for joystick mounted at 90 degree) - if(joystick.isReleased()) - { - // left - if(joystick.isLeft()) - { - //Serial.println("Joystick:LEFT"); - Serial.println("Joystick:UP"); - } - - // right - if(joystick.isRight()) - { - //Serial.println("Joystick:RIGHT"); - Serial.println("Joystick:DOWN"); - } - - // up - if(joystick.isUp()) - { - //Serial.println("Joystick:UP"); - Serial.println("Joystick:RIGHT"); - } - - // down - if(joystick.isDown()) - { - //Serial.println("Joystick:DOWN"); - Serial.println("Joystick:LEFT"); - } - } - - // Read keypad - char customKey = customKeypad.getKey(); - - if (customKey){ - if(customKey == '#') - { - Serial.println("Keypad:KeyPound"); - } - else if(customKey == '*') - { - Serial.println("Keypad:KeyAsterisk"); - } - else - { - Serial.println("Keypad:Key" + String(customKey)); - } - } - - // slow down a bit - delay(100); -} diff --git a/ArduinoAgent/ArduinoAgent.csproj b/ArduinoAgent/ArduinoAgent.csproj deleted file mode 100644 index 328ebed..0000000 --- a/ArduinoAgent/ArduinoAgent.csproj +++ /dev/null @@ -1,37 +0,0 @@ - - - net6.0 - ArduinoAgent - MSFS 2020 Popout Panel Manager ArduinoAgent - MSFS 2020 Popout Panel Manager ArduinoAgent - Stanley Kwok - Stanley Kwok - Stanley Kwok 2021 - https://github.com/hawkeye-stan/msfs-popout-panel-manager - MSFSPopoutPanelManager.ArduinoAgent - x64 - 3.4.6.0321 - 3.4.6.0321 - 3.4.6.0321 - win-x64 - Embedded - Debug;Release;DebugTouchPanel;ReleaseTouchPanel - - - - x64 - - - - x64 - - - - - - - - - - - diff --git a/ArduinoAgent/ArduinoInputData.cs b/ArduinoAgent/ArduinoInputData.cs deleted file mode 100644 index 1056971..0000000 --- a/ArduinoAgent/ArduinoInputData.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; - -namespace MSFSPopoutPanelManager.ArduinoAgent -{ - public class ArduinoInputData - { - public ArduinoInputData(string inputName, string inputAction, int acceleration) - { - InputName = (InputName)Enum.Parse(typeof(InputName), inputName); - InputAction = (InputAction)Enum.Parse(typeof(InputAction), inputAction); - Acceleration = acceleration; - } - - public InputName InputName { get; set; } - - public InputAction InputAction { get; set; } - - public int Acceleration { get; set; } - } - - public enum InputAction - { - NONE, - - // Rotary Encoder - CW, - CCW, - SW, - - // Joystick - UP, - DOWN, - LEFT, - RIGHT, - - // Keypad - Key1, - Key2, - Key3, - Key4, - Key5, - Key6, - Key7, - Key8, - Key9, - Key0, - KeyA, - KeyB, - KeyC, - KeyD, - KeyAsterisk, - KeyPound - } - - public enum InputName - { - EncoderLower, - EncoderUpper, - Joystick, - Keypad - } -} diff --git a/ArduinoAgent/ArduinoProvider.cs b/ArduinoAgent/ArduinoProvider.cs deleted file mode 100644 index 6ae245b..0000000 --- a/ArduinoAgent/ArduinoProvider.cs +++ /dev/null @@ -1,143 +0,0 @@ -using MSFSPopoutPanelManager.Shared; -using System; -using System.Collections.Generic; -using System.IO.Ports; -using System.Threading; - -namespace MSFSPopoutPanelManager.ArduinoAgent -{ - public class ArduinoProvider - { - private const string ARDUINO_COM_PORT = "COM3"; - private const int ARDUINO_BAUD_RATE = 9600; - - private SerialPort _serialPort; - - public event EventHandler OnConnectionChanged; - public event EventHandler OnDataReceived; - - public ArduinoProvider() - { - try - { - _serialPort = new SerialPort - { - PortName = ARDUINO_COM_PORT, - BaudRate = ARDUINO_BAUD_RATE - }; - _serialPort.DataReceived += DataReceived; - } - catch (Exception ex) - { - FileLogger.WriteException($"Arduino Error: {ex.Message}", null); - } - } - - public void Start() - { - if (!IsConnected) - { - try - { - _serialPort.Open(); - OnConnectionChanged?.Invoke(this, true); - FileLogger.WriteLog($"Arduino connected.", StatusMessageType.Info); - } - catch (Exception ex) - { - FileLogger.WriteException($"Arduino Connection Error - {ex.Message}", ex); - } - } - } - - public void Stop() - { - if (_serialPort.IsOpen) - { - try - { - _serialPort.Close(); - FileLogger.WriteLog($"Arduino disconnected.", StatusMessageType.Info); - } - catch (Exception ex) - { - FileLogger.WriteException($"Arduino Connection Error - {ex.Message}", ex); - } - } - - OnConnectionChanged?.Invoke(this, false); - } - - public void SendToArduino(string data) - { - try - { - if (IsConnected) - _serialPort.WriteLine(data); - } - catch (Exception ex) - { - FileLogger.WriteException($"Arduino Connection Error - {ex.Message}", ex); - } - } - - private void DataReceived(object sender, SerialDataReceivedEventArgs e) - { - if (_serialPort.IsOpen) - { - try - { - var dataEvents = new List(); - - int byteToRead = _serialPort.BytesToRead; - - while (byteToRead > 0) - { - - var message = _serialPort.ReadTo("\r\n"); - var data = message.Split(":"); - - ArduinoInputData dataEvent; - - // Calculate acceleration - if (data.Length == 3) - { - var accelerationValue = Convert.ToInt32(data[2]); - //dataEvent = new ArduinoInputData(data[0], data[1], accelerationValue == 1 ? 1 : accelerationValue / 2); - dataEvent = new ArduinoInputData(data[0], data[1], accelerationValue <= 2 ? 1 : accelerationValue); - } - else - { - dataEvent = new ArduinoInputData(data[0], data[1], 1); - } - - dataEvents.Add(dataEvent); - - byteToRead = _serialPort.BytesToRead; - } - - foreach (var evt in dataEvents) - { - OnDataReceived?.Invoke(this, evt); - Thread.Sleep(10); - } - } - catch - { - _serialPort.DiscardInBuffer(); - } - } - } - - private bool IsConnected - { - get - { - if (_serialPort == null) - return false; - - return _serialPort.IsOpen; - } - } - } -} diff --git a/DomainModel/DataFile/AppSetttingFile.cs b/DomainModel/DataFile/AppSetttingFile.cs new file mode 100644 index 0000000..8c8648b --- /dev/null +++ b/DomainModel/DataFile/AppSetttingFile.cs @@ -0,0 +1,19 @@ +using MSFSPopoutPanelManager.DomainModel.Setting; + +namespace MSFSPopoutPanelManager.DomainModel.DataFile +{ + public class AppSetttingFile + { + public AppSetttingFile() + { + FileVersion = "4.0"; + ApplicationSetting = new ApplicationSetting(); + } + + public string FileVersion { get; set; } + + public ApplicationSetting ApplicationSetting { get; set; } + } + + +} diff --git a/DomainModel/DataFile/UserProfileFile.cs b/DomainModel/DataFile/UserProfileFile.cs new file mode 100644 index 0000000..59e2467 --- /dev/null +++ b/DomainModel/DataFile/UserProfileFile.cs @@ -0,0 +1,18 @@ +using MSFSPopoutPanelManager.DomainModel.Profile; +using System.Collections.Generic; + +namespace MSFSPopoutPanelManager.DomainModel.DataFile +{ + public class UserProfileFile + { + public UserProfileFile() + { + FileVersion = "4.0"; + Profiles = new List(); + } + + public string FileVersion { get; set; } + + public IList Profiles { get; set; } + } +} diff --git a/DomainModel/DomainModel.csproj b/DomainModel/DomainModel.csproj new file mode 100644 index 0000000..7a0c339 --- /dev/null +++ b/DomainModel/DomainModel.csproj @@ -0,0 +1,46 @@ + + + + net7.0-windows + DomainModel + MSFS 2020 Popout Panel Manager Domain Model + MSFS 2020 Popout Panel Manager Domain Model + Stanley Kwok + Stanley Kwok + Stanley Kwok 2021 + https://github.com/hawkeye-stan/msfs-popout-panel-manager + MSFSPopoutPanelManager.DomainModel + x64 + 4.0.0.0 + 4.0.0.0 + 4.0.0.0 + win-x64 + Embedded + Debug;Release;Local + + + true + + + true + + + true + + + true + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + diff --git a/TouchPanelAgent/FodyWeavers.xml b/DomainModel/FodyWeavers.xml similarity index 100% rename from TouchPanelAgent/FodyWeavers.xml rename to DomainModel/FodyWeavers.xml diff --git a/TouchPanelAgent/FodyWeavers.xsd b/DomainModel/FodyWeavers.xsd similarity index 100% rename from TouchPanelAgent/FodyWeavers.xsd rename to DomainModel/FodyWeavers.xsd diff --git a/DomainModel/Legacy/LegacyAppSetting.cs b/DomainModel/Legacy/LegacyAppSetting.cs new file mode 100644 index 0000000..2ae9e10 --- /dev/null +++ b/DomainModel/Legacy/LegacyAppSetting.cs @@ -0,0 +1,78 @@ +using MSFSPopoutPanelManager.DomainModel.Setting; + +namespace MSFSPopoutPanelManager.DomainModel.Legacy +{ + public class LegacyAppSetting + { + public string AutoUpdaterUrl { get; set; } + + public int LastUsedProfileId { get; set; } + + public bool MinimizeToTray { get; set; } + + public bool AlwaysOnTop { get; set; } + + public bool AutoClose { get; set; } + + public bool UseAutoPanning { get; set; } + + public bool MinimizeAfterPopOut { get; set; } + + public string AutoPanningKeyBinding { get; set; } + + public bool StartMinimized { get; set; } + + public bool AutoPopOutPanels { get; set; } + + public bool AutoDisableTrackIR { get; set; } + + public int OnScreenMessageDuration { get; set; } + + public bool UseLeftRightControlToPopOut { get; set; } + + public bool IsEnabledTouchPanelServer { get; set; } + + public bool AutoResizeMsfsGameWindow { get; set; } + + public LegacyAfterPopOutCameraView AfterPopOutCameraView { get; set; } + + public LegacyTouchScreenSettings TouchScreenSettings { get; set; } + + public LegacyTouchPanelSettings TouchPanelSettings { get; set; } + } + + public class LegacyAfterPopOutCameraView + { + public bool EnableReturnToCameraView { get; set; } + + public AfterPopOutCameraViewType CameraView { get; set; } + + public string CustomCameraKeyBinding { get; set; } + } + + public class LegacyTouchScreenSettings + { + public int TouchDownUpDelay { get; set; } + + public bool RefocusGameWindow { get; set; } + + public int RefocusGameWindowDelay { get; set; } + + public bool RealSimGearGTN750Gen1Override { get; set; } + } + + public class LegacyTouchPanelSettings + { + public bool EnableTouchPanelIntegration { get; set; } + + public bool AutoStart { get; set; } + + public int DataRefreshInterval { get; set; } + + public int MapRefreshInterval { get; set; } + + public bool UseArduino { get; set; } + + public bool EnableSound { get; set; } + } +} diff --git a/DomainModel/Legacy/LegacyProfile.cs b/DomainModel/Legacy/LegacyProfile.cs new file mode 100644 index 0000000..06aa48e --- /dev/null +++ b/DomainModel/Legacy/LegacyProfile.cs @@ -0,0 +1,84 @@ +using MSFSPopoutPanelManager.DomainModel.Profile; +using System.Collections.ObjectModel; + +namespace MSFSPopoutPanelManager.DomainModel.Legacy +{ + public class LegacyProfile + { + public int ProfileId { get; set; } + + public string ProfileName { get; set; } + + public ObservableCollection BindingAircrafts { get; set; } + + public ObservableCollection PanelSourceCoordinates { get; set; } + + public ObservableCollection PanelConfigs { get; set; } + + public ObservableCollection TouchPanelBindings { get; set; } + + public bool IsLocked { get; set; } + + public bool PowerOnRequiredForColdStart { get; set; } + + public bool IncludeInGamePanels { get; set; } + + public bool RealSimGearGTN750Gen1Override { get; set; } + + public LegacyMsfsGameWindowConfig MsfsGameWindowConfig { get; set; } + } + + public class LegacyPanelSourceCoordinate + { + public int PanelIndex { get; set; } + + public int X { get; set; } + + public int Y { get; set; } + } + + public class LegacyPanelConfig + { + public int PanelIndex { get; set; } + + public string PanelName { get; set; } + + public PanelType PanelType { get; set; } + + public int Top { get; set; } + + public int Left { get; set; } + + public int Width { get; set; } + + public int Height { get; set; } + + public bool AlwaysOnTop { get; set; } + + public bool HideTitlebar { get; set; } + + public bool FullScreen { get; set; } + + public bool TouchEnabled { get; set; } + + public bool DisableGameRefocus { get; set; } + } + + public class LegacyTouchPanelBinding + { + public string PlaneId { get; set; } + + public string PanelId { get; set; } + } + + public class LegacyMsfsGameWindowConfig + { + public int Top { get; set; } + + public int Left { get; set; } + + public int Width { get; set; } + + public int Height { get; set; } + } +} diff --git a/DomainModel/Profile/HudBarConfig.cs b/DomainModel/Profile/HudBarConfig.cs new file mode 100644 index 0000000..c197e4b --- /dev/null +++ b/DomainModel/Profile/HudBarConfig.cs @@ -0,0 +1,24 @@ +using MSFSPopoutPanelManager.Shared; + +namespace MSFSPopoutPanelManager.DomainModel.Profile +{ + public class HudBarConfig : ObservableObject + { + public HudBarConfig() + { + IsEnabled = false; + HudBarType = HudBarType.Generic_Aircraft; + } + + public bool IsEnabled { get; set; } + + public HudBarType HudBarType { get; set; } + } + + public enum HudBarType + { + None = 0, // not selectable + Generic_Aircraft = 1, + PMDG_737 = 2 + } +} diff --git a/DomainModel/Profile/MsfsGameWindowConfig.cs b/DomainModel/Profile/MsfsGameWindowConfig.cs new file mode 100644 index 0000000..1ee27da --- /dev/null +++ b/DomainModel/Profile/MsfsGameWindowConfig.cs @@ -0,0 +1,35 @@ +using MSFSPopoutPanelManager.Shared; +using Newtonsoft.Json; + +namespace MSFSPopoutPanelManager.DomainModel.Profile +{ + public class MsfsGameWindowConfig : ObservableObject + { + public MsfsGameWindowConfig() + { + Top = 0; + Left = 0; + Width = 0; + Height = 0; + } + + public MsfsGameWindowConfig(int left, int top, int width, int height) + { + Top = top; + Left = left; + Width = width; + Height = height; + } + + public int Top { get; set; } + + public int Left { get; set; } + + public int Width { get; set; } + + public int Height { get; set; } + + [JsonIgnore] + public bool IsValid => Width != 0 && Height != 0; + } +} diff --git a/DomainModel/Profile/PanelConfig.cs b/DomainModel/Profile/PanelConfig.cs new file mode 100644 index 0000000..50be405 --- /dev/null +++ b/DomainModel/Profile/PanelConfig.cs @@ -0,0 +1,99 @@ +using MSFSPopoutPanelManager.Shared; +using Newtonsoft.Json; +using System; + +namespace MSFSPopoutPanelManager.DomainModel.Profile +{ + public class PanelConfig : ObservableObject + { + public PanelConfig() + { + if (Id == Guid.Empty) + Id = Guid.NewGuid(); + + PanelName = "Default Panel Name"; + PanelHandle = IntPtr.MaxValue; + AutoGameRefocus = true; + PanelSource = new PanelSource(); + + InitializeChildPropertyChangeBinding(); + + PropertyChanged += PanelConfig_PropertyChanged; + } + + private void PanelConfig_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + if (e.PropertyName == "FullScreen" && FullScreen) + { + AlwaysOnTop = false; + HideTitlebar = false; + } + else if (e.PropertyName == "TouchEnabled" && TouchEnabled) + { + AutoGameRefocus = true; + } + } + + public Guid Id { get; set; } + + public PanelType PanelType { get; set; } + + public string PanelName { get; set; } + + public int Top { get; set; } + + public int Left { get; set; } + + public int Width { get; set; } + + public int Height { get; set; } + + public bool AlwaysOnTop { get; set; } + + public bool HideTitlebar { get; set; } + + public bool FullScreen { get; set; } + + public bool TouchEnabled { get; set; } + + public bool AutoGameRefocus { get; set; } + + public PanelSource PanelSource { get; set; } + + [JsonIgnore] + public IntPtr PanelHandle { get; set; } + + [JsonIgnore] + public bool IsEditingPanel { get; set; } + + [JsonIgnore] + public bool IsCustomPopOut => PanelType == PanelType.CustomPopout; + + [JsonIgnore] + public bool IsBuiltInPopOut => PanelType == PanelType.BuiltInPopout; + + [JsonIgnore] + public bool HasPanelSource => PanelType == PanelType.BuiltInPopout || (PanelType == PanelType.CustomPopout && PanelSource != null && PanelSource.X != null); + + [JsonIgnore] + public bool? IsPopOutSuccess + { + get + { + if (PanelHandle == IntPtr.MaxValue) + return null; + + if (PanelHandle == IntPtr.Zero) + return false; + + return true; + } + } + + [JsonIgnore] + public bool IsSelectedPanelSource { get; set; } + + [JsonIgnore] + public bool IsShownPanelSource { get; set; } + } +} diff --git a/DomainModel/Profile/PanelConfigColors.cs b/DomainModel/Profile/PanelConfigColors.cs new file mode 100644 index 0000000..d59d8a0 --- /dev/null +++ b/DomainModel/Profile/PanelConfigColors.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace MSFSPopoutPanelManager.DomainModel.Profile +{ + public class PanelConfigColors + { + public static string GetNextAvailableColor(List panelConfigs) + { + foreach (string colorName in Enum.GetNames()) + { + if (panelConfigs.Any(p => p.PanelSource.Color == colorName)) + continue; + + return colorName; + } + + return "White"; + } + } + + public enum Colors + { + LimeGreen, + Red, + Blue, + Fuchsia, + Orange, + Yellow, + Cyan, + Ivory, + Pink, + Indigo, + Purple, + Crimson + } +} diff --git a/Shared/PanelConfigItem.cs b/DomainModel/Profile/PanelConfigItem.cs similarity index 80% rename from Shared/PanelConfigItem.cs rename to DomainModel/Profile/PanelConfigItem.cs index cf8acc8..b9af5e4 100644 --- a/Shared/PanelConfigItem.cs +++ b/DomainModel/Profile/PanelConfigItem.cs @@ -1,6 +1,6 @@ using System; -namespace MSFSPopoutPanelManager.Shared +namespace MSFSPopoutPanelManager.DomainModel.Profile { public class PanelConfigItem { @@ -25,9 +25,7 @@ namespace MSFSPopoutPanelManager.Shared HideTitlebar, FullScreen, TouchEnabled, - DisableGameRefocus, - RowHeader, - None, - Invalid, + AutoGameRefocus, + None } } diff --git a/DomainModel/Profile/PanelSource.cs b/DomainModel/Profile/PanelSource.cs new file mode 100644 index 0000000..bd22131 --- /dev/null +++ b/DomainModel/Profile/PanelSource.cs @@ -0,0 +1,18 @@ +using MSFSPopoutPanelManager.Shared; +using Newtonsoft.Json; +using System; + +namespace MSFSPopoutPanelManager.DomainModel.Profile +{ + public class PanelSource : ObservableObject + { + public int? X { get; set; } + + public int? Y { get; set; } + + public string Color { get; set; } + + [JsonIgnore] + public IntPtr PanelHandle { get; set; } + } +} diff --git a/DomainModel/Profile/PanelType.cs b/DomainModel/Profile/PanelType.cs new file mode 100644 index 0000000..9e7c4f2 --- /dev/null +++ b/DomainModel/Profile/PanelType.cs @@ -0,0 +1,15 @@ +namespace MSFSPopoutPanelManager.DomainModel.Profile +{ + public enum PanelType + { + PopOutManager = 0, + BuiltInPopout = 1, + CustomPopout = 2, + FlightSimMainWindow = 3, + HudBarWindow = 4, + MultiMonitorWindow = 5, + PanelSourceWindow = 6, + StatusMessageWindow = 7, + Unknown = 100 + } +} diff --git a/DomainModel/Profile/ProfileSetting.cs b/DomainModel/Profile/ProfileSetting.cs new file mode 100644 index 0000000..7c33189 --- /dev/null +++ b/DomainModel/Profile/ProfileSetting.cs @@ -0,0 +1,20 @@ +using MSFSPopoutPanelManager.Shared; + +namespace MSFSPopoutPanelManager.DomainModel.Profile +{ + public class ProfileSetting : ObservableObject + { + public ProfileSetting() + { + HudBarConfig = new HudBarConfig(); + + InitializeChildPropertyChangeBinding(); + } + + public bool PowerOnRequiredForColdStart { get; set; } + + public bool IncludeInGamePanels { get; set; } + + public HudBarConfig HudBarConfig { get; set; } + } +} diff --git a/DomainModel/Profile/UserProfile.cs b/DomainModel/Profile/UserProfile.cs new file mode 100644 index 0000000..846b51f --- /dev/null +++ b/DomainModel/Profile/UserProfile.cs @@ -0,0 +1,125 @@ +using MSFSPopoutPanelManager.Shared; +using Newtonsoft.Json; +using PropertyChanged; +using System; +using System.Collections.ObjectModel; +using System.Linq; + +namespace MSFSPopoutPanelManager.DomainModel.Profile +{ + [SuppressPropertyChangedWarnings] + public class UserProfile : ObservableObject, IComparable + { + public UserProfile() + { + Id = Guid.NewGuid(); + IsLocked = false; + + AircraftBindings = new ObservableCollection(); + PanelConfigs = new ObservableCollection(); + ProfileSetting = new ProfileSetting(); + MsfsGameWindowConfig = new MsfsGameWindowConfig(); + + this.PropertyChanged += (sender, e) => + { + var evtArg = e as PropertyChangedExtendedEventArgs; + if (!evtArg.DisableSave) + ProfileChanged?.Invoke(this, null); + }; + + PanelConfigs.CollectionChanged += (sender, e) => + { + switch (e.Action) + { + case System.Collections.Specialized.NotifyCollectionChangedAction.Add: + if (e.NewItems[0] == null) + return; + + ((PanelConfig)e.NewItems[0]).PropertyChanged += (sender, e) => + { + var evtArg = e as PropertyChangedExtendedEventArgs; + if (!evtArg.DisableSave) + ProfileChanged?.Invoke(this, null); + + OnPanelConfigChanged(sender, e); + }; + ProfileChanged?.Invoke(this, null); + OnPanelConfigChanged(sender, e); + break; + case System.Collections.Specialized.NotifyCollectionChangedAction.Remove: + case System.Collections.Specialized.NotifyCollectionChangedAction.Move: + case System.Collections.Specialized.NotifyCollectionChangedAction.Replace: + ProfileChanged?.Invoke(this, null); + OnPanelConfigChanged(sender, e); + break; + } + }; + + InitializeChildPropertyChangeBinding(); + } + + public event EventHandler ProfileChanged; + + public Guid Id { get; set; } + + public string Name { get; set; } + + public bool IsLocked { get; set; } + + public ObservableCollection AircraftBindings { get; set; } + + public ObservableCollection PanelConfigs { get; set; } + + public ProfileSetting ProfileSetting { get; set; } + + public MsfsGameWindowConfig MsfsGameWindowConfig { get; set; } + + public int CompareTo(UserProfile other) + { + int result = this.Name.ToLower().CompareTo(other.Name.ToLower()); + if (result == 0) + result = this.Name.ToLower().CompareTo(other.Name.ToLower()); + return result; + } + + [JsonIgnore] + public bool IsActive { get; set; } + + [JsonIgnore] + public bool IsEditingPanelSource { get; set; } + + private bool _isPoppedOut; + [JsonIgnore] + public bool IsPoppedOut + { + get { return _isPoppedOut; } + set + { + _isPoppedOut = value; + + if (!value) + { + foreach (var panelConfig in PanelConfigs) + panelConfig.PanelHandle = IntPtr.MaxValue; // reset panel is popped out status + } + } + } + + [JsonIgnore] + public Guid CurrentMoveResizePanelId { get; set; } + + [JsonIgnore] + public bool HasUnidentifiedPanelSource { get; private set; } + + [JsonIgnore] + public bool HasAircraftBindings => AircraftBindings != null && AircraftBindings.Count > 0; + + [JsonIgnore] + public bool HasCustomPanels => PanelConfigs.Count(p => p.PanelType == PanelType.CustomPopout) > 0; + + private void OnPanelConfigChanged(object sender, EventArgs e) + { + HasUnidentifiedPanelSource = PanelConfigs.Any(p => p.PanelType == PanelType.CustomPopout && p.PanelSource.X == null); + } + } +} diff --git a/DomainModel/Setting/AfterPopOutCameraView.cs b/DomainModel/Setting/AfterPopOutCameraView.cs new file mode 100644 index 0000000..5811aa8 --- /dev/null +++ b/DomainModel/Setting/AfterPopOutCameraView.cs @@ -0,0 +1,32 @@ +using MSFSPopoutPanelManager.Shared; +using Newtonsoft.Json; + +namespace MSFSPopoutPanelManager.DomainModel.Setting +{ + public class AfterPopOutCameraView : ObservableObject + { + public AfterPopOutCameraView() + { + // Default values + IsEnabled = true; + CameraView = AfterPopOutCameraViewType.CockpitCenterView; + KeyBinding = "1"; + } + + public bool IsEnabled { get; set; } + + public AfterPopOutCameraViewType CameraView { get; set; } + + public string KeyBinding { get; set; } + + // Use for MVVM binding only + [JsonIgnore] + public bool IsEnabledCustomCameraKeyBinding { get { return IsEnabled && CameraView == AfterPopOutCameraViewType.CustomCameraView; } } + } + + public enum AfterPopOutCameraViewType + { + CockpitCenterView, + CustomCameraView + } +} diff --git a/UserDataAgent/AppAutoStart.cs b/DomainModel/Setting/AppAutoStart.cs similarity index 99% rename from UserDataAgent/AppAutoStart.cs rename to DomainModel/Setting/AppAutoStart.cs index d187c4d..a6592b2 100644 --- a/UserDataAgent/AppAutoStart.cs +++ b/DomainModel/Setting/AppAutoStart.cs @@ -5,7 +5,7 @@ using System.Text; using System.Xml; using System.Xml.Serialization; -namespace MSFSPopoutPanelManager.UserDataAgent +namespace MSFSPopoutPanelManager.DomainModel.Setting { internal class AppAutoStart { diff --git a/DomainModel/Setting/ApplicationSetting.cs b/DomainModel/Setting/ApplicationSetting.cs new file mode 100644 index 0000000..c2640c4 --- /dev/null +++ b/DomainModel/Setting/ApplicationSetting.cs @@ -0,0 +1,37 @@ +using MSFSPopoutPanelManager.Shared; + +namespace MSFSPopoutPanelManager.DomainModel.Setting +{ + public class ApplicationSetting : ObservableObject + { + public ApplicationSetting() + { + GeneralSetting = new GeneralSetting(); + AutoPopOutSetting = new AutoPopOutSetting(); + PopOutSetting = new PopOutSetting(); + RefocusSetting = new RefocusSetting(); + TouchSetting = new TouchSetting(); + TrackIRSetting = new TrackIRSetting(); + WindowedModeSetting = new WindowedModeSetting(); + SystemSetting = new SystemSetting(); + + InitializeChildPropertyChangeBinding(); + } + + public GeneralSetting GeneralSetting { get; set; } + + public AutoPopOutSetting AutoPopOutSetting { get; set; } + + public PopOutSetting PopOutSetting { get; set; } + + public RefocusSetting RefocusSetting { get; set; } + + public TouchSetting TouchSetting { get; set; } + + public TrackIRSetting TrackIRSetting { get; set; } + + public WindowedModeSetting WindowedModeSetting { get; set; } + + public SystemSetting SystemSetting { get; set; } + } +} diff --git a/DomainModel/Setting/AutoPanning.cs b/DomainModel/Setting/AutoPanning.cs new file mode 100644 index 0000000..7c217e4 --- /dev/null +++ b/DomainModel/Setting/AutoPanning.cs @@ -0,0 +1,17 @@ +using MSFSPopoutPanelManager.Shared; + +namespace MSFSPopoutPanelManager.DomainModel.Setting +{ + public class AutoPanning : ObservableObject + { + public AutoPanning() + { + IsEnabled = true; + KeyBinding = "0"; + } + + public bool IsEnabled { get; set; } + + public string KeyBinding { get; set; } + } +} diff --git a/DomainModel/Setting/AutoPopOutSetting.cs b/DomainModel/Setting/AutoPopOutSetting.cs new file mode 100644 index 0000000..3877d89 --- /dev/null +++ b/DomainModel/Setting/AutoPopOutSetting.cs @@ -0,0 +1,17 @@ +using MSFSPopoutPanelManager.Shared; + +namespace MSFSPopoutPanelManager.DomainModel.Setting +{ + public class AutoPopOutSetting : ObservableObject + { + public AutoPopOutSetting() + { + IsEnabled = true; + ReadyToFlyDelay = 3; + } + + public bool IsEnabled { get; set; } + + public int ReadyToFlyDelay { get; set; } + } +} diff --git a/DomainModel/Setting/GeneralSetting.cs b/DomainModel/Setting/GeneralSetting.cs new file mode 100644 index 0000000..6ef5d11 --- /dev/null +++ b/DomainModel/Setting/GeneralSetting.cs @@ -0,0 +1,45 @@ +using MSFSPopoutPanelManager.Shared; +using Newtonsoft.Json; + +namespace MSFSPopoutPanelManager.DomainModel.Setting +{ + public class GeneralSetting : ObservableObject + { + public GeneralSetting() + { + AlwaysOnTop = true; + MinimizeToTray = false; + StartMinimized = false; + AutoClose = true; + CheckForUpdate = true; + + InitializeChildPropertyChangeBinding(); + } + + public bool AlwaysOnTop { get; set; } + + public bool AutoClose { get; set; } + + public bool MinimizeToTray { get; set; } + + public bool StartMinimized { get; set; } + + public bool CheckForUpdate { get; set; } + + [JsonIgnore, IgnorePropertyChanged] + public bool AutoStart + { + get + { + return AppAutoStart.CheckIsAutoStart(); + } + set + { + if (value) + AppAutoStart.Activate(); + else + AppAutoStart.Deactivate(); + } + } + } +} diff --git a/DomainModel/Setting/PopOutSetting.cs b/DomainModel/Setting/PopOutSetting.cs new file mode 100644 index 0000000..2947a62 --- /dev/null +++ b/DomainModel/Setting/PopOutSetting.cs @@ -0,0 +1,38 @@ +using MSFSPopoutPanelManager.Shared; + +namespace MSFSPopoutPanelManager.DomainModel.Setting +{ + public class PopOutSetting : ObservableObject + { + public PopOutSetting() + { + MinimizeDuringPopOut = true; + MinimizeAfterPopOut = false; + UseLeftRightControlToPopOut = false; + AutoActivePause = false; + + AfterPopOutCameraView = new AfterPopOutCameraView(); + AutoPanning = new AutoPanning(); + PopOutTitleBarCustomization = new PopOutTitleBarCustomization(); + EnablePanelResetWhenLocked = true; + + InitializeChildPropertyChangeBinding(); + } + + public AutoPanning AutoPanning { get; set; } + + public AfterPopOutCameraView AfterPopOutCameraView { get; set; } + + public bool MinimizeDuringPopOut { get; set; } + + public bool MinimizeAfterPopOut { get; set; } + + public bool UseLeftRightControlToPopOut { get; set; } + + public bool EnablePanelResetWhenLocked { get; set; } + + public bool AutoActivePause { get; set; } + + public PopOutTitleBarCustomization PopOutTitleBarCustomization { get; set; } + }; +} diff --git a/DomainModel/Setting/PopOutTitleBarCustomization.cs b/DomainModel/Setting/PopOutTitleBarCustomization.cs new file mode 100644 index 0000000..a925460 --- /dev/null +++ b/DomainModel/Setting/PopOutTitleBarCustomization.cs @@ -0,0 +1,15 @@ +namespace MSFSPopoutPanelManager.DomainModel.Setting +{ + public class PopOutTitleBarCustomization + { + public PopOutTitleBarCustomization() + { + IsEnabled = false; + HexColor = "000000"; + } + + public bool IsEnabled { get; set; } + + public string HexColor { get; set; } + } +} diff --git a/DomainModel/Setting/RefocusGameWindow.cs b/DomainModel/Setting/RefocusGameWindow.cs new file mode 100644 index 0000000..45e7866 --- /dev/null +++ b/DomainModel/Setting/RefocusGameWindow.cs @@ -0,0 +1,17 @@ +using MSFSPopoutPanelManager.Shared; + +namespace MSFSPopoutPanelManager.DomainModel.Setting +{ + public class RefocusGameWindow : ObservableObject + { + public RefocusGameWindow() + { + IsEnabled = true; + Delay = 1; + } + + public bool IsEnabled { get; set; } + + public double Delay { get; set; } + } +} diff --git a/DomainModel/Setting/RefocusSetting.cs b/DomainModel/Setting/RefocusSetting.cs new file mode 100644 index 0000000..14cfaac --- /dev/null +++ b/DomainModel/Setting/RefocusSetting.cs @@ -0,0 +1,16 @@ +using MSFSPopoutPanelManager.Shared; + +namespace MSFSPopoutPanelManager.DomainModel.Setting +{ + public class RefocusSetting : ObservableObject + { + public RefocusSetting() + { + RefocusGameWindow = new RefocusGameWindow(); + + InitializeChildPropertyChangeBinding(); + } + + public RefocusGameWindow RefocusGameWindow { get; set; } + } +} diff --git a/DomainModel/Setting/SystemSetting.cs b/DomainModel/Setting/SystemSetting.cs new file mode 100644 index 0000000..d24da04 --- /dev/null +++ b/DomainModel/Setting/SystemSetting.cs @@ -0,0 +1,18 @@ +using MSFSPopoutPanelManager.Shared; +using System; + +namespace MSFSPopoutPanelManager.DomainModel.Setting +{ + public class SystemSetting : ObservableObject + { + public SystemSetting() + { + LastUsedProfileId = Guid.Empty; + AutoUpdaterUrl = "https://raw.githubusercontent.com/hawkeye-stan/msfs-popout-panel-manager/master/autoupdate.xml"; + } + + public string AutoUpdaterUrl { get; set; } + + public Guid LastUsedProfileId { get; set; } + } +} diff --git a/DomainModel/Setting/TouchSetting.cs b/DomainModel/Setting/TouchSetting.cs new file mode 100644 index 0000000..fece8c1 --- /dev/null +++ b/DomainModel/Setting/TouchSetting.cs @@ -0,0 +1,14 @@ +using MSFSPopoutPanelManager.Shared; + +namespace MSFSPopoutPanelManager.DomainModel.Setting +{ + public class TouchSetting : ObservableObject + { + public TouchSetting() + { + TouchDownUpDelay = 0; + } + + public int TouchDownUpDelay { get; set; } + } +} diff --git a/DomainModel/Setting/TrackIRSetting.cs b/DomainModel/Setting/TrackIRSetting.cs new file mode 100644 index 0000000..2dbf12f --- /dev/null +++ b/DomainModel/Setting/TrackIRSetting.cs @@ -0,0 +1,14 @@ +using MSFSPopoutPanelManager.Shared; + +namespace MSFSPopoutPanelManager.DomainModel.Setting +{ + public class TrackIRSetting : ObservableObject + { + public TrackIRSetting() + { + AutoDisableTrackIR = true; + } + + public bool AutoDisableTrackIR { get; set; } + } +} diff --git a/DomainModel/Setting/WindowedModeSetting.cs b/DomainModel/Setting/WindowedModeSetting.cs new file mode 100644 index 0000000..7e931a6 --- /dev/null +++ b/DomainModel/Setting/WindowedModeSetting.cs @@ -0,0 +1,14 @@ +using MSFSPopoutPanelManager.Shared; + +namespace MSFSPopoutPanelManager.DomainModel.Setting +{ + public class WindowedModeSetting : ObservableObject + { + public WindowedModeSetting() + { + AutoResizeMsfsGameWindow = true; + } + + public bool AutoResizeMsfsGameWindow { get; set; } + } +} diff --git a/DomainModel/SimConnect/HudBarData737.cs b/DomainModel/SimConnect/HudBarData737.cs new file mode 100644 index 0000000..871ff21 --- /dev/null +++ b/DomainModel/SimConnect/HudBarData737.cs @@ -0,0 +1,94 @@ +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.Shared; +using System; +using System.Reflection; + +namespace MSFSPopoutPanelManager.DomainModel.SimConnect +{ + public class HudBarData737 : ObservableObject, IHudBarData + { + public HudBarType HudBarType => HudBarType.PMDG_737; + + public double ElevatorTrim { get; set; } + + public double AileronTrim { get; set; } + + public double RudderTrim { get; set; } + + public double Flap { get; set; } + + public double ParkingBrake { get; set; } + + public double GearLeft { get; set; } + + public double GearCenter { get; set; } + + public double GearRight { get; set; } + + public double SimRate { get; set; } + + public string ElevatorTrimFormatted => Math.Round(ElevatorTrim / 10, 2).ToString("F2"); + + public string AileronTrimFormatted => Math.Round(AileronTrim / 16384 * 57, 2).ToString("F2"); + + public string RudderTrimFormatted => Math.Round(RudderTrim * 2 * 10, 2).ToString("F2"); + + public string FlapFormatted => MapFlap(Flap); + + public string ParkingBrakeFormatted => ParkingBrake > 0 ? "Engaged" : "Disengaged"; + + public string GearLeftFormatted => MapGear(GearLeft); + + public string GearCenterFormatted => MapGear(GearCenter); + + public string GearRightFormatted => MapGear(GearRight); + + private string MapFlap(double flap) + { + switch (Convert.ToInt32(flap)) + { + case 0: + return "0"; + case 1: + return "1"; + case 2: + return "2"; + case 3: + return "5"; + case 4: + return "10"; + case 5: + return "15"; + case 6: + return "25"; + case 7: + return "30"; + case 8: + return "40"; + default: + return "5"; + } + } + + private string MapGear(double gear) + { + if (gear == 100) + return "DOWN"; + if (gear == 0) + return "UP"; + + return "MOVING"; + } + + public void Clear() + { + Type type = this.GetType(); + PropertyInfo[] properties = type.GetProperties(); + for (int i = 0; i < properties.Length; ++i) + { + if (properties[i].SetMethod != null) + properties[i].SetValue(this, 0); + } + } + } +} diff --git a/DomainModel/SimConnect/HudBarDataGeneric.cs b/DomainModel/SimConnect/HudBarDataGeneric.cs new file mode 100644 index 0000000..c0efdbf --- /dev/null +++ b/DomainModel/SimConnect/HudBarDataGeneric.cs @@ -0,0 +1,67 @@ +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.Shared; +using System; +using System.Reflection; + +namespace MSFSPopoutPanelManager.DomainModel.SimConnect +{ + public class HudBarDataGeneric : ObservableObject, IHudBarData + { + public HudBarType HudBarType => HudBarType.Generic_Aircraft; + + public double ElevatorTrim { get; set; } + + public double AileronTrim { get; set; } + + public double RudderTrim { get; set; } + + public double Flap { get; set; } + + public double ParkingBrake { get; set; } + + public double GearLeft { get; set; } + + public double GearCenter { get; set; } + + public double GearRight { get; set; } + + public double SimRate { get; set; } + + public string ElevatorTrimFormatted => Math.Round(ElevatorTrim / 10, 2).ToString("F2"); + + public string AileronTrimFormatted => Math.Round(AileronTrim / 16384 * 57, 2).ToString("F2"); + + public string RudderTrimFormatted => Math.Round(RudderTrim * 2 * 10, 2).ToString("F2"); + + public string FlapFormatted => Flap.ToString("F0"); + + public string ParkingBrakeFormatted => ParkingBrake > 0 ? "Engaged" : "Disengaged"; + + public string GearLeftFormatted => MapGear(GearLeft); + + public string GearCenterFormatted => MapGear(GearCenter); + + public string GearRightFormatted => MapGear(GearRight); + + private string MapGear(double gear) + { + if (gear == 100) + return "DOWN"; + if (gear == 0) + return "UP"; + + return "MOVING"; + } + + public void Clear() + { + Type type = this.GetType(); + PropertyInfo[] properties = type.GetProperties(); + for (int i = 0; i < properties.Length; ++i) + { + if (properties[i].SetMethod != null) + properties[i].SetValue(this, 0); + } + } + } +} diff --git a/DomainModel/SimConnect/IHudBarData.cs b/DomainModel/SimConnect/IHudBarData.cs new file mode 100644 index 0000000..6da2d57 --- /dev/null +++ b/DomainModel/SimConnect/IHudBarData.cs @@ -0,0 +1,45 @@ +using MSFSPopoutPanelManager.DomainModel.Profile; + +namespace MSFSPopoutPanelManager.DomainModel.SimConnect +{ + public interface IHudBarData + { + public HudBarType HudBarType { get; } + + public double ElevatorTrim { get; set; } + + public double AileronTrim { get; set; } + + public double RudderTrim { get; set; } + + public double Flap { get; set; } + + public double ParkingBrake { get; set; } + + public double GearLeft { get; set; } + + public double GearCenter { get; set; } + + public double GearRight { get; set; } + + public double SimRate { get; set; } + + public string ParkingBrakeFormatted { get; } + + public string GearLeftFormatted { get; } + + public string GearCenterFormatted { get; } + + public string GearRightFormatted { get; } + + public string ElevatorTrimFormatted { get; } + + public string AileronTrimFormatted { get; } + + public string RudderTrimFormatted { get; } + + public string FlapFormatted { get; } + + public void Clear(); + } +} diff --git a/GETTING_STARTED.md b/GETTING_STARTED.md new file mode 100644 index 0000000..3d93ace --- /dev/null +++ b/GETTING_STARTED.md @@ -0,0 +1,117 @@ +# GETTING STARTED + +In this tutorial, you'll be adding 3 pop out panels for the aircraft TBM 930. Two of the panels is display only (PFD and MFD) and the third is a touch screen pop out (GTC 580). + +To get started, launch MSFS Pop Out Panel Manager and then start MSFS. When you are at the main menu select TBM 930 as your aircraft. You do not have to start a flight session yet. Back to Pop Out Panel Manager, you should see the following screen and you can click the Add Profile button to add your first aircraft profile. + +
+

+ +

+ +
+
+
+ +Type the name for the new aircraft profile "TBM 930" and click Accept. + +
+

+ +

+ +
+
+
+ +Since your current in game aircraft is TBM 930, once the new profile is added, your selected active in-game aircraft will automatically bind this profile (in green color). This binding will allow Pop Out Panel Manager to automatically switch to this profile when you switch to TBM 930 aicraft in the game. Only one profile can be bound to an in-game aircraft at a time and you can unbind aircraft at any time. Next click the Add Pop Out Panel button 3 times to add 3 panels to this profile. + +
+

+ +

+ +
+
+
+ +Once the 3 panels are added, enter a descriptive name for each of the 3 panels. When you're still in the game's main menu, Identify Source Panel Location button for the 3 panels will not be available. You will now need to start a flight with the TBM 930 aircraft. Please go to world map, pick an airport and start a flight. Once you're in a flight, the Identify Source Panel Location button will be enable. + +
+

+ +

+ +
+
+
+ +Next, click the Identify Source Panel Location button one at a time. After each click of the button, left click on the game screen at the corresponding instrumentation panel in game to each of the pop out panel definition. A circle will appear to match the pop out panel circle color. If you need to adjust the color circle placement, just left click and drag the circle to new location. You can also zoom in and out of the cockpit view using your mouse wheel so you can see more in-game panels at a time. + +
+

+ +

+ +
+
+
+ +Once you're satified with the color circles placement, click the Toggle Edit Source Panel Location button (the green target icon). This will end the source panel configuration and will save the current camera angle and your game window size (if using Windowed mode) to be recalled later to be used when popping out panels. The Start Pop Out button should now be enabled. Click this button and start the pop out process. If Pop Out Panel Manager app window is overlapping your selected instrumentation panels, don't worry, the app will relocate itself when simulating the in-game pop out keystrokes. You should also see a progress window indicating Pop Out Manager is in process of configuring and popping out panels. + +
+

+ +

+ +
+
+
+ +Once the process has been completed successfully, you should see all 3 panels appear at the upper left corner of the game screen. All 3 pop out panels definition will now have green border showing everything is working. You can then configure the panel by: + +* Changing the top, left, width, and height by entering a number +* Use the up/down arrow next to each property and a pop out box will allow you to change the property by 1 or 10 pixels at a time. +* For the fastest way, click the Move and Resize Panel icon, this will allow you to use keyboard shortcuts to adjust the panel. Please see help section of the app for keyboard commands (click the question mark icon at the upper right corner of the app). + +In this tutorial, since the 3rd panel is a touch enable panel (GTC 580). You can click the hand icon for this panel to activate touch support. + +Once you've completed all panel configurations, please click the Lock icon to lock this profile from accidental changes. + +
+
+

+ +

+ +
+
+
+ +If you encounter any error during pop out, the panel with error will have a red border. You can click the Red Exclaimation mark icon for help to resolve the error. In this tutorial, the problem is the source panel blue circle for this particular pop out is not within the in-game instrumentation panel area. To fix this, click the Toggle Edit Source Panel button, and then use your mouse to drag and move the blue circle to a location within the GTC 580 panel. Finally, click the Toggle Edit Source Panel button again to save the changes. Now click Start Pop Out and the error should be resolved. + +Tip #1: If you have trouble finding the number circle on screen or figuring out the color circle you're dragging corresponding to which pop out panel, you can left click and hold either the pop out panel source target icon or the color circle itself and find the corresponding pop out panel or color circle. + +Tip #2: Hovering your mouse on any input element may provide tool tip to further explain the function of each icon or action. + +Tip #3: Sometimes, you may encounter issue in MSFS that certain panel does not pop out correctly. You can try changing the order in how Pop Out Panel Manager launching the pop out by reording the pop out panel definition using mosue drag and drop. You can click and drag to arrange pop out panel definitions to new sequence. + +
+

+ +

+ +
+
+
+ +An additional feature for Pop Out Panel Manager is you can add and manage built-in panels from the toolbar such as Checklist, ATC, Weather panel. One use case is you can place a panel such as ATC on a touch screen, configure the panel to be touch enabled, and operate this panel using touch. + +To do this, first check the Include in-game menu bar panels option for the profile. The built-in panels themselves have to be opened manually and popped out first. Currently, Pop Out Panel Manager do not have a way to control built-in panel. Luckily, MSFS will remember these built-in panels opened and popped out state. As long as you don't close them during your flight session, they will be reopened and popped out the next time when you start a flight. + +In this tutorial, when you have ATC built-in panel opened and popped out, click Start Pop Out button. A new entry for ATC is then added to the profile. You can configure its size and location and touch capability like any other pop out panel. + +
+

+ +

\ No newline at end of file diff --git a/MSFSPopoutPanelManager.sln b/MSFSPopoutPanelManager.sln index 1f3f5cc..145c818 100644 --- a/MSFSPopoutPanelManager.sln +++ b/MSFSPopoutPanelManager.sln @@ -3,118 +3,144 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.2.32602.215 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WpfApp", "WpfApp\WpfApp.csproj", "{54712A0A-B344-45E4-85C4-0A913305A0E6}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Shared", "Shared\Shared.csproj", "{4BDDE1F9-FBDD-479A-B88E-B27D0513C046}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{15FC98CD-0A69-437B-A5E5-67D025DB5CDC}" ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig .gitignore = .gitignore autoupdate.xml = autoupdate.xml - latestreleasenotes.txt = latestreleasenotes.txt + GETTING_STARTED.md = GETTING_STARTED.md LICENSE = LICENSE README.md = README.md + RELEASENOTES.md = RELEASENOTES.md + rollback.xml = rollback.xml VERSION.md = VERSION.md EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WindowsAgent", "WindowsAgent\WindowsAgent.csproj", "{BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ArduinoAgent", "ArduinoAgent\ArduinoAgent.csproj", "{E72F813F-EE30-4384-B02F-EB5D4BCFEC49}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SimconnectAgent", "SimconnectAgent\SimconnectAgent.csproj", "{1BBF7803-BA8D-4AEF-8319-061E93AE5F3D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebServer", "WebServer\WebServer.csproj", "{D20EA590-22C2-4F93-AC25-AF6960F97E03}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UserDataAgent", "UserDataAgent\UserDataAgent.csproj", "{677B6DF0-8E19-4B08-8480-F7C365B6BB89}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Orchestration", "Orchestration\Orchestration.csproj", "{9CD4014F-B3EA-4E67-9329-9679931E2688}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TouchPanelAgent", "TouchPanelAgent\TouchPanelAgent.csproj", "{2F36A227-C92C-4B42-B1E4-480015492357}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MainApp", "MainApp\MainApp.csproj", "{5EEA1D18-3036-4A9F-876C-45DE2AC9F247}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DomainModel", "DomainModel\DomainModel.csproj", "{602CA4F9-B6AE-4500-A52F-082D47CB1F9A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "assets", "assets", "{143369CD-7A52-43A0-9364-41A46A645B05}" + ProjectSection(SolutionItems) = preProject + assets\logo.png = assets\logo.png + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "readme", "readme", "{71539661-D87F-46E3-82F2-2608B5AF74BA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "images", "images", "{FF7DD7EF-43C5-4E7C-8283-1087F51935F9}" + ProjectSection(SolutionItems) = preProject + assets\readme\images\app.png = assets\readme\images\app.png + assets\readme\images\gettingstarted1.png = assets\readme\images\gettingstarted1.png + assets\readme\images\gettingstarted2.png = assets\readme\images\gettingstarted2.png + assets\readme\images\gettingstarted3.png = assets\readme\images\gettingstarted3.png + assets\readme\images\gettingstarted4.png = assets\readme\images\gettingstarted4.png + assets\readme\images\gettingstarted5.png = assets\readme\images\gettingstarted5.png + assets\readme\images\gettingstarted6.png = assets\readme\images\gettingstarted6.png + assets\readme\images\gettingstarted7.png = assets\readme\images\gettingstarted7.png + assets\readme\images\gettingstarted8.png = assets\readme\images\gettingstarted8.png + assets\readme\images\gettingstarted9.png = assets\readme\images\gettingstarted9.png + assets\readme\images\rollback.png = assets\readme\images\rollback.png + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU Debug|x64 = Debug|x64 - DebugTouchPanel|x64 = DebugTouchPanel|x64 + Local|Any CPU = Local|Any CPU + Local|x64 = Local|x64 + Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 - ReleaseTouchPanel|x64 = ReleaseTouchPanel|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {54712A0A-B344-45E4-85C4-0A913305A0E6}.Debug|x64.ActiveCfg = Debug|x64 - {54712A0A-B344-45E4-85C4-0A913305A0E6}.Debug|x64.Build.0 = Debug|x64 - {54712A0A-B344-45E4-85C4-0A913305A0E6}.DebugTouchPanel|x64.ActiveCfg = DebugTouchPanel|x64 - {54712A0A-B344-45E4-85C4-0A913305A0E6}.DebugTouchPanel|x64.Build.0 = DebugTouchPanel|x64 - {54712A0A-B344-45E4-85C4-0A913305A0E6}.Release|x64.ActiveCfg = Release|x64 - {54712A0A-B344-45E4-85C4-0A913305A0E6}.Release|x64.Build.0 = Release|x64 - {54712A0A-B344-45E4-85C4-0A913305A0E6}.ReleaseTouchPanel|x64.ActiveCfg = ReleaseTouchPanel|x64 - {54712A0A-B344-45E4-85C4-0A913305A0E6}.ReleaseTouchPanel|x64.Build.0 = ReleaseTouchPanel|x64 + {4BDDE1F9-FBDD-479A-B88E-B27D0513C046}.Debug|Any CPU.ActiveCfg = Debug|x64 + {4BDDE1F9-FBDD-479A-B88E-B27D0513C046}.Debug|Any CPU.Build.0 = Debug|x64 {4BDDE1F9-FBDD-479A-B88E-B27D0513C046}.Debug|x64.ActiveCfg = Debug|x64 {4BDDE1F9-FBDD-479A-B88E-B27D0513C046}.Debug|x64.Build.0 = Debug|x64 - {4BDDE1F9-FBDD-479A-B88E-B27D0513C046}.DebugTouchPanel|x64.ActiveCfg = DebugTouchPanel|x64 - {4BDDE1F9-FBDD-479A-B88E-B27D0513C046}.DebugTouchPanel|x64.Build.0 = DebugTouchPanel|x64 + {4BDDE1F9-FBDD-479A-B88E-B27D0513C046}.Local|Any CPU.ActiveCfg = Local|x64 + {4BDDE1F9-FBDD-479A-B88E-B27D0513C046}.Local|Any CPU.Build.0 = Local|x64 + {4BDDE1F9-FBDD-479A-B88E-B27D0513C046}.Local|x64.ActiveCfg = Local|x64 + {4BDDE1F9-FBDD-479A-B88E-B27D0513C046}.Local|x64.Build.0 = Local|x64 + {4BDDE1F9-FBDD-479A-B88E-B27D0513C046}.Release|Any CPU.ActiveCfg = Release|x64 + {4BDDE1F9-FBDD-479A-B88E-B27D0513C046}.Release|Any CPU.Build.0 = Release|x64 {4BDDE1F9-FBDD-479A-B88E-B27D0513C046}.Release|x64.ActiveCfg = Release|x64 {4BDDE1F9-FBDD-479A-B88E-B27D0513C046}.Release|x64.Build.0 = Release|x64 - {4BDDE1F9-FBDD-479A-B88E-B27D0513C046}.ReleaseTouchPanel|x64.ActiveCfg = ReleaseTouchPanel|x64 - {4BDDE1F9-FBDD-479A-B88E-B27D0513C046}.ReleaseTouchPanel|x64.Build.0 = ReleaseTouchPanel|x64 + {BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}.Debug|Any CPU.ActiveCfg = Debug|x64 + {BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}.Debug|Any CPU.Build.0 = Debug|x64 {BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}.Debug|x64.ActiveCfg = Debug|x64 {BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}.Debug|x64.Build.0 = Debug|x64 - {BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}.DebugTouchPanel|x64.ActiveCfg = DebugTouchPanel|x64 - {BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}.DebugTouchPanel|x64.Build.0 = DebugTouchPanel|x64 - {BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}.Release|x64.ActiveCfg = Release|x64 - {BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}.Release|x64.Build.0 = Release|x64 - {BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}.ReleaseTouchPanel|x64.ActiveCfg = ReleaseTouchPanel|x64 - {BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}.ReleaseTouchPanel|x64.Build.0 = ReleaseTouchPanel|x64 - {E72F813F-EE30-4384-B02F-EB5D4BCFEC49}.Debug|x64.ActiveCfg = Debug|x64 - {E72F813F-EE30-4384-B02F-EB5D4BCFEC49}.Debug|x64.Build.0 = Debug|x64 - {E72F813F-EE30-4384-B02F-EB5D4BCFEC49}.DebugTouchPanel|x64.ActiveCfg = DebugTouchPanel|x64 - {E72F813F-EE30-4384-B02F-EB5D4BCFEC49}.DebugTouchPanel|x64.Build.0 = DebugTouchPanel|x64 - {E72F813F-EE30-4384-B02F-EB5D4BCFEC49}.Release|x64.ActiveCfg = Release|x64 - {E72F813F-EE30-4384-B02F-EB5D4BCFEC49}.Release|x64.Build.0 = Release|x64 - {E72F813F-EE30-4384-B02F-EB5D4BCFEC49}.ReleaseTouchPanel|x64.ActiveCfg = ReleaseTouchPanel|x64 - {E72F813F-EE30-4384-B02F-EB5D4BCFEC49}.ReleaseTouchPanel|x64.Build.0 = ReleaseTouchPanel|x64 + {BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}.Local|Any CPU.ActiveCfg = Local|x64 + {BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}.Local|Any CPU.Build.0 = Local|x64 + {BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}.Local|x64.ActiveCfg = Local|x64 + {BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}.Local|x64.Build.0 = Local|x64 + {BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}.Release|Any CPU.ActiveCfg = Release|x64 + {BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}.Release|Any CPU.Build.0 = Release|x64 + {BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}.Release|x64.ActiveCfg = Debug|x64 + {BDD878A3-EF5B-43C7-94B7-CEFA04C67A9E}.Release|x64.Build.0 = Debug|x64 + {1BBF7803-BA8D-4AEF-8319-061E93AE5F3D}.Debug|Any CPU.ActiveCfg = Debug|x64 + {1BBF7803-BA8D-4AEF-8319-061E93AE5F3D}.Debug|Any CPU.Build.0 = Debug|x64 {1BBF7803-BA8D-4AEF-8319-061E93AE5F3D}.Debug|x64.ActiveCfg = Debug|x64 {1BBF7803-BA8D-4AEF-8319-061E93AE5F3D}.Debug|x64.Build.0 = Debug|x64 - {1BBF7803-BA8D-4AEF-8319-061E93AE5F3D}.DebugTouchPanel|x64.ActiveCfg = DebugTouchPanel|x64 - {1BBF7803-BA8D-4AEF-8319-061E93AE5F3D}.DebugTouchPanel|x64.Build.0 = DebugTouchPanel|x64 + {1BBF7803-BA8D-4AEF-8319-061E93AE5F3D}.Local|Any CPU.ActiveCfg = Local|x64 + {1BBF7803-BA8D-4AEF-8319-061E93AE5F3D}.Local|Any CPU.Build.0 = Local|x64 + {1BBF7803-BA8D-4AEF-8319-061E93AE5F3D}.Local|x64.ActiveCfg = Local|x64 + {1BBF7803-BA8D-4AEF-8319-061E93AE5F3D}.Local|x64.Build.0 = Local|x64 + {1BBF7803-BA8D-4AEF-8319-061E93AE5F3D}.Release|Any CPU.ActiveCfg = Release|x64 + {1BBF7803-BA8D-4AEF-8319-061E93AE5F3D}.Release|Any CPU.Build.0 = Release|x64 {1BBF7803-BA8D-4AEF-8319-061E93AE5F3D}.Release|x64.ActiveCfg = Release|x64 {1BBF7803-BA8D-4AEF-8319-061E93AE5F3D}.Release|x64.Build.0 = Release|x64 - {1BBF7803-BA8D-4AEF-8319-061E93AE5F3D}.ReleaseTouchPanel|x64.ActiveCfg = ReleaseTouchPanel|x64 - {1BBF7803-BA8D-4AEF-8319-061E93AE5F3D}.ReleaseTouchPanel|x64.Build.0 = ReleaseTouchPanel|x64 - {D20EA590-22C2-4F93-AC25-AF6960F97E03}.Debug|x64.ActiveCfg = Debug|x64 - {D20EA590-22C2-4F93-AC25-AF6960F97E03}.Debug|x64.Build.0 = Debug|x64 - {D20EA590-22C2-4F93-AC25-AF6960F97E03}.DebugTouchPanel|x64.ActiveCfg = DebugTouchPanel|x64 - {D20EA590-22C2-4F93-AC25-AF6960F97E03}.DebugTouchPanel|x64.Build.0 = DebugTouchPanel|x64 - {D20EA590-22C2-4F93-AC25-AF6960F97E03}.Release|x64.ActiveCfg = Release|x64 - {D20EA590-22C2-4F93-AC25-AF6960F97E03}.Release|x64.Build.0 = Release|x64 - {D20EA590-22C2-4F93-AC25-AF6960F97E03}.ReleaseTouchPanel|x64.ActiveCfg = ReleaseTouchPanel|x64 - {D20EA590-22C2-4F93-AC25-AF6960F97E03}.ReleaseTouchPanel|x64.Build.0 = ReleaseTouchPanel|x64 - {677B6DF0-8E19-4B08-8480-F7C365B6BB89}.Debug|x64.ActiveCfg = Debug|x64 - {677B6DF0-8E19-4B08-8480-F7C365B6BB89}.Debug|x64.Build.0 = Debug|x64 - {677B6DF0-8E19-4B08-8480-F7C365B6BB89}.DebugTouchPanel|x64.ActiveCfg = DebugTouchPanel|x64 - {677B6DF0-8E19-4B08-8480-F7C365B6BB89}.DebugTouchPanel|x64.Build.0 = DebugTouchPanel|x64 - {677B6DF0-8E19-4B08-8480-F7C365B6BB89}.Release|x64.ActiveCfg = Release|x64 - {677B6DF0-8E19-4B08-8480-F7C365B6BB89}.Release|x64.Build.0 = Release|x64 - {677B6DF0-8E19-4B08-8480-F7C365B6BB89}.ReleaseTouchPanel|x64.ActiveCfg = ReleaseTouchPanel|x64 - {677B6DF0-8E19-4B08-8480-F7C365B6BB89}.ReleaseTouchPanel|x64.Build.0 = ReleaseTouchPanel|x64 + {9CD4014F-B3EA-4E67-9329-9679931E2688}.Debug|Any CPU.ActiveCfg = Debug|x64 + {9CD4014F-B3EA-4E67-9329-9679931E2688}.Debug|Any CPU.Build.0 = Debug|x64 {9CD4014F-B3EA-4E67-9329-9679931E2688}.Debug|x64.ActiveCfg = Debug|x64 {9CD4014F-B3EA-4E67-9329-9679931E2688}.Debug|x64.Build.0 = Debug|x64 - {9CD4014F-B3EA-4E67-9329-9679931E2688}.DebugTouchPanel|x64.ActiveCfg = DebugTouchPanel|x64 - {9CD4014F-B3EA-4E67-9329-9679931E2688}.DebugTouchPanel|x64.Build.0 = DebugTouchPanel|x64 + {9CD4014F-B3EA-4E67-9329-9679931E2688}.Local|Any CPU.ActiveCfg = Local|x64 + {9CD4014F-B3EA-4E67-9329-9679931E2688}.Local|Any CPU.Build.0 = Local|x64 + {9CD4014F-B3EA-4E67-9329-9679931E2688}.Local|x64.ActiveCfg = Local|x64 + {9CD4014F-B3EA-4E67-9329-9679931E2688}.Local|x64.Build.0 = Local|x64 + {9CD4014F-B3EA-4E67-9329-9679931E2688}.Release|Any CPU.ActiveCfg = Release|x64 + {9CD4014F-B3EA-4E67-9329-9679931E2688}.Release|Any CPU.Build.0 = Release|x64 {9CD4014F-B3EA-4E67-9329-9679931E2688}.Release|x64.ActiveCfg = Release|x64 {9CD4014F-B3EA-4E67-9329-9679931E2688}.Release|x64.Build.0 = Release|x64 - {9CD4014F-B3EA-4E67-9329-9679931E2688}.ReleaseTouchPanel|x64.ActiveCfg = ReleaseTouchPanel|x64 - {9CD4014F-B3EA-4E67-9329-9679931E2688}.ReleaseTouchPanel|x64.Build.0 = ReleaseTouchPanel|x64 - {2F36A227-C92C-4B42-B1E4-480015492357}.Debug|x64.ActiveCfg = Debug|x64 - {2F36A227-C92C-4B42-B1E4-480015492357}.Debug|x64.Build.0 = Debug|x64 - {2F36A227-C92C-4B42-B1E4-480015492357}.DebugTouchPanel|x64.ActiveCfg = DebugTouchPanel|x64 - {2F36A227-C92C-4B42-B1E4-480015492357}.DebugTouchPanel|x64.Build.0 = DebugTouchPanel|x64 - {2F36A227-C92C-4B42-B1E4-480015492357}.Release|x64.ActiveCfg = Release|x64 - {2F36A227-C92C-4B42-B1E4-480015492357}.Release|x64.Build.0 = Release|x64 - {2F36A227-C92C-4B42-B1E4-480015492357}.ReleaseTouchPanel|x64.ActiveCfg = ReleaseTouchPanel|x64 - {2F36A227-C92C-4B42-B1E4-480015492357}.ReleaseTouchPanel|x64.Build.0 = ReleaseTouchPanel|x64 + {5EEA1D18-3036-4A9F-876C-45DE2AC9F247}.Debug|Any CPU.ActiveCfg = Debug|x64 + {5EEA1D18-3036-4A9F-876C-45DE2AC9F247}.Debug|Any CPU.Build.0 = Debug|x64 + {5EEA1D18-3036-4A9F-876C-45DE2AC9F247}.Debug|x64.ActiveCfg = Debug|x64 + {5EEA1D18-3036-4A9F-876C-45DE2AC9F247}.Debug|x64.Build.0 = Debug|x64 + {5EEA1D18-3036-4A9F-876C-45DE2AC9F247}.Local|Any CPU.ActiveCfg = Release|x64 + {5EEA1D18-3036-4A9F-876C-45DE2AC9F247}.Local|Any CPU.Build.0 = Release|x64 + {5EEA1D18-3036-4A9F-876C-45DE2AC9F247}.Local|x64.ActiveCfg = Release|x64 + {5EEA1D18-3036-4A9F-876C-45DE2AC9F247}.Local|x64.Build.0 = Release|x64 + {5EEA1D18-3036-4A9F-876C-45DE2AC9F247}.Release|Any CPU.ActiveCfg = Release|x64 + {5EEA1D18-3036-4A9F-876C-45DE2AC9F247}.Release|Any CPU.Build.0 = Release|x64 + {5EEA1D18-3036-4A9F-876C-45DE2AC9F247}.Release|x64.ActiveCfg = Release|x64 + {5EEA1D18-3036-4A9F-876C-45DE2AC9F247}.Release|x64.Build.0 = Release|x64 + {602CA4F9-B6AE-4500-A52F-082D47CB1F9A}.Debug|Any CPU.ActiveCfg = Debug|x64 + {602CA4F9-B6AE-4500-A52F-082D47CB1F9A}.Debug|Any CPU.Build.0 = Debug|x64 + {602CA4F9-B6AE-4500-A52F-082D47CB1F9A}.Debug|x64.ActiveCfg = Debug|x64 + {602CA4F9-B6AE-4500-A52F-082D47CB1F9A}.Debug|x64.Build.0 = Debug|x64 + {602CA4F9-B6AE-4500-A52F-082D47CB1F9A}.Local|Any CPU.ActiveCfg = Local|x64 + {602CA4F9-B6AE-4500-A52F-082D47CB1F9A}.Local|Any CPU.Build.0 = Local|x64 + {602CA4F9-B6AE-4500-A52F-082D47CB1F9A}.Local|x64.ActiveCfg = Local|x64 + {602CA4F9-B6AE-4500-A52F-082D47CB1F9A}.Local|x64.Build.0 = Local|x64 + {602CA4F9-B6AE-4500-A52F-082D47CB1F9A}.Release|Any CPU.ActiveCfg = Release|x64 + {602CA4F9-B6AE-4500-A52F-082D47CB1F9A}.Release|Any CPU.Build.0 = Release|x64 + {602CA4F9-B6AE-4500-A52F-082D47CB1F9A}.Release|x64.ActiveCfg = Release|x64 + {602CA4F9-B6AE-4500-A52F-082D47CB1F9A}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {143369CD-7A52-43A0-9364-41A46A645B05} = {15FC98CD-0A69-437B-A5E5-67D025DB5CDC} + {71539661-D87F-46E3-82F2-2608B5AF74BA} = {143369CD-7A52-43A0-9364-41A46A645B05} + {FF7DD7EF-43C5-4E7C-8283-1087F51935F9} = {71539661-D87F-46E3-82F2-2608B5AF74BA} + EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {D1607553-61E8-4ED6-B382-ABA6F6944586} EndGlobalSection diff --git a/MainApp/App.xaml b/MainApp/App.xaml new file mode 100644 index 0000000..6961693 --- /dev/null +++ b/MainApp/App.xaml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + diff --git a/WpfApp/App.xaml.cs b/MainApp/App.xaml.cs similarity index 51% rename from WpfApp/App.xaml.cs rename to MainApp/App.xaml.cs index ee14733..e306e4b 100644 --- a/WpfApp/App.xaml.cs +++ b/MainApp/App.xaml.cs @@ -1,27 +1,81 @@ -using MSFSPopoutPanelManager.Shared; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using MSFSPopoutPanelManager.MainApp.ViewModel; +using MSFSPopoutPanelManager.Orchestration; +using MSFSPopoutPanelManager.Shared; using MSFSPopoutPanelManager.WindowsAgent; using System; using System.Runtime.InteropServices; using System.Threading; using System.Threading.Tasks; using System.Windows; +using System.Windows.Threading; -namespace MSFSPopoutPanelManager.WpfApp +namespace MSFSPopoutPanelManager.MainApp { public partial class App : Application { - private static Mutex _mutex = null; + public static IHost AppHost { get; private set; } - protected override void OnStartup(StartupEventArgs e) + public App() + { + } + + protected override async void OnStartup(StartupEventArgs e) { - // Override default WPF System DPI Awareness to Per Monitor Awareness - // For this to work make sure [assembly:dpiawareness] DpiAwareness.Enable(); + // Must run this first + Initialize(); + + // Setup dependency injections + AppHost = Host.CreateDefaultBuilder() + .ConfigureServices((hostContext, services) => + { + services.AddSingleton(); + + services.AddSingleton(); + services.AddSingleton(s => new OrchestratorUIHelper(s.GetRequiredService())); + + services.AddSingleton(s => new ApplicationViewModel(s.GetRequiredService())); + services.AddSingleton(s => new HelpViewModel(s.GetRequiredService())); + services.AddSingleton(s => new ProfileCardListViewModel(s.GetRequiredService())); + services.AddSingleton(s => new ProfileCardViewModel(s.GetRequiredService())); + services.AddSingleton(s => new TrayIconViewModel(s.GetRequiredService())); + + services.AddTransient(s => new AddProfileViewModel(s.GetRequiredService())); + services.AddTransient(s => new PopOutPanelListViewModel(s.GetRequiredService())); + services.AddTransient(s => new PopOutPanelCardViewModel(s.GetRequiredService())); + services.AddTransient(s => new PanelConfigFieldViewModel(s.GetRequiredService())); + services.AddTransient(s => new PanelCoorOverlayViewModel(s.GetRequiredService())); + + services.AddTransient(s => new MessageWindowViewModel(s.GetRequiredService())); + services.AddTransient(s => new HudBarViewModel(s.GetRequiredService())); + + }).Build(); + + await AppHost!.StartAsync(); + + // Startup window (must come after DPI setup above) + MainWindow = AppHost.Services.GetRequiredService(); + MainWindow.Show(); + + base.OnStartup(e); + + // Setup orchestration UI handler + var orchestrationUIHelper = App.AppHost.Services.GetRequiredService(); + + // Setup message window dialog + var messageWindow = new MessageWindow(); + messageWindow.Show(); + } + + private void Initialize() + { const string appName = "MSFS PopOut Panel Manager"; bool createdNew; - _mutex = new Mutex(true, appName, out createdNew); + var mutex = new Mutex(true, appName, out createdNew); if (!createdNew) { @@ -35,23 +89,19 @@ namespace MSFSPopoutPanelManager.WpfApp TaskScheduler.UnobservedTaskException += HandleTaskSchedulerUnobservedTaskException; AppDomain.CurrentDomain.UnhandledException += HandledDomainException; } - - base.OnStartup(e); } - private void HandleTaskSchedulerUnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e) + private void HandleTaskSchedulerUnobservedTaskException(object? sender, UnobservedTaskExceptionEventArgs e) { FileLogger.WriteException(e.Exception.Message, e.Exception); - //ShowExceptionDialog(); } - private void HandleDispatcherException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) + private void HandleDispatcherException(object sender, DispatcherUnhandledExceptionEventArgs e) { e.Handled = true; if (e.Exception.Message != "E_INVALIDARG") // Ignore this error { FileLogger.WriteException(e.Exception.Message, e.Exception); - //ShowExceptionDialog(); } } @@ -59,23 +109,6 @@ namespace MSFSPopoutPanelManager.WpfApp { var exception = (Exception)e.ExceptionObject; FileLogger.WriteException(exception.Message, exception); - //ShowExceptionDialog(); - } - - private void ShowExceptionDialog() - { - var messageBoxTitle = "MSFS Pop Out Panel Manager - Critical Error!"; - var messageBoxMessage = "Application has encountered a critical error and will be closed.\nPlease see the file 'error.log' for information."; - var messageBoxButtons = MessageBoxButton.OK; - - if (MessageBox.Show(messageBoxMessage, messageBoxTitle, messageBoxButtons) == MessageBoxResult.OK) - { - try - { - Application.Current.Shutdown(); - } - catch { } - } } } diff --git a/MainApp/AppWindow.xaml b/MainApp/AppWindow.xaml new file mode 100644 index 0000000..f1ea820 --- /dev/null +++ b/MainApp/AppWindow.xaml @@ -0,0 +1,162 @@ + + + 28 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MainApp/AppWindow.xaml.cs b/MainApp/AppWindow.xaml.cs new file mode 100644 index 0000000..6b7e3ef --- /dev/null +++ b/MainApp/AppWindow.xaml.cs @@ -0,0 +1,133 @@ +using Microsoft.Extensions.DependencyInjection; +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.MainApp.ViewModel; +using MSFSPopoutPanelManager.WindowsAgent; +using Prism.Commands; +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Documents; +using System.Windows.Interop; + +namespace MSFSPopoutPanelManager.MainApp +{ + public partial class AppWindow : Window + { + private ApplicationViewModel _viewModel; + + // This command has to be here since it doesn't work in view model, window StateChanged never gets fire + public DelegateCommand RestoreWindowCommand => new DelegateCommand(() => { this.WindowState = WindowState.Normal; }, () => { return true; }); + + public AppWindow() + { + _viewModel = App.AppHost.Services.GetRequiredService(); + InitializeComponent(); + Loaded += AppWindow_Loaded; + Closing += AppWindow_Closing; + StateChanged += AppWindow_StateChanged; + WindowActionManager.OnPopOutManagerAlwaysOnTopChanged += (sender, e) => { this.Topmost = e; }; + this.MouseLeftButtonDown += (sender, e) => DragMove(); + } + + private void AppWindow_Loaded(object sender, RoutedEventArgs e) + { + _viewModel.ApplicationHandle = new WindowInteropHelper(Window.GetWindow(this)).Handle; + _viewModel.ApplicationWindow = Application.Current.MainWindow; + _viewModel.Initialize(); + + this.DataContext = _viewModel; + + // Try to fix always on to click through. This won't work for app's title bar since mouseEnter won't be triggered. + // This is super tricky to trick POPM process is MSFS process to avoid Windows OS focus stealing + this.MouseEnter += (sender, e) =>WindowActionManager.SetWindowFocus(WindowProcessManager.GetApplicationProcess().Handle); + } + + private void AppWindow_Closing(object? sender, System.ComponentModel.CancelEventArgs e) + { + e.Cancel = true; + _viewModel.WindowClosing(); + } + + private void AppWindow_StateChanged(object? sender, EventArgs e) + { + switch (this.WindowState) + { + case WindowState.Maximized: + this.ShowInTaskbar = true; + break; + case WindowState.Minimized: + if (_viewModel.AppSettingData.ApplicationSetting.GeneralSetting.MinimizeToTray) + { + SystemTrayIcon.Tray.Visibility = Visibility.Visible; + this.ShowInTaskbar = false; + } + break; + case WindowState.Normal: + SystemTrayIcon.Tray.Visibility = Visibility.Hidden; + this.ShowInTaskbar = true; + + // Fix always on top status once app is minimize and then restore + if (_viewModel.AppSettingData.ApplicationSetting.GeneralSetting.AlwaysOnTop) + WindowActionManager.ApplyAlwaysOnTop(_viewModel.ApplicationHandle, PanelType.PopOutManager, true); + break; + } + } + + private void SettingsButton_Click(object sender, RoutedEventArgs e) + { + this.panelPreferenceDrawer.Children.Clear(); + this.panelPreferenceDrawer.Children.Add(new PreferenceDrawer()); + } + + private void HelpButton_Click(object sender, RoutedEventArgs e) + { + this.panelPreferenceDrawer.Children.Clear(); + this.panelPreferenceDrawer.Children.Add(new HelpDrawer()); + } + + private void BtnMinimize_Click(object sender, RoutedEventArgs e) + { + this.WindowState = WindowState.Minimized; + } + + private void BtnClose_Click(object sender, RoutedEventArgs e) + { + this.Close(); + } + + //private void _viewModel_OnStatusMessageUpdated(object sender, (List, int) e) + //{ + // var (messages, duration) = e; + + // if (messages == null) + // return; + + // TextBlockMessage.Inlines.Clear(); + + // foreach (var run in messages) + // TextBlockMessage.Inlines.Add(run); + + // var lastRun = TextBlockMessage.Inlines.LastInline; + + // if (lastRun != null && ((Run)lastRun).Text == Environment.NewLine) + // TextBlockMessage.Inlines.Remove(lastRun); + + // ScrollViewerMessageBar.ScrollToEnd(); + + // if (duration != -1) + // { + // Task.Run(() => + // { + // Thread.Sleep(duration * 1000); + + // Application.Current.Dispatcher.Invoke(() => + // { + // TextBlockMessage.Inlines.Clear(); + // }); + // }); + // } + //} + } +} diff --git a/WpfApp/AssemblyInfo.cs b/MainApp/AssemblyInfo.cs similarity index 99% rename from WpfApp/AssemblyInfo.cs rename to MainApp/AssemblyInfo.cs index de57ee8..1dd7f05 100644 --- a/WpfApp/AssemblyInfo.cs +++ b/MainApp/AssemblyInfo.cs @@ -10,3 +10,4 @@ using System.Windows.Media; //(used if a resource is not found in the page, // app, or any theme specific resource dictionaries) )] + diff --git a/MainApp/Converter/InverseBooleanOrConverter.cs b/MainApp/Converter/InverseBooleanOrConverter.cs new file mode 100644 index 0000000..c8933eb --- /dev/null +++ b/MainApp/Converter/InverseBooleanOrConverter.cs @@ -0,0 +1,28 @@ +using System; +using System.Windows.Data; + +namespace MSFSPopoutPanelManager.MainApp +{ + public class InverseBooleanOrConverter : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + if (values.LongLength > 0) + { + foreach (var value in values) + { + if (value is bool && (bool)value) + { + return false; + } + } + } + return true; + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture) + { + return new object[] { false }; + } + } +} diff --git a/MainApp/CustomControl/FontSizeConverter.cs b/MainApp/CustomControl/FontSizeConverter.cs new file mode 100644 index 0000000..c9577bb --- /dev/null +++ b/MainApp/CustomControl/FontSizeConverter.cs @@ -0,0 +1,20 @@ +using System; +using System.Globalization; +using System.Windows.Data; + +namespace MSFSPopoutPanelManager.MainApp.CustomControl +{ + public class FontSizeConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + double v = (double)value; + return v * 0.6; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/MainApp/CustomControl/NumericUpDown.cs b/MainApp/CustomControl/NumericUpDown.cs new file mode 100644 index 0000000..f4eafa3 --- /dev/null +++ b/MainApp/CustomControl/NumericUpDown.cs @@ -0,0 +1,216 @@ +using System; +using System.Linq; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Input; + +namespace MSFSPopoutPanelManager.MainApp.CustomControl +{ + [TemplatePart(Name = "PART_TextBox", Type = typeof(TextBox))] + [TemplatePart(Name = "PART_ButtonUp", Type = typeof(ButtonBase))] + [TemplatePart(Name = "PART_ButtonDown", Type = typeof(ButtonBase))] + public class NumericUpDown : Control + { + private TextBox PART_TextBox = new TextBox(); + + public override void OnApplyTemplate() + { + base.OnApplyTemplate(); + + TextBox? textBox = GetTemplateChild("PART_TextBox") as TextBox; + if (textBox != null) + { + PART_TextBox = textBox; + PART_TextBox.PreviewKeyDown += textBox_PreviewKeyDown; + PART_TextBox.TextChanged += textBox_TextChanged; + PART_TextBox.Text = Value.ToString(); + } + + ButtonBase? PART_ButtonUp = GetTemplateChild("PART_ButtonUp") as ButtonBase; + if (PART_ButtonUp != null) + { + PART_ButtonUp.Click += buttonUp_Click; + } + + ButtonBase? PART_ButtonDown = GetTemplateChild("PART_ButtonDown") as ButtonBase; + if (PART_ButtonDown != null) + { + PART_ButtonDown.Click += buttonDown_Click; + } + } + + static NumericUpDown() + { + DefaultStyleKeyProperty.OverrideMetadata(typeof(NumericUpDown), new FrameworkPropertyMetadata(typeof(NumericUpDown))); + } + + public static readonly RoutedEvent ValueChangedEvent = EventManager.RegisterRoutedEvent( + "ValueChanged", RoutingStrategy.Direct, + typeof(ValueChangedEventHandler), typeof(NumericUpDown)); + public event ValueChangedEventHandler ValueChanged + { + add + { + base.AddHandler(NumericUpDown.ValueChangedEvent, value); + } + remove + { + base.RemoveHandler(NumericUpDown.ValueChangedEvent, value); + } + } + + public int Places + { + get { return (int)GetValue(PlacesProperty); } + set { SetValue(PlacesProperty, value); } + } + + public static readonly DependencyProperty PlacesProperty = DependencyProperty.Register("Places", typeof(int), typeof(NumericUpDown)); + + public double MaxValue + { + get { return (double)GetValue(MaxValueProperty); } + set { SetValue(MaxValueProperty, value); } + } + public static readonly DependencyProperty MaxValueProperty = + DependencyProperty.Register("MaxValue", typeof(double), typeof(NumericUpDown), new FrameworkPropertyMetadata(100D, maxValueChangedCallback, coerceMaxValueCallback)); + private static object coerceMaxValueCallback(DependencyObject d, object value) + { + double minValue = ((NumericUpDown)d).MinValue; + if ((double)value < minValue) + return minValue; + + return value; + } + private static void maxValueChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + NumericUpDown numericUpDown = ((NumericUpDown)d); + numericUpDown.CoerceValue(MinValueProperty); + numericUpDown.CoerceValue(ValueProperty); + } + + public double MinValue + { + get { return (double)GetValue(MinValueProperty); } + set { SetValue(MinValueProperty, value); } + } + + public static readonly DependencyProperty MinValueProperty = + DependencyProperty.Register("MinValue", typeof(double), typeof(NumericUpDown), new FrameworkPropertyMetadata(0D, minValueChangedCallback, coerceMinValueCallback)); + + private static object coerceMinValueCallback(DependencyObject d, object value) + { + double maxValue = ((NumericUpDown)d).MaxValue; + if ((double)value > maxValue) + return maxValue; + + return value; + } + + private static void minValueChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + NumericUpDown numericUpDown = ((NumericUpDown)d); + numericUpDown.CoerceValue(NumericUpDown.MaxValueProperty); + numericUpDown.CoerceValue(NumericUpDown.ValueProperty); + } + + public double Increment + { + get { return (double)GetValue(IncrementProperty); } + set { SetValue(IncrementProperty, value); } + } + public static readonly DependencyProperty IncrementProperty = + DependencyProperty.Register("Increment", typeof(double), typeof(NumericUpDown), new FrameworkPropertyMetadata(1D, null, coerceIncrementCallback)); + private static object coerceIncrementCallback(DependencyObject d, object value) + { + NumericUpDown numericUpDown = ((NumericUpDown)d); + double i = numericUpDown.MaxValue - numericUpDown.MinValue; + if ((double)value > i) + return i; + + return value; + } + + public double Value + { + get { return (double)GetValue(ValueProperty); } + set { SetValue(ValueProperty, value); } + } + public static readonly DependencyProperty ValueProperty = + DependencyProperty.Register("Value", typeof(double), typeof(NumericUpDown), new FrameworkPropertyMetadata(0D, valueChangedCallback, coerceValueCallback), validateValueCallback); + private static void valueChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + NumericUpDown numericUpDown = (NumericUpDown)d; + ValueChangedEventArgs ea = + new ValueChangedEventArgs(NumericUpDown.ValueChangedEvent, d, (double)e.OldValue, (double)e.NewValue); + numericUpDown.RaiseEvent(ea); + numericUpDown.PART_TextBox.Text = e.NewValue.ToString(); + } + private static bool validateValueCallback(object value) + { + double val = (double)value; + if (val > double.MinValue && val < double.MaxValue) + return true; + else + return false; + } + private static object coerceValueCallback(DependencyObject d, object value) + { + double val = (double)value; + double minValue = ((NumericUpDown)d).MinValue; + double maxValue = ((NumericUpDown)d).MaxValue; + double result; + if (val < minValue) + result = minValue; + else if (val > maxValue) + result = maxValue; + else + result = (double)value; + + return result; + } + + private void buttonUp_Click(object sender, RoutedEventArgs e) + { + if (Value < MaxValue) + Value += Increment; + + Value = Math.Round(Value, Places); + } + private void buttonDown_Click(object sender, RoutedEventArgs e) + { + if (Value > MinValue) + Value -= Increment; + + Value = Math.Round(Value, Places); + } + + private void textBox_PreviewKeyDown(object sender, KeyEventArgs e) + { + if (e.Key == Key.Space) + e.Handled = true; + } + private void textBox_TextChanged(object sender, TextChangedEventArgs e) + { + int index = PART_TextBox.CaretIndex; + double result; + if (!double.TryParse(PART_TextBox.Text, out result)) + { + var changes = e.Changes.FirstOrDefault(); + if (changes != null) + { + PART_TextBox.Text = PART_TextBox.Text.Remove(changes.Offset, changes.AddedLength); + PART_TextBox.CaretIndex = index > 0 ? index - changes.AddedLength : 0; + } + } + else if (result < MaxValue && result > MinValue) + Value = result; + else + { + PART_TextBox.Text = Value.ToString(); + PART_TextBox.CaretIndex = index > 0 ? index - 1 : 0; + } + } + } +} diff --git a/MainApp/CustomControl/Themes/NumericUpDown.xaml b/MainApp/CustomControl/Themes/NumericUpDown.xaml new file mode 100644 index 0000000..a59326b --- /dev/null +++ b/MainApp/CustomControl/Themes/NumericUpDown.xaml @@ -0,0 +1,52 @@ + + + + \ No newline at end of file diff --git a/MainApp/CustomControl/ValueChangeEventHandler.cs b/MainApp/CustomControl/ValueChangeEventHandler.cs new file mode 100644 index 0000000..196b6c1 --- /dev/null +++ b/MainApp/CustomControl/ValueChangeEventHandler.cs @@ -0,0 +1,18 @@ +using System.Windows; + +namespace MSFSPopoutPanelManager.MainApp.CustomControl +{ + public delegate void ValueChangedEventHandler(object sender, ValueChangedEventArgs e); + + public class ValueChangedEventArgs : RoutedEventArgs + { + public ValueChangedEventArgs(RoutedEvent routedEvent, object source, double oldValue, double newValue) + : base(routedEvent, source) + { + OldValue = oldValue; + NewValue = newValue; + } + public double OldValue { get; private set; } + public double NewValue { get; private set; } + } +} diff --git a/UserDataAgent/FodyWeavers.xml b/MainApp/FodyWeavers.xml similarity index 100% rename from UserDataAgent/FodyWeavers.xml rename to MainApp/FodyWeavers.xml diff --git a/UserDataAgent/FodyWeavers.xsd b/MainApp/FodyWeavers.xsd similarity index 100% rename from UserDataAgent/FodyWeavers.xsd rename to MainApp/FodyWeavers.xsd diff --git a/MainApp/HudBar.xaml b/MainApp/HudBar.xaml new file mode 100644 index 0000000..521c9b8 --- /dev/null +++ b/MainApp/HudBar.xaml @@ -0,0 +1,272 @@ + + + 22 + 28 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Elevator Trim: + + + + + + + Aileron Trim: + + + + + + + Rudder Trim: + + + + + + + Flaps: + + + + + + + Brake: + + + + + + + + + + + Gear: + + + + + + + + + + + + + + + + + + + + + + + Timer: + + + + + + + + + + + Sim Rate: + + + + + + + + + + + + + + + + diff --git a/MainApp/HudBar.xaml.cs b/MainApp/HudBar.xaml.cs new file mode 100644 index 0000000..6cd3446 --- /dev/null +++ b/MainApp/HudBar.xaml.cs @@ -0,0 +1,49 @@ +using Microsoft.Extensions.DependencyInjection; +using MSFSPopoutPanelManager.MainApp.ViewModel; +using System; +using System.Windows; +using System.Windows.Input; +using System.Windows.Interop; + +namespace MSFSPopoutPanelManager.MainApp +{ + public partial class HudBar : Window + { + private HudBarViewModel _viewModel; + + public HudBar(Guid panelId) + { + _viewModel = App.AppHost.Services.GetRequiredService(); + _viewModel.PanelId = panelId; + + InitializeComponent(); + Loaded += (sender, e) => + { + DataContext = _viewModel; + _viewModel.PanelConfig.PanelHandle = new WindowInteropHelper(Window.GetWindow(this)).Handle; + _viewModel.PanelConfig.Width = Convert.ToInt32(Width); + _viewModel.PanelConfig.Height = Convert.ToInt32(Height); + }; + + this.MouseLeftButtonDown += HudBar_MouseLeftButtonDown; + this.Topmost = true; + + Closing += HudBar_Closing; + } + + private void HudBar_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + _viewModel.CloseCommand.Execute(null); + } + + private void HudBar_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) + { + DragMove(); + } + + private void BtnClose_Click(object sender, RoutedEventArgs e) + { + this.Close(); + } + } +} diff --git a/MainApp/MainApp.csproj b/MainApp/MainApp.csproj new file mode 100644 index 0000000..c9359f9 --- /dev/null +++ b/MainApp/MainApp.csproj @@ -0,0 +1,102 @@ + + + + WinExe + net7.0-windows + true + MSFSPopoutPanelManager + MSFS 2020 Popout Panel Manager + MSFS 2020 Popout Panel Manager + Stanley Kwok + Stanley Kwok + Stanley Kwok 2021 + https://github.com/hawkeye-stan/msfs-popout-panel-manager + MSFSPopoutPanelManager.MainApp + logo.ico + x64 + 4.0.0.0 + 4.0.0.0 + 4.0.0.0 + embedded + en + + true + true + Debug;Release;Local + false + + + + + + + + + Always + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + + + + + + + + Code + + + True + True + Settings.settings + + + + + + + + + + + + + + + Never + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + + + + + + + diff --git a/MainApp/MessageWindow.xaml b/MainApp/MessageWindow.xaml new file mode 100644 index 0000000..b87cff1 --- /dev/null +++ b/MainApp/MessageWindow.xaml @@ -0,0 +1,64 @@ + + + 22 + 28 + + + + + + + MSFS POP OUT PANEL MANAGER + + + + + + + + + + diff --git a/MainApp/MessageWindow.xaml.cs b/MainApp/MessageWindow.xaml.cs new file mode 100644 index 0000000..1a5e2dc --- /dev/null +++ b/MainApp/MessageWindow.xaml.cs @@ -0,0 +1,72 @@ +using Microsoft.Extensions.DependencyInjection; +using MSFSPopoutPanelManager.MainApp.ViewModel; +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Interop; + +namespace MSFSPopoutPanelManager.MainApp +{ + public partial class MessageWindow : Window + { + private MessageWindowViewModel _viewModel; + + public MessageWindow() + { + _viewModel = App.AppHost.Services.GetRequiredService(); + + InitializeComponent(); + Loaded += (sender, e) => + { + DataContext = _viewModel; + _viewModel.Handle = new WindowInteropHelper(Window.GetWindow(this)).Handle; + + // Set window binding, needs to be in code after window loaded + Binding visibleBinding = new Binding("IsVisible"); + visibleBinding.Source = _viewModel; + visibleBinding.Converter = new BooleanToVisibilityConverter(); + BindingOperations.SetBinding(this, Window.VisibilityProperty, visibleBinding); + + // Set window click through + WindowsServices.SetWindowExTransparent(_viewModel.Handle); + + _viewModel.OnMessageUpdated += _viewModel_OnMessageUpdated; + }; + } + + private void _viewModel_OnMessageUpdated(object sender, List e) + { + if (e == null) + return; + + TextBlockMessage.Inlines.Clear(); + + foreach (var run in e) + TextBlockMessage.Inlines.Add(run); + + ScrollViewerMessage.ScrollToEnd(); + } + } + + public static class WindowsServices + { + const int WS_EX_TRANSPARENT = 0x00000020; + const int GWL_EXSTYLE = (-20); + + [DllImport("user32.dll")] + static extern int GetWindowLong(IntPtr hwnd, int index); + + [DllImport("user32.dll")] + static extern int SetWindowLong(IntPtr hwnd, int index, int newStyle); + + public static void SetWindowExTransparent(IntPtr hwnd) + { + var extendedStyle = GetWindowLong(hwnd, GWL_EXSTYLE); + SetWindowLong(hwnd, GWL_EXSTYLE, extendedStyle | WS_EX_TRANSPARENT); + } + } +} diff --git a/MainApp/PanelCoorOverlay.xaml b/MainApp/PanelCoorOverlay.xaml new file mode 100644 index 0000000..501c921 --- /dev/null +++ b/MainApp/PanelCoorOverlay.xaml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + diff --git a/MainApp/PanelCoorOverlay.xaml.cs b/MainApp/PanelCoorOverlay.xaml.cs new file mode 100644 index 0000000..870bef4 --- /dev/null +++ b/MainApp/PanelCoorOverlay.xaml.cs @@ -0,0 +1,96 @@ +using Microsoft.Extensions.DependencyInjection; +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.MainApp.ViewModel; +using MSFSPopoutPanelManager.WindowsAgent; +using System; +using System.Windows; +using System.Windows.Interop; +using System.Windows.Media; + +namespace MSFSPopoutPanelManager.MainApp +{ + public partial class PanelCoorOverlay : Window + { + private PanelCoorOverlayViewModel _viewModel; + + private const int WINDOW_ADJUSTMENT = 15; // half of window height with shadow adjustment + private int _xCoor; + private int _yCoor; + + public bool IsEditingPanelLocation { get; set; } + + public Guid PanelId { get; set; } + + public IntPtr WindowHandle { get; set; } + + public event EventHandler WindowLocationChanged; + + public PanelCoorOverlay(Guid id) + { + _viewModel = App.AppHost.Services.GetRequiredService(); + _viewModel.SetPanelId(id); + PanelId = id; + + InitializeComponent(); + Loaded += PanelCoorOverlay_Loaded; + + OverlayCircle.Stroke = new SolidColorBrush((Color)ColorConverter.ConvertFromString(_viewModel.Panel.PanelSource.Color)); + + if (!_viewModel.ProfileData.ActiveProfile.IsEditingPanelSource) + OverlayBlinkingCircle.Visibility = Visibility.Collapsed; + + IsEditingPanelLocation = false; + this.Topmost = true; + this.Left = 0; + this.Top = 0; + + this.MouseUp += PanelCoorOverlay_MouseUp; // detect location change when user release mouse button when dragging the overlay window + } + + private void PanelCoorOverlay_Loaded(object sender, RoutedEventArgs e) + { + this.DataContext = _viewModel; + } + + private void PanelCoorOverlay_MouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e) + { + if (this.Top is double.NaN || this.Left is double.NaN) + return; + + // Fixed broken window left/top coordinate for DPI Awareness Per Monitor + var handle = new WindowInteropHelper(this).Handle; + var rect = WindowActionManager.GetWindowRectangle(handle); + WindowLocationChanged?.Invoke(this, new System.Drawing.Point(rect.X + WINDOW_ADJUSTMENT, rect.Y + WINDOW_ADJUSTMENT)); + + if (_viewModel.Panel != null) + _viewModel.Panel.IsSelectedPanelSource = false; + } + + public void SetWindowCoor(int x, int y) + { + _xCoor = x; + _yCoor = y; + } + + private void Window_MouseMove(object sender, System.Windows.Input.MouseEventArgs e) + { + if (IsEditingPanelLocation && e.LeftButton == System.Windows.Input.MouseButtonState.Pressed) + this.DragMove(); + } + + private void Window_Loaded(object sender, RoutedEventArgs e) + { + // Fixed broken window left/top coordinate for DPI Awareness Per Monitor + var handle = new WindowInteropHelper(this).Handle; + + WindowActionManager.MoveWindow(handle, _xCoor - WINDOW_ADJUSTMENT, _yCoor - WINDOW_ADJUSTMENT, Convert.ToInt32(this.Width), Convert.ToInt32(this.Height)); + WindowActionManager.ApplyAlwaysOnTop(handle, PanelType.PanelSourceWindow, true); + } + + private void Canvas_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) + { + if (e.LeftButton == System.Windows.Input.MouseButtonState.Pressed && _viewModel.Panel != null) + _viewModel.Panel.IsSelectedPanelSource = true; + } + } +} diff --git a/WpfApp/Properties/PublishProfiles/FolderProfile.pubxml b/MainApp/Properties/PublishProfiles/FolderProfile.pubxml similarity index 92% rename from WpfApp/Properties/PublishProfiles/FolderProfile.pubxml rename to MainApp/Properties/PublishProfiles/FolderProfile.pubxml index 515e254..18dfaa2 100644 --- a/WpfApp/Properties/PublishProfiles/FolderProfile.pubxml +++ b/MainApp/Properties/PublishProfiles/FolderProfile.pubxml @@ -8,7 +8,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. x64 ..\..\..\publish\master FileSystem - net6.0-windows + net7.0-windows true true true diff --git a/MainApp/Styles/CustomMaterialDesignExpander.xaml b/MainApp/Styles/CustomMaterialDesignExpander.xaml new file mode 100644 index 0000000..02af183 --- /dev/null +++ b/MainApp/Styles/CustomMaterialDesignExpander.xaml @@ -0,0 +1,316 @@ + + + 0:0:0.250 + 0:0:0.200 + + 0:0:0.250 + 0:0:0.200 + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/MainApp/Styles/CustomScrollViewStyle.xaml b/MainApp/Styles/CustomScrollViewStyle.xaml new file mode 100644 index 0000000..718a867 --- /dev/null +++ b/MainApp/Styles/CustomScrollViewStyle.xaml @@ -0,0 +1,44 @@ + + + \ No newline at end of file diff --git a/MainApp/Styles/ExpanderRotateAngleConverter.cs b/MainApp/Styles/ExpanderRotateAngleConverter.cs new file mode 100644 index 0000000..b910656 --- /dev/null +++ b/MainApp/Styles/ExpanderRotateAngleConverter.cs @@ -0,0 +1,33 @@ +using System; +using System.Globalization; +using System.Windows.Controls; +using System.Windows.Data; + +namespace MSFSPopoutPanelManager.MainApp +{ + public class ExpanderRotateAngleConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + double factor = 1.0; + if (parameter is { } parameterValue) + { + if (!double.TryParse(parameterValue.ToString(), out factor)) + { + factor = 1.0; + } + } + return value switch + { + ExpandDirection.Left => 90 * factor, + ExpandDirection.Right => -90 * factor, + _ => 0 + }; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/MainApp/UserControl/Dialog/AddProfileDialog.xaml b/MainApp/UserControl/Dialog/AddProfileDialog.xaml new file mode 100644 index 0000000..4fa2652 --- /dev/null +++ b/MainApp/UserControl/Dialog/AddProfileDialog.xaml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MainApp/UserControl/Dialog/AddProfileDialog.xaml.cs b/MainApp/UserControl/Dialog/AddProfileDialog.xaml.cs new file mode 100644 index 0000000..03208ab --- /dev/null +++ b/MainApp/UserControl/Dialog/AddProfileDialog.xaml.cs @@ -0,0 +1,26 @@ +using MaterialDesignThemes.Wpf; +using Microsoft.Extensions.DependencyInjection; +using MSFSPopoutPanelManager.MainApp.ViewModel; +using System; +using System.Windows.Controls; + +namespace MSFSPopoutPanelManager.MainApp +{ + public partial class AddProfileDialog : UserControl + { + public AddProfileViewModel ViewModel { get; set; } + + public AddProfileDialog() + { + ViewModel = App.AppHost.Services.GetRequiredService(); + InitializeComponent(); + Loaded += (sender, e) => + { + DataContext = ViewModel; + BtnAccept.IsEnabled = false; + }; + } + + public DialogClosingEventHandler ClosingEventHandler { get { return ViewModel.ClosingEventHandler; } } + } +} diff --git a/MainApp/UserControl/Dialog/ConfirmationDialog.xaml b/MainApp/UserControl/Dialog/ConfirmationDialog.xaml new file mode 100644 index 0000000..6b05b5d --- /dev/null +++ b/MainApp/UserControl/Dialog/ConfirmationDialog.xaml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + diff --git a/MainApp/UserControl/Dialog/ConfirmationDialog.xaml.cs b/MainApp/UserControl/Dialog/ConfirmationDialog.xaml.cs new file mode 100644 index 0000000..5b2c6c8 --- /dev/null +++ b/MainApp/UserControl/Dialog/ConfirmationDialog.xaml.cs @@ -0,0 +1,14 @@ +using MSFSPopoutPanelManager.MainApp.ViewModel; +using System.Windows.Controls; + +namespace MSFSPopoutPanelManager.MainApp +{ + public partial class ConfirmationDialog : UserControl + { + public ConfirmationDialog(string content, string confirmButtonText) + { + InitializeComponent(); + DataContext = new ConfirmationViewModel(content, confirmButtonText); + } + } +} diff --git a/MainApp/UserControl/HelpDrawer.xaml b/MainApp/UserControl/HelpDrawer.xaml new file mode 100644 index 0000000..b2ebd04 --- /dev/null +++ b/MainApp/UserControl/HelpDrawer.xaml @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Keyboard Commands + + + + To configure a pop out panel, first click on the move and resize icon + + + for the panel. You can then use keyboard commands below to adjust pop out panel when the icon turns green. To end panel configuration using keyboard commands, just click the icon + + + again to end panel adjustment. + + Up Arrow + - Move panel up by 10 pixels + Down Arrow + - Move panel down by 10 pixels + Left Arrow + - Move panel left by 10 pixels + Right Arrow + - Move panel right by 10 pixels + + Shift + Up Arrow + - Move panel up by 1 pixel + Shift + Down Arrow + - Move panel down by 1 pixel + Shift + Left Arrow + - Move panel left by 1 pixel + Shift + Right Arrow + - Move panel right by 1 pixel + + Ctrl + Up Arrow + - Decrease height by 10 pixels + Ctrl + Down Arrow + - Increase height by 10 pixels + Ctrl + Left Arrow + - Decrease width by 10 pixels + Ctrl + Right Arrow + - Increase width by 10 pixels + + Shift + Ctrl + Up Arrow + - Decrease height by 1 pixel + Shift + Ctrl + Down Arrow + - Increase height by 1 pixel + Shift + Ctrl + Left Arrow + - Decrease width by 1 pixel + Shift + Ctrl + Right Arrow + - Increase width by 1 pixel + + + + + + + + + User Guide + + + + + + + + + + + + + + + + + + Download Latest Release + + + + + + + + + + + + + + + + + + Support + + + + + + + + + + + + + + + + + + + + + + + + + + + + Always on Top + + + + + + Full Screen Mode + + + + + + Hide Title Bar + + + + + + Automatic Game Refocus + + + + + diff --git a/MainApp/UserControl/PopOutPanelCard.xaml.cs b/MainApp/UserControl/PopOutPanelCard.xaml.cs new file mode 100644 index 0000000..70bdb14 --- /dev/null +++ b/MainApp/UserControl/PopOutPanelCard.xaml.cs @@ -0,0 +1,128 @@ +using Microsoft.Extensions.DependencyInjection; +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.MainApp.ViewModel; +using System; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Input; + +namespace MSFSPopoutPanelManager.MainApp +{ + public partial class PopOutPanelCard : UserControl + { + private PopOutPanelCardViewModel _viewModel; + public static readonly DependencyProperty DataItemProperty = DependencyProperty.Register("DataItem", typeof(PanelConfig), typeof(PopOutPanelCard)); + + public PopOutPanelCard() + { + _viewModel = App.AppHost.Services.GetRequiredService(); + Loaded += (sender, e) => + { + _viewModel.DataItem = DataItem; + this.DataContext = _viewModel; + InitializeComponent(); + }; + } + + public PanelConfig DataItem + { + get { return (PanelConfig)GetValue(DataItemProperty); } + set { SetValue(DataItemProperty, value); } + } + + private void TextBox_KeyDown(object sender, KeyEventArgs e) + { + if (e.Key == Key.Enter) + { + Keyboard.ClearFocus(); + FocusManager.SetFocusedElement(FocusManager.GetFocusScope(RootExpander), RootExpander as IInputElement); + } + } + + private void TextBox_GotFocus(object sender, RoutedEventArgs e) + { + var txtBox = (TextBox)sender; + txtBox.Dispatcher.BeginInvoke(new Action(() => txtBox.SelectAll())); + } + + private void BtnUpDown_Click(object sender, RoutedEventArgs e) + { + var button = (Button)sender; + var buttonType = button.Name.Substring(9); + + var txtBox = this.FindName($"TxtBox{buttonType}") as TextBox; + if (txtBox != null) + txtBox.Dispatcher.BeginInvoke(new Action(() => txtBox.Focus())); + } + + private string _oldText; + + private void TxtBox_NumbersOnly(object sender, TextCompositionEventArgs e) + { + int result; + e.Handled = !(int.TryParse(e.Text, out result) || (e.Text.Trim() == "-")); + + if (!e.Handled) + _oldText = ((TextBox)sender).Text; + } + + private void TxtBox_NumbersOnlyTextChanged(object sender, TextChangedEventArgs e) + { + int result; + var txtBox = (TextBox)sender; + + if (String.IsNullOrEmpty(txtBox.Text)) + txtBox.Text = "0"; + else if (!(int.TryParse(txtBox.Text, out result) || (txtBox.Text.Trim() == "-"))) + { + txtBox.Text = _oldText; + } + } + + private void Data_SourceUpdated(object sender, System.Windows.Data.DataTransferEventArgs e) + { + string? param = null; + + if (sender is PanelConfigField) + param = ((PanelConfigField)sender).BindingPath; + else if (sender is ToggleButton) + param = ((ToggleButton)sender).Name.Substring(6); + else if (sender is TextBox) + param = ((TextBox)sender).Name.Substring(6); + + if (!String.IsNullOrEmpty(param)) + _viewModel.PanelAttributeUpdatedCommand.Execute(param); + } + + private void PanelSourceIcon_PreviewMouseDown(object sender, MouseButtonEventArgs e) + { + if (e.LeftButton == MouseButtonState.Pressed && _viewModel.DataItem != null && _viewModel.ProfileData.ActiveProfile.IsEditingPanelSource) + _viewModel.DataItem.IsShownPanelSource = true; + } + + private void PanelSourceIcon_PreviewMouseUp(object sender, MouseButtonEventArgs e) + { + if (e.LeftButton == MouseButtonState.Released && _viewModel.DataItem != null && _viewModel.ProfileData.ActiveProfile.IsEditingPanelSource) + _viewModel.DataItem.IsShownPanelSource = false; + } + } + + public class CustomTextBox : TextBox + { + static CustomTextBox() + { + TextProperty.OverrideMetadata(typeof(CustomTextBox), new FrameworkPropertyMetadata(null, null, CoerceChanged)); + } + + private static object CoerceChanged(DependencyObject d, object basevalue) + { + TextBox? txtBox = d as TextBox; + if (txtBox != null && basevalue == null) + { + return txtBox.Text; + } + return basevalue; + } + } +} diff --git a/MainApp/UserControl/PopOutPanelCard/EditPanelSourceButton.xaml b/MainApp/UserControl/PopOutPanelCard/EditPanelSourceButton.xaml new file mode 100644 index 0000000..d944731 --- /dev/null +++ b/MainApp/UserControl/PopOutPanelCard/EditPanelSourceButton.xaml @@ -0,0 +1,24 @@ + + + 22 + 28 + + + + + diff --git a/MainApp/UserControl/PopOutPanelCard/EditPanelSourceButton.xaml.cs b/MainApp/UserControl/PopOutPanelCard/EditPanelSourceButton.xaml.cs new file mode 100644 index 0000000..ed0110e --- /dev/null +++ b/MainApp/UserControl/PopOutPanelCard/EditPanelSourceButton.xaml.cs @@ -0,0 +1,12 @@ +using System.Windows.Controls; + +namespace MSFSPopoutPanelManager.MainApp +{ + public partial class EditPanelSourceButton : UserControl + { + public EditPanelSourceButton() + { + InitializeComponent(); + } + } +} diff --git a/MainApp/UserControl/PopOutPanelCard/MoveAndResizePanelButton.xaml b/MainApp/UserControl/PopOutPanelCard/MoveAndResizePanelButton.xaml new file mode 100644 index 0000000..c6bf266 --- /dev/null +++ b/MainApp/UserControl/PopOutPanelCard/MoveAndResizePanelButton.xaml @@ -0,0 +1,38 @@ + + + 22 + 28 + + + + + + + + diff --git a/MainApp/UserControl/PopOutPanelCard/MoveAndResizePanelButton.xaml.cs b/MainApp/UserControl/PopOutPanelCard/MoveAndResizePanelButton.xaml.cs new file mode 100644 index 0000000..76bc166 --- /dev/null +++ b/MainApp/UserControl/PopOutPanelCard/MoveAndResizePanelButton.xaml.cs @@ -0,0 +1,12 @@ +using System.Windows.Controls; + +namespace MSFSPopoutPanelManager.MainApp +{ + public partial class MoveAndResizePanelButton : UserControl + { + public MoveAndResizePanelButton() + { + InitializeComponent(); + } + } +} diff --git a/MainApp/UserControl/PopOutPanelCard/MoveUpDownButton.xaml b/MainApp/UserControl/PopOutPanelCard/MoveUpDownButton.xaml new file mode 100644 index 0000000..aa170b6 --- /dev/null +++ b/MainApp/UserControl/PopOutPanelCard/MoveUpDownButton.xaml @@ -0,0 +1,51 @@ + + + 14 + 22 + + + + + + + + + + diff --git a/MainApp/UserControl/PopOutPanelCard/MoveUpDownButton.xaml.cs b/MainApp/UserControl/PopOutPanelCard/MoveUpDownButton.xaml.cs new file mode 100644 index 0000000..d3fdbe5 --- /dev/null +++ b/MainApp/UserControl/PopOutPanelCard/MoveUpDownButton.xaml.cs @@ -0,0 +1,12 @@ +using System.Windows.Controls; + +namespace MSFSPopoutPanelManager.MainApp +{ + public partial class MoveUpDownButton : UserControl + { + public MoveUpDownButton() + { + InitializeComponent(); + } + } +} diff --git a/MainApp/UserControl/PopOutPanelCard/PanelConfigField.xaml b/MainApp/UserControl/PopOutPanelCard/PanelConfigField.xaml new file mode 100644 index 0000000..e04c239 --- /dev/null +++ b/MainApp/UserControl/PopOutPanelCard/PanelConfigField.xaml @@ -0,0 +1,148 @@ + + + 14 + 22 + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MainApp/UserControl/PopOutPanelCard/PanelConfigField.xaml.cs b/MainApp/UserControl/PopOutPanelCard/PanelConfigField.xaml.cs new file mode 100644 index 0000000..e84464c --- /dev/null +++ b/MainApp/UserControl/PopOutPanelCard/PanelConfigField.xaml.cs @@ -0,0 +1,103 @@ +using Microsoft.Extensions.DependencyInjection; +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.MainApp.ViewModel; +using System; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Input; + +namespace MSFSPopoutPanelManager.MainApp +{ + public partial class PanelConfigField : UserControl + { + private PanelConfigFieldViewModel _viewModel; + + public static readonly DependencyProperty DataItemProperty = DependencyProperty.Register("DataItem", typeof(PanelConfig), typeof(PanelConfigField)); + public static readonly DependencyProperty BindingPathProperty = DependencyProperty.Register("BindingPath", typeof(string), typeof(PanelConfigField)); + public static readonly RoutedEvent SourceUpdatedEvent = EventManager.RegisterRoutedEvent("SourceUpdatedEvent", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(PanelConfigField)); + + public PanelConfigField() + { + _viewModel = App.AppHost.Services.GetRequiredService(); + Loaded += (sender, e) => + { + _viewModel.DataItem = DataItem; + _viewModel.BindingPath = BindingPath; + _viewModel.SourceUpdatedEvent = SourceUpdatedEvent; + this.DataContext = _viewModel; + InitializeComponent(); + + Binding binding = new Binding($"DataItem.{BindingPath}"); + binding.Mode = BindingMode.TwoWay; + binding.NotifyOnSourceUpdated = true; + TxtBoxData.SetBinding(TextBox.TextProperty, binding); + }; + } + + public PanelConfig DataItem + { + get { return (PanelConfig)GetValue(DataItemProperty); } + set { SetValue(DataItemProperty, value); } + } + + public string BindingPath + { + get { return (string)GetValue(BindingPathProperty); } + set { SetValue(BindingPathProperty, value); } + } + + private void TextBox_KeyDown(object sender, KeyEventArgs e) + { + if (e.Key == Key.Enter) + { + Keyboard.ClearFocus(); + FocusManager.SetFocusedElement(FocusManager.GetFocusScope(this.Parent), this.Parent as IInputElement); + } + } + + private void TextBox_GotFocus(object sender, RoutedEventArgs e) + { + TxtBoxData.Dispatcher.BeginInvoke(new Action(() => TxtBoxData.SelectAll())); + } + + private string _oldText; + + private void TxtBox_NumbersOnly(object sender, TextCompositionEventArgs e) + { + int result; + e.Handled = !(int.TryParse(e.Text, out result) || (e.Text.Trim() == "-")); + + if (!e.Handled) + _oldText = ((TextBox)sender).Text; + } + + private void TxtBox_NumbersOnlyTextChanged(object sender, TextChangedEventArgs e) + { + int result; + var txtBox = (TextBox)sender; + + if (String.IsNullOrEmpty(txtBox.Text)) + txtBox.Text = "0"; + else if (!(int.TryParse(txtBox.Text, out result) || (txtBox.Text.Trim() == "-"))) + { + txtBox.Text = _oldText; + } + } + + private void Data_SourceUpdated(object sender, DataTransferEventArgs e) + { + _viewModel.DataUpdatedCommand.Execute(null); + } + + private void BtnPopupBoxOpen_Click(object sender, RoutedEventArgs e) + { + PopupBoxAdjustment.IsPopupOpen = true; + } + + private void BtnPopupBoxClose_Click(object sender, RoutedEventArgs e) + { + PopupBoxAdjustment.IsPopupOpen = false; + } + } +} diff --git a/MainApp/UserControl/PopOutPanelCard/TouchEnabledButton.xaml b/MainApp/UserControl/PopOutPanelCard/TouchEnabledButton.xaml new file mode 100644 index 0000000..c1c03d6 --- /dev/null +++ b/MainApp/UserControl/PopOutPanelCard/TouchEnabledButton.xaml @@ -0,0 +1,38 @@ + + + 22 + 28 + + + + + + + + diff --git a/MainApp/UserControl/PopOutPanelCard/TouchEnabledButton.xaml.cs b/MainApp/UserControl/PopOutPanelCard/TouchEnabledButton.xaml.cs new file mode 100644 index 0000000..6a5f604 --- /dev/null +++ b/MainApp/UserControl/PopOutPanelCard/TouchEnabledButton.xaml.cs @@ -0,0 +1,12 @@ +using System.Windows.Controls; + +namespace MSFSPopoutPanelManager.MainApp +{ + public partial class TouchEnabledButton : UserControl + { + public TouchEnabledButton() + { + InitializeComponent(); + } + } +} diff --git a/MainApp/UserControl/PopOutPanelList.xaml b/MainApp/UserControl/PopOutPanelList.xaml new file mode 100644 index 0000000..e2f23d3 --- /dev/null +++ b/MainApp/UserControl/PopOutPanelList.xaml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + diff --git a/MainApp/UserControl/PopOutPanelList.xaml.cs b/MainApp/UserControl/PopOutPanelList.xaml.cs new file mode 100644 index 0000000..7b0b65c --- /dev/null +++ b/MainApp/UserControl/PopOutPanelList.xaml.cs @@ -0,0 +1,28 @@ +using System.Globalization; +using System; +using System.Windows.Controls; +using System.Windows.Data; + +namespace MSFSPopoutPanelManager.MainApp +{ + public partial class PopOutPanelList : UserControl + { + public PopOutPanelList() + { + InitializeComponent(); + } + } + + public class DummyConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + return value; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + return value; + } + } +} diff --git a/MainApp/UserControl/PopOutPanelListEmpty.xaml b/MainApp/UserControl/PopOutPanelListEmpty.xaml new file mode 100644 index 0000000..8978984 --- /dev/null +++ b/MainApp/UserControl/PopOutPanelListEmpty.xaml @@ -0,0 +1,45 @@ + + + + + + Click here to add + + + + Add pop out panels to aircraft profile + + + (by identifying instrumetation source panel location in the game) + + + diff --git a/MainApp/UserControl/PopOutPanelListEmpty.xaml.cs b/MainApp/UserControl/PopOutPanelListEmpty.xaml.cs new file mode 100644 index 0000000..fda41c9 --- /dev/null +++ b/MainApp/UserControl/PopOutPanelListEmpty.xaml.cs @@ -0,0 +1,12 @@ +using System.Windows.Controls; + +namespace MSFSPopoutPanelManager.MainApp +{ + public partial class PopOutPanelListEmpty : UserControl + { + public PopOutPanelListEmpty() + { + InitializeComponent(); + } + } +} diff --git a/MainApp/UserControl/PreferenceDrawer.xaml b/MainApp/UserControl/PreferenceDrawer.xaml new file mode 100644 index 0000000..029ffac --- /dev/null +++ b/MainApp/UserControl/PreferenceDrawer.xaml @@ -0,0 +1,544 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Always on Top + + + + Pin the application on top of all open windows. + + + + Auto Start + + + + Enable auto start application when MSFS starts. This adds a XML config entry in EXE.xml file. + + + + Minimize to Tray + + + + Minimize the application to system tray. + + + + Start Minimized + + + + Start the application in minimized mode in system tray. + + + + Auto Close When Exiting MSFS + + + + Automatically close the application when exiting MSFS. + + + + Check for Update + + + + Enable checking for update of application through Github. + + + + + + + + Enable Auto Pop Out Panels + + + + Automatic pop out panels when an aircraft livery is bound to a profile. The following steps will be performed. + + + + 1. Detect flight start signal using SimConnect. + + + 2. Wait for cockpit view to appear before executing pop out panel sequence. + + + 3. If configured for profile on cold start, execute and detect instrumentation power on before executing pop out panel sequence. + + + + + Ready to Fly Button Delay + + + + + Amount of time in seconds to delay auto pop out panels from starting after ready to fly button has been pressed automatically. Extending this delay helps resolve auto pop out failure because cockpit has not been loaded completely yet depending on the speed of your PC. + + + + + + + + + + Enable Auto Panning + + + + Enable automatic panning of cockpit view when popping out panels. Auto Panning remembers the custom cockpit camera angle you used when defining the locations of pop out panel. + + + + + + + + Configure key binding for saving and recalling of custom MSFS cockpit camera view when defining the locations of pop out panel. Requires binding keystroke to custom camera in MSFS control setting. (Default: Ctrl-Alt-0 to save and Alt-0 to load). + + + + + + Minimize Pop Out Panel Manager During Pop Out + + + + Minimize Pop Out Panel Manager during pop out process. + + + + Minimize Pop Out Panel Manager After Pop Out + + + + Minimize Pop Out Panel Manager after all panels have been popped out. + + + + Enable Active Pause + + + + Enable active pause when panels are being popped out. + + + + + Enable Return to Predefined Camera View After Pop Out + + + + Enable return to a predefined camera view after pop out. + + + + + + + + + + + + + + + + + + Enable Panel Reset When Profile Is Locked + + + + + Enable panel to go back to its original location when move if the profile is locked. Disable this setting will allow panel to be moved when profile is locked + but the profile setting will be unchanged. With this setting disable, Pop Out Panel Manager will no longer detect pop out panel's movement when profile is locked which may save some CPU cycles. + + + + + + Pop Out Title Bar Color Customization + + + + + Enable setting the color of title bar for pop out panel. The color is set in Hexidemical format of RGB color (RRGGBB). For example, black is "#000000" and white is "#FFFFFF". + + + + + + + + + + + Use Left Control + Right Control to Pop Out Panel + + + + + If your keyboard does not have a Right-Alt key to perform left click to pop out panel, you can map Left Ctrl + Right Ctrl in MSFS control setting to pop out + panel instead. For this feature to work, please map (CTRL + RIGHT CTRL) in Control Options => Miscellaneous => New UI Window Mode in the game + + + + + + + + + Refocus Game Window + + + + Automactically set focus back to game window after a period of inactivity when either clicking on a panel or touching a panel when touch feature is enabled. This will give you flight control back when using pop out panel to overcome the current MSFS limitation. This setting needs to be enabled for each profile and each pop out panel's automatic refocus setting to work. + + + + + Amount of time in seconds to wait for touch inactivity before input focus goes back to game window. + + + + + + + + + Touch Down Touch Up Delay + + + + + Amount of time in milliseconds to delay touch down and then touch up event when operating touch enabled panel. If your touch is not registering consistently, increasing this value may help. + + + For panel display on direct connected touch monitor, 0 milliseconds work really well. + For panel display on a tablet using software such as Spacedesk, since there is higher latency for touch signal, increasing this value 5ms at a time may compensate for this latency. + + + + + + + + Auto Disable Track IR + + + + Automactically disable Track IR during panel selections and pop out process. Track IR will be re-enabled once these processes are completed. + + + + + + + + Auto Resize MSFS Game Window (Used with Windowed Display Mode only) + + + + + Enable automatic resize of MSFS game window when using Windowed Display Mode. When playing the game in Windowed Display Mode, this setting is used to resize game window to match original size + and location when panel profile was initially defined. When this setting is first checked, current game window size and location will also be saved automatically. + + + + + + + + diff --git a/MainApp/UserControl/PreferenceDrawer.xaml.cs b/MainApp/UserControl/PreferenceDrawer.xaml.cs new file mode 100644 index 0000000..7836790 --- /dev/null +++ b/MainApp/UserControl/PreferenceDrawer.xaml.cs @@ -0,0 +1,16 @@ +using Microsoft.Extensions.DependencyInjection; +using MSFSPopoutPanelManager.MainApp.ViewModel; +using System; +using System.Windows; +using System.Windows.Controls; + +namespace MSFSPopoutPanelManager.MainApp +{ + public partial class PreferenceDrawer : UserControl + { + public PreferenceDrawer() + { + InitializeComponent(); + } + } +} diff --git a/MainApp/UserControl/ProfileCard.xaml b/MainApp/UserControl/ProfileCard.xaml new file mode 100644 index 0000000..b874381 --- /dev/null +++ b/MainApp/UserControl/ProfileCard.xaml @@ -0,0 +1,392 @@ + + + + 22 + 28 + 14 + 22 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Active Aircraft: + + + + + + + + + + + + + + + Power on is required to pop out panels on cold start (for G1000 based aircrafts ONLY if needed) + + + + + Include in-game menu bar panels for pop out management and touch screen support + + + + + + + Add a HUD Bar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MainApp/UserControl/ProfileCardList.xaml.cs b/MainApp/UserControl/ProfileCardList.xaml.cs new file mode 100644 index 0000000..84c676d --- /dev/null +++ b/MainApp/UserControl/ProfileCardList.xaml.cs @@ -0,0 +1,39 @@ +using Microsoft.Extensions.DependencyInjection; +using MSFSPopoutPanelManager.MainApp.ViewModel; +using System; +using System.Windows.Controls; + +namespace MSFSPopoutPanelManager.MainApp +{ + public partial class ProfileCardList : UserControl + { + private ProfileCardListViewModel _viewModel; + + public ProfileCardList() + { + _viewModel = App.AppHost.Services.GetRequiredService(); + InitializeComponent(); + Loaded += (sender, e) => + { + DataContext = _viewModel; + _viewModel.OnProfileSelected += (sender, e) => + { + PopupBoxFinder.StaysOpen = false; + PopupBoxFinder.IsPopupOpen = false; + }; + }; + } + + private void BtnPopupBoxFinder_Click(object sender, System.Windows.RoutedEventArgs e) + { + PopupBoxFinder.IsPopupOpen = !PopupBoxFinder.IsPopupOpen; + PopupBoxFinder.StaysOpen = PopupBoxFinder.IsPopupOpen; + + if (PopupBoxFinder.IsPopupOpen) + { + ComboBoxSearchProfile.Text = null; + ComboBoxSearchProfile.Focus(); + } + } + } +} diff --git a/MainApp/UserControl/TrayIcon.xaml b/MainApp/UserControl/TrayIcon.xaml new file mode 100644 index 0000000..7700cf1 --- /dev/null +++ b/MainApp/UserControl/TrayIcon.xaml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + diff --git a/MainApp/UserControl/TrayIcon.xaml.cs b/MainApp/UserControl/TrayIcon.xaml.cs new file mode 100644 index 0000000..99e5fd3 --- /dev/null +++ b/MainApp/UserControl/TrayIcon.xaml.cs @@ -0,0 +1,31 @@ +using Microsoft.Extensions.DependencyInjection; +using MSFSPopoutPanelManager.MainApp.ViewModel; +using Prism.Commands; +using System; +using System.Windows; +using System.Windows.Controls; + +namespace MSFSPopoutPanelManager.MainApp +{ + public partial class TrayIcon : UserControl + { + // This command has to be here since it doesn't work in view model, window StateChanged never gets fire + public DelegateCommand RestoreWindowCommand => new DelegateCommand(() => { ((Window)((Border)((Grid)this.Parent).Parent).Parent).WindowState = WindowState.Normal; }, () => { return true; }); + + private TrayIconViewModel ViewModel { get; set; } + + public TrayIcon() + { + ViewModel = App.AppHost.Services.GetRequiredService(); + InitializeComponent(); + Loaded += (sender, e) => { DataContext = ViewModel; }; + + Tray.DoubleClickCommand = RestoreWindowCommand; + } + + private void MenuItem_Click(object sender, RoutedEventArgs e) + { + Tray.ContextMenu.IsOpen = true; + } + } +} diff --git a/MainApp/ViewModel/AddProfileViewModel.cs b/MainApp/ViewModel/AddProfileViewModel.cs new file mode 100644 index 0000000..262a928 --- /dev/null +++ b/MainApp/ViewModel/AddProfileViewModel.cs @@ -0,0 +1,59 @@ +using MaterialDesignThemes.Wpf; +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.Orchestration; +using System.Globalization; +using System.Linq; +using System.Windows.Controls; +using System.Windows.Data; + +namespace MSFSPopoutPanelManager.MainApp.ViewModel +{ + public class AddProfileViewModel : BaseViewModel + { + public UserProfile Profile { get; set; } + + public UserProfile CopiedProfile { get; set; } + + public AddProfileViewModel(MainOrchestrator orchestrator) : base(orchestrator) + { + Profile = new UserProfile(); + } + + public void ClosingEventHandler(object sender, DialogClosingEventArgs eventArgs) + { + if (eventArgs.Parameter != null && eventArgs.Parameter.Equals("ADD")) + { + if (string.IsNullOrEmpty(Profile.Name.Trim())) + { + Profile.Name = null; + eventArgs.Cancel(); + return; + } + + // Unload the current profile + ProfileData.ResetActiveProfile(); + + Orchestrator.PanelSource.CloseAllPanelSource(); + Orchestrator.Profile.AddProfile(Profile.Name, CopiedProfile); + } + } + } + + public class PostiveValidationRule : ValidationRule + { + public override ValidationResult Validate(object value, CultureInfo cultureInfo) => ValidationResult.ValidResult; // not used + + public override ValidationResult Validate(object value, CultureInfo cultureInfo, BindingExpressionBase owner) + { + var viewModel = (AddProfileViewModel)((BindingExpression)owner).DataItem; + + if (viewModel.ProfileData != null && viewModel.ProfileData.Profiles.Any(p => p.Name.ToLower() == ((string)value).ToLower())) + return new ValidationResult(false, "Profile name already exist"); + + if (string.IsNullOrEmpty(((string)value).Trim())) + return new ValidationResult(false, "Profile name is required"); + + return ValidationResult.ValidResult; + } + } +} diff --git a/MainApp/ViewModel/ApplicationViewModel.cs b/MainApp/ViewModel/ApplicationViewModel.cs new file mode 100644 index 0000000..1b23ed3 --- /dev/null +++ b/MainApp/ViewModel/ApplicationViewModel.cs @@ -0,0 +1,64 @@ +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.Orchestration; +using MSFSPopoutPanelManager.Shared; +using MSFSPopoutPanelManager.WindowsAgent; +using PropertyChanged; +using System; +using System.Collections.Generic; +using System.Windows; +using System.Windows.Documents; + +namespace MSFSPopoutPanelManager.MainApp.ViewModel +{ + [SuppressPropertyChangedWarnings] + public class ApplicationViewModel : BaseViewModel + { + public IntPtr ApplicationHandle + { + get => Orchestrator.ApplicationHandle; + set => Orchestrator.ApplicationHandle = value; + } + + public Window ApplicationWindow { set => Orchestrator.ApplicationWindow = value; } + + public WindowState InitialWindowState { get; private set; } + + public event EventHandler<(List, int)> OnStatusMessageUpdated; + + public ApplicationViewModel(MainOrchestrator orchestrator) : base(orchestrator) + { + StatusMessageWriter.OnStatusMessage += (sender, e) => + { + Application.Current.Dispatcher.Invoke(() => + { + OnStatusMessageUpdated?.Invoke(this, (FormatStatusMessages(e.Messages), e.Duration)); + }); + }; + } + + public void Initialize() + { + // Set title bar color + WindowActionManager.SetWindowTitleBarColor(ApplicationHandle, "303030"); + + Orchestrator.Initialize(); + Orchestrator.AppSettingData.AlwaysOnTopChanged += (sender, e) => WindowActionManager.ApplyAlwaysOnTop(ApplicationHandle, PanelType.PopOutManager, e); + + // Set window state + if (Orchestrator.AppSettingData.ApplicationSetting.GeneralSetting.StartMinimized) + InitialWindowState = WindowState.Minimized; + + // Set Always on Top + if (Orchestrator.AppSettingData.ApplicationSetting.GeneralSetting.AlwaysOnTop) + WindowActionManager.ApplyAlwaysOnTop(ApplicationHandle, PanelType.PopOutManager, Orchestrator.AppSettingData.ApplicationSetting.GeneralSetting.AlwaysOnTop); + } + + public void WindowClosing() + { + Orchestrator.ApplicationClose(); + + if (Application.Current != null) + Environment.Exit(0); + } + } +} diff --git a/MainApp/ViewModel/BaseViewModel.cs b/MainApp/ViewModel/BaseViewModel.cs new file mode 100644 index 0000000..9910581 --- /dev/null +++ b/MainApp/ViewModel/BaseViewModel.cs @@ -0,0 +1,64 @@ +using MSFSPopoutPanelManager.Orchestration; +using MSFSPopoutPanelManager.Shared; +using System; +using System.Collections.Generic; +using System.Windows.Documents; +using System.Windows.Media; + +namespace MSFSPopoutPanelManager.MainApp.ViewModel +{ + public abstract class BaseViewModel : ObservableObject + { + protected const string ROOT_DIALOG_HOST = "RootDialog"; + + protected MainOrchestrator Orchestrator { get; set; } + + public BaseViewModel(MainOrchestrator orchestrator) + { + Orchestrator = orchestrator; + + Orchestrator.PanelPopOut.OnPopOutStarted += (sender, e) => IsDisabledAppInput = true; + Orchestrator.PanelPopOut.OnPopOutCompleted += (sender, e) => IsDisabledAppInput = false; + Orchestrator.PanelSource.OnPanelSourceSelectionStarted += (sender, e) => IsDisabledAppInput = true; + Orchestrator.PanelSource.OnPanelSourceSelectionCompleted += (sender, e) => IsDisabledAppInput = false; + } + + public AppSettingData AppSettingData => Orchestrator.AppSettingData; + + public ProfileData ProfileData => Orchestrator.ProfileData; + + public FlightSimData FlightSimData => Orchestrator.FlightSimData; + + public bool IsDisabledAppInput { get; set; } + + protected List FormatStatusMessages(List messages) + { + List runs = new List(); + + foreach (var statusMessage in messages) + { + var run = new Run(); + run.Text = statusMessage.Message; + + switch (statusMessage.StatusMessageType) + { + case StatusMessageType.Success: + run.Foreground = new SolidColorBrush(Colors.LimeGreen); + break; + case StatusMessageType.Failure: + run.Foreground = new SolidColorBrush(Colors.IndianRed); + break; + case StatusMessageType.Info: + break; + } + + runs.Add(run); + + if (statusMessage.NewLine) + runs.Add(new Run { Text = Environment.NewLine }); + } + + return runs; + } + } +} diff --git a/MainApp/ViewModel/ConfirmationViewModel.cs b/MainApp/ViewModel/ConfirmationViewModel.cs new file mode 100644 index 0000000..602520f --- /dev/null +++ b/MainApp/ViewModel/ConfirmationViewModel.cs @@ -0,0 +1,26 @@ +using System.Globalization; + +namespace MSFSPopoutPanelManager.MainApp.ViewModel +{ + public class ConfirmationViewModel + { + public string Title + { + get + { + TextInfo textInfo = new CultureInfo("en-US", false).TextInfo; + return $"Confirm {textInfo.ToTitleCase(ConfirmButtonText.ToLower())}"; + } + } + + public string Content { get; set; } + + public string ConfirmButtonText { get; set; } + + public ConfirmationViewModel(string content, string confirmButtonText) + { + Content = content; + ConfirmButtonText = confirmButtonText.ToUpper(); + } + } +} diff --git a/MainApp/ViewModel/HelpViewModel.cs b/MainApp/ViewModel/HelpViewModel.cs new file mode 100644 index 0000000..cedb06d --- /dev/null +++ b/MainApp/ViewModel/HelpViewModel.cs @@ -0,0 +1,82 @@ +using MaterialDesignThemes.Wpf; +using MSFSPopoutPanelManager.Orchestration; +using MSFSPopoutPanelManager.WindowsAgent; +using Prism.Commands; +using System; +using System.Windows.Input; + +namespace MSFSPopoutPanelManager.MainApp.ViewModel +{ + public class HelpViewModel : BaseViewModel + { + public DelegateCommand HyperLinkCommand { get; private set; } + + public ICommand DeleteAppCacheCommand { get; private set; } + + public ICommand RollBackCommand { get; private set; } + + public string ApplicationVersion { get; private set; } + + public bool IsRollBackCommandVisible { get; private set; } + + public bool HasOrphanAppCache { get; private set; } + + public HelpViewModel(MainOrchestrator orchestrator) : base(orchestrator) + { + HyperLinkCommand = new DelegateCommand(OnHyperLinkActivated); + DeleteAppCacheCommand = new DelegateCommand(OnDeleteAppCache); + RollBackCommand = new DelegateCommand(OnRollBack); + ApplicationVersion = WindowProcessManager.GetApplicationVersion(); + + IsRollBackCommandVisible = Orchestrator.Help.IsRollBackUpdateEnabled(); + HasOrphanAppCache = Orchestrator.Help.HasOrphanAppCache(); + } + + private void OnHyperLinkActivated(string commandParameter) + { + switch (commandParameter) + { + case "Getting Started": + Orchestrator.Help.OpenGettingStarted(); + break; + case "User Guide": + Orchestrator.Help.OpenUserGuide(); + break; + case "Download Latest GitHub": + Orchestrator.Help.OpenLatestDownloadGitHub(); + break; + case "Download Latest FlightsimTo": + Orchestrator.Help.OpenLatestDownloadFligthsimTo(); + break; + case "License": + Orchestrator.Help.OpenLicense(); + break; + case "Version Info": + Orchestrator.Help.OpenVersionInfo(); + break; + case "Open Data Folder": + Orchestrator.Help.OpenDataFolder(); + break; + case "Download VCC Library": + Orchestrator.Help.DownloadVCCLibrary(); + break; + } + } + + private void OnDeleteAppCache() + { + Orchestrator.Help.DeleteAppCache(); + HasOrphanAppCache = Orchestrator.Help.HasOrphanAppCache(); + } + + private async void OnRollBack() + { + var result = await DialogHost.Show(new ConfirmationDialog($"WARNING!{Environment.NewLine}Are you sure you want to rollback to previous version of Pop Out Panel Manager (v3.4.6.0321)? All your changes since updated to v4.0.0 will be lost. Backups of user profile and application settings file from previous version of the application will be restored.", "Rollback"), "RootDialog"); + + if (result != null && result.Equals("CONFIRM")) + { + Orchestrator.Help.RollBackUpdate(); + } + } + } +} diff --git a/MainApp/ViewModel/HudBarViewModel.cs b/MainApp/ViewModel/HudBarViewModel.cs new file mode 100644 index 0000000..7863745 --- /dev/null +++ b/MainApp/ViewModel/HudBarViewModel.cs @@ -0,0 +1,82 @@ +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.Orchestration; +using Prism.Commands; +using System; +using System.Linq; +using System.Timers; +using System.Windows; +using System.Windows.Input; + +namespace MSFSPopoutPanelManager.MainApp.ViewModel +{ + public class HudBarViewModel : BaseViewModel + { + public ICommand IncreaseSimRateCommand { get; } + + public ICommand DecreaseSimRateCommand { get; } + + public ICommand StartStopTimerCommand { get; } + + public ICommand ResetTimerCommand { get; } + + public ICommand CloseCommand { get; } + + public Guid PanelId { get; set; } + + public PanelConfig PanelConfig => ProfileData.ActiveProfile.PanelConfigs.First(p => p.Id == PanelId); + + public bool IsTimerStarted { get; private set; } + + public DateTime Timer { get; set; } + + public string HudBarTypeText => ProfileData.ActiveProfile.ProfileSetting.HudBarConfig.HudBarType.ToString().Replace("_", " "); + + private Timer _clock; + + public HudBarViewModel(MainOrchestrator orchestrator) : base(orchestrator) + { + IncreaseSimRateCommand = new DelegateCommand(OnIncreaseSimRate); + DecreaseSimRateCommand = new DelegateCommand(OnDecreaseSimRate); + StartStopTimerCommand = new DelegateCommand(OnStartStopTimer); + ResetTimerCommand = new DelegateCommand(OnResetTimer); + CloseCommand = new DelegateCommand(OnClose); + + Timer = new DateTime(); + + _clock = new Timer(); + _clock.Interval = 1000; + _clock.Enabled = false; + _clock.Elapsed += (sender, e) => Application.Current.Dispatcher.Invoke(() => Timer = Timer.AddSeconds(1)); + + Orchestrator.FlightSim.SetHudBarConfig(); + } + + private void OnIncreaseSimRate() + { + Orchestrator.FlightSim.IncreaseSimRate(); + } + + private void OnDecreaseSimRate() + { + Orchestrator.FlightSim.DecreaseSimRate(); + } + + private void OnStartStopTimer() + { + IsTimerStarted = !IsTimerStarted; + _clock.Enabled = IsTimerStarted; + } + + private void OnResetTimer() + { + IsTimerStarted = false; + _clock.Enabled = false; + Timer = new DateTime(); + } + + private void OnClose() + { + Orchestrator.FlightSim.StopHudBar(); + } + } +} diff --git a/MainApp/ViewModel/MessageWindowViewModel.cs b/MainApp/ViewModel/MessageWindowViewModel.cs new file mode 100644 index 0000000..a728332 --- /dev/null +++ b/MainApp/ViewModel/MessageWindowViewModel.cs @@ -0,0 +1,75 @@ +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.Orchestration; +using MSFSPopoutPanelManager.Shared; +using MSFSPopoutPanelManager.WindowsAgent; +using System; +using System.Collections.Generic; +using System.Threading; +using System.Windows; +using System.Windows.Documents; + +namespace MSFSPopoutPanelManager.MainApp.ViewModel +{ + public class MessageWindowViewModel : BaseViewModel + { + private const int WINDOW_WIDTH = 400; + private const int WINDOW_HEIGHT = 225; + + private bool _isVisible; + + public IntPtr Handle { get; set; } + + public event EventHandler> OnMessageUpdated; + + public bool IsVisible + { + get { return _isVisible; } + set + { + _isVisible = value; + if (value) + { + CenterDialogToGameWindow(); + } + } + } + + public int WindowTop { get; set; } + + public int WindowLeft { get; set; } + + public MessageWindowViewModel(MainOrchestrator orchestrator) : base(orchestrator) + { + IsVisible = false; + Orchestrator.PanelPopOut.OnPopOutStarted += (sender, e) => IsVisible = true; + Orchestrator.PanelPopOut.OnPopOutCompleted += (sender, e) => + { + Thread.Sleep(1000); + IsVisible = false; + }; + + StatusMessageWriter.OnStatusMessage += (sender, e) => + { + Application.Current.Dispatcher.Invoke(() => + { + WindowActionManager.ApplyAlwaysOnTop(Handle, PanelType.StatusMessageWindow, true); + OnMessageUpdated?.Invoke(this, FormatStatusMessages(e.Messages)); + + CenterDialogToGameWindow(); + }); + }; + } + + private void CenterDialogToGameWindow() + { + if (WindowProcessManager.SimulatorProcess == null) + return; + + var simulatorRectangle = WindowActionManager.GetWindowRectangle(WindowProcessManager.SimulatorProcess.Handle); + var left = simulatorRectangle.Left + simulatorRectangle.Width / 2 - WINDOW_WIDTH / 2; + var top = simulatorRectangle.Top + simulatorRectangle.Height / 2 - WINDOW_HEIGHT / 2; + WindowActionManager.MoveWindow(Handle, left, top, WINDOW_WIDTH, WINDOW_HEIGHT); + WindowActionManager.ApplyAlwaysOnTop(Handle, PanelType.StatusMessageWindow, true); + } + } +} diff --git a/MainApp/ViewModel/OrchestratorUIHelper.cs b/MainApp/ViewModel/OrchestratorUIHelper.cs new file mode 100644 index 0000000..6ec35fd --- /dev/null +++ b/MainApp/ViewModel/OrchestratorUIHelper.cs @@ -0,0 +1,129 @@ +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.Orchestration; +using MSFSPopoutPanelManager.WindowsAgent; +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using System.Windows; + +namespace MSFSPopoutPanelManager.MainApp.ViewModel +{ + public class OrchestratorUIHelper : BaseViewModel + { + private bool _minimizeForPopOut; + + public OrchestratorUIHelper(MainOrchestrator orchestrator) : base(orchestrator) + { + Orchestrator.PanelSource.OnOverlayShowed += HandleShowOverlay; + Orchestrator.PanelSource.OnOverlayRemoved += HandleRemoveOverlay; + + Orchestrator.PanelPopOut.OnPopOutStarted += HandleOnPopOutStarted; + Orchestrator.PanelPopOut.OnPopOutCompleted += HandleOnPopOutCompleted; + Orchestrator.PanelPopOut.OnHudBarOpened += HandleOnHudBarOpened; + } + + private void HandleShowOverlay(object? sender, PanelConfig panelConfig) + { + if (panelConfig.PanelType != PanelType.CustomPopout) + return; + + Application.Current.Dispatcher.Invoke(() => + { + PanelCoorOverlay overlay = new PanelCoorOverlay(panelConfig.Id); + overlay.IsEditingPanelLocation = true; + overlay.WindowStartupLocation = WindowStartupLocation.Manual; + overlay.SetWindowCoor(Convert.ToInt32(panelConfig.PanelSource.X), Convert.ToInt32(panelConfig.PanelSource.Y)); + overlay.ShowInTaskbar = false; + + // Fix MS.Win32.UnsafeNativeMethods.GetWindowText exception + try { overlay.Show(); } catch { overlay.Show(); } + + overlay.WindowLocationChanged += (sender, e) => + { + if (Orchestrator.ProfileData.ActiveProfile != null) + { + var panelSource = Orchestrator.ProfileData.ActiveProfile.PanelConfigs.FirstOrDefault(p => p.Id == panelConfig.Id); + if (panelSource != null) + { + panelSource.PanelSource.X = e.X; + panelSource.PanelSource.Y = e.Y; + } + } + }; + }); + } + + private void HandleRemoveOverlay(object? sender, PanelConfig panelConfig) + { + Application.Current.Dispatcher.Invoke(() => + { + for (int i = Application.Current.Windows.Count - 1; i >= 1; i--) + { + if (Application.Current.Windows[i] is PanelCoorOverlay) + { + var panel = Application.Current.Windows[i] as PanelCoorOverlay; + + if (panel?.PanelId == panelConfig.Id) + { + panel.Close(); + break; + } + } + } + }); + } + + private void HandleOnHudBarOpened(object? sender, PanelConfig panelConfig) + { + Application.Current.Dispatcher.Invoke(async () => + { + HudBar hudBar = new HudBar(panelConfig.Id); + hudBar.Show(); + + Task.Run(async () => + { + Thread.Sleep(1000); + WindowActionManager.MoveWindow(panelConfig.PanelHandle, panelConfig.Left, panelConfig.Top, panelConfig.Width, panelConfig.Height); + WindowActionManager.MoveWindow(panelConfig.PanelHandle, panelConfig.Left, panelConfig.Top, panelConfig.Width, panelConfig.Height); + }); + }); + } + + private void HandleOnPopOutStarted(object? sender, EventArgs e) + { + if (!Orchestrator.AppSettingData.ApplicationSetting.PopOutSetting.MinimizeDuringPopOut) + return; + + Application.Current.Dispatcher.Invoke(() => + { + // Temporary minimize the app for pop out process + _minimizeForPopOut = Orchestrator.ApplicationWindow.WindowState != WindowState.Minimized; + if (_minimizeForPopOut) + WindowActionManager.MinimizeWindow(Orchestrator.ApplicationHandle); + }); + } + + private void HandleOnPopOutCompleted(object? sender, EventArgs arg) + { + Application.Current.Dispatcher.Invoke(() => + { + if (Orchestrator.AppSettingData.ApplicationSetting.PopOutSetting.MinimizeAfterPopOut) + { + WindowActionManager.MinimizeWindow(Orchestrator.ApplicationHandle); + } + else if (_minimizeForPopOut) + { + Orchestrator.ApplicationWindow.Show(); + WindowActionManager.BringWindowToForeground(Orchestrator.ApplicationHandle); + } + else if (!Orchestrator.AppSettingData.ApplicationSetting.GeneralSetting.AlwaysOnTop) + { + WindowActionManager.BringWindowToForeground(Orchestrator.ApplicationHandle); + } + }); + + _minimizeForPopOut = false; + } + } +} diff --git a/MainApp/ViewModel/PanelConfigFieldViewModel.cs b/MainApp/ViewModel/PanelConfigFieldViewModel.cs new file mode 100644 index 0000000..3c6d4c0 --- /dev/null +++ b/MainApp/ViewModel/PanelConfigFieldViewModel.cs @@ -0,0 +1,50 @@ +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.Orchestration; +using Prism.Commands; +using System; +using System.Windows; +using System.Windows.Input; + +namespace MSFSPopoutPanelManager.MainApp.ViewModel +{ + public class PanelConfigFieldViewModel : BaseViewModel + { + public PanelConfig DataItem { get; set; } + + public string BindingPath { get; set; } + + public RoutedEvent SourceUpdatedEvent { get; set; } + + public DelegateCommand PlusMinusCommand { get; set; } + + public ICommand DataUpdatedCommand { get; set; } + + public PanelConfigFieldViewModel(MainOrchestrator orchestrator) : base(orchestrator) + { + PlusMinusCommand = new DelegateCommand(OnPlusMinus); + DataUpdatedCommand = new DelegateCommand(OnDataUpdated); + } + + private void OnPlusMinus(object param) + { + if (DataItem == null || BindingPath == null || param == null) + return; + + var bindingPathProperty = typeof(PanelConfig).GetProperty(BindingPath); + + if (bindingPathProperty != null) + { + var value = Convert.ToInt32(bindingPathProperty.GetValue(DataItem, null)); + bindingPathProperty.SetValue(DataItem, Convert.ToInt32(param) + value); + + OnDataUpdated(); + } + } + + private void OnDataUpdated() + { + if (DataItem != null) + Orchestrator.PanelConfiguration.PanelConfigPropertyUpdated(DataItem.PanelHandle, (PanelConfigPropertyName)Enum.Parse(typeof(PanelConfigPropertyName), BindingPath)); + } + } +} diff --git a/MainApp/ViewModel/PanelCoorOverlayViewModel.cs b/MainApp/ViewModel/PanelCoorOverlayViewModel.cs new file mode 100644 index 0000000..3ceba69 --- /dev/null +++ b/MainApp/ViewModel/PanelCoorOverlayViewModel.cs @@ -0,0 +1,21 @@ +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.Orchestration; +using System; +using System.Linq; + +namespace MSFSPopoutPanelManager.MainApp.ViewModel +{ + public class PanelCoorOverlayViewModel : BaseViewModel + { + public PanelCoorOverlayViewModel(MainOrchestrator orchestrator) : base(orchestrator) + { + } + + public PanelConfig? Panel { get; private set; } + + public void SetPanelId(Guid id) + { + Panel = ProfileData.ActiveProfile.PanelConfigs.FirstOrDefault(p => p.Id == id); + } + } +} diff --git a/MainApp/ViewModel/PopOutPanelCardViewModel.cs b/MainApp/ViewModel/PopOutPanelCardViewModel.cs new file mode 100644 index 0000000..bb9acbd --- /dev/null +++ b/MainApp/ViewModel/PopOutPanelCardViewModel.cs @@ -0,0 +1,226 @@ +using MaterialDesignThemes.Wpf; +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.Orchestration; +using MSFSPopoutPanelManager.WindowsAgent; +using Prism.Commands; +using System; +using System.Linq; +using System.Windows.Input; + +namespace MSFSPopoutPanelManager.MainApp.ViewModel +{ + public class PopOutPanelCardViewModel : BaseViewModel + { + public PanelConfig DataItem { get; set; } + + public ICommand MovePanelUpCommand { get; set; } + + public ICommand MovePanelDownCommand { get; set; } + + public ICommand DeletePanelCommand { get; set; } + + public ICommand AddPanelSourceLocationCommand { get; set; } + + public ICommand TouchEnabledCommand { get; set; } + + public ICommand MoveResizePanelCommand { get; set; } + + public DelegateCommand PanelAttributeUpdatedCommand { get; set; } + + public PopOutPanelCardViewModel(MainOrchestrator orchestrator) : base(orchestrator) + { + DataItem = new PanelConfig(); + + MovePanelUpCommand = new DelegateCommand(OnMovePanelUp, () => ProfileData.ActiveProfile != null && ProfileData.ActiveProfile.PanelConfigs.IndexOf(DataItem) > 0) + .ObservesProperty(() => ProfileData.ActiveProfile) + .ObservesProperty(() => ProfileData.ActiveProfile.PanelConfigs) + .ObservesProperty(() => ProfileData.ActiveProfile.PanelConfigs.Count); + + MovePanelDownCommand = new DelegateCommand(OnMovePanelDown, () => ProfileData.ActiveProfile != null && ProfileData.ActiveProfile.PanelConfigs.IndexOf(DataItem) < ProfileData.ActiveProfile.PanelConfigs.Count - 1) + .ObservesProperty(() => ProfileData.ActiveProfile) + .ObservesProperty(() => ProfileData.ActiveProfile.PanelConfigs) + .ObservesProperty(() => ProfileData.ActiveProfile.PanelConfigs.Count); + + AddPanelSourceLocationCommand = new DelegateCommand(OnAddPanelSourceLocation, () => ProfileData.ActiveProfile != null && FlightSimData.IsInCockpit) + .ObservesProperty(() => ProfileData.ActiveProfile) + .ObservesProperty(() => FlightSimData.IsInCockpit); + + MoveResizePanelCommand = new DelegateCommand(OnMoveResizePanel, () => ProfileData.ActiveProfile != null + && DataItem != null + && (ProfileData.ActiveProfile.CurrentMoveResizePanelId == DataItem.Id || ProfileData.ActiveProfile.CurrentMoveResizePanelId == Guid.Empty) + && FlightSimData.IsInCockpit + && DataItem.IsPopOutSuccess != null + && DataItem.PanelHandle != IntPtr.Zero + && !DataItem.FullScreen) + .ObservesProperty(() => ProfileData.ActiveProfile) + .ObservesProperty(() => ProfileData.ActiveProfile.CurrentMoveResizePanelId) + .ObservesProperty(() => FlightSimData.IsInCockpit) + .ObservesProperty(() => DataItem.IsPopOutSuccess) + .ObservesProperty(() => DataItem.PanelHandle) + .ObservesProperty(() => DataItem.FullScreen); + + TouchEnabledCommand = new DelegateCommand(OnTouchEnabled, () => ProfileData.ActiveProfile != null) + .ObservesProperty(() => ProfileData.ActiveProfile); + + DeletePanelCommand = new DelegateCommand(OnDeletePanel); + PanelAttributeUpdatedCommand = new DelegateCommand(OnPanelAttributeUpdated); + + IsEnabledEditPanelSource = true; + } + + public int DataItemIndex => ProfileData.ActiveProfile.PanelConfigs.IndexOf(DataItem); + + public int DataItemsMaxIndex => ProfileData.ActiveProfile.PanelConfigs.Count - 1; + + public bool IsEnabledEditPanelSource { get; set; } + + public bool IsErrorPanel => DataItem.IsPopOutSuccess != null && !(bool)DataItem.IsPopOutSuccess; + + private void OnMovePanelUp() + { + var index = ProfileData.ActiveProfile.PanelConfigs.IndexOf(DataItem); + ProfileData.ActiveProfile.PanelConfigs.Insert(index - 1, DataItem); + ProfileData.ActiveProfile.PanelConfigs.RemoveAt(index + 1); + } + + private void OnMovePanelDown() + { + var index = ProfileData.ActiveProfile.PanelConfigs.IndexOf(DataItem); + ProfileData.ActiveProfile.PanelConfigs.Insert(index + 2, DataItem); + ProfileData.ActiveProfile.PanelConfigs.RemoveAt(index); + } + + private async void OnDeletePanel() + { + var result = await DialogHost.Show(new ConfirmationDialog("Are you sure you want to delete the panel?", "Delete"), "RootDialog"); + + if (result != null && result.Equals("CONFIRM")) + Orchestrator.PanelSource.RemovePanelSource(DataItem); + + if (ProfileData.ActiveProfile.PanelConfigs.Where(p => p.PanelType == PanelType.CustomPopout).Count() == 0 && ProfileData.ActiveProfile.IsEditingPanelSource) + ProfileData.ActiveProfile.IsEditingPanelSource = false; + } + + private void OnTouchEnabled() + { + if (DataItem != null) + Orchestrator.PanelConfiguration.PanelConfigPropertyUpdated(DataItem.PanelHandle, PanelConfigPropertyName.TouchEnabled); + } + + private void OnPanelAttributeUpdated(string? commandParameter) + { + if (DataItem != null && commandParameter != null) + Orchestrator.PanelConfiguration.PanelConfigPropertyUpdated(DataItem.PanelHandle, (PanelConfigPropertyName)Enum.Parse(typeof(PanelConfigPropertyName), commandParameter)); + } + + private async void OnAddPanelSourceLocation() + { + Orchestrator.PanelSource.StartPanelSelectionEvent(); + + DataItem.IsSelectedPanelSource = true; + if (!ProfileData.ActiveProfile.IsEditingPanelSource) + await Orchestrator.PanelSource.StartEditPanelSources(); + + Orchestrator.PanelSource.StartPanelSelection(DataItem); + } + + private void OnMoveResizePanel() + { + if (DataItem.IsEditingPanel) + { + ProfileData.ActiveProfile.CurrentMoveResizePanelId = DataItem.Id; + InputHookManager.StartKeyboardHook(); + InputHookManager.OnKeyUp -= HandleKeyUpEvent; + InputHookManager.OnKeyUp += HandleKeyUpEvent; + } + else + { + ProfileData.ActiveProfile.CurrentMoveResizePanelId = Guid.Empty; + InputHookManager.OnKeyUp -= HandleKeyUpEvent; + InputHookManager.EndKeyboardHook(); + } + } + + private void HandleKeyUpEvent(object? sender, KeyUpEventArgs e) + { + PanelConfigPropertyName panelConfigPropertyName = PanelConfigPropertyName.None; + + if (e.IsHoldControl) + e.KeyCode = $"CTRL+{e.KeyCode}"; + + if (e.IsHoldShift) + e.KeyCode = $"SHFT+{e.KeyCode}"; + + switch (e.KeyCode.ToUpper()) + { + case "UP": + panelConfigPropertyName = PanelConfigPropertyName.Top; + DataItem.Top -= 10; + break; + case "DOWN": + panelConfigPropertyName = PanelConfigPropertyName.Top; + DataItem.Top += 10; + break; + case "LEFT": + panelConfigPropertyName = PanelConfigPropertyName.Left; + DataItem.Left -= 10; + break; + case "RIGHT": + panelConfigPropertyName = PanelConfigPropertyName.Left; + DataItem.Left += 10; + break; + case "SHFT+UP": + panelConfigPropertyName = PanelConfigPropertyName.Top; + DataItem.Top -= 1; + break; + case "SHFT+DOWN": + panelConfigPropertyName = PanelConfigPropertyName.Top; + DataItem.Top += 1; + break; + case "SHFT+LEFT": + panelConfigPropertyName = PanelConfigPropertyName.Left; + DataItem.Left -= 1; + break; + case "SHFT+RIGHT": + panelConfigPropertyName = PanelConfigPropertyName.Left; + DataItem.Left += 1; + break; + case "CTRL+UP": + panelConfigPropertyName = PanelConfigPropertyName.Height; + DataItem.Height -= 10; + break; + case "CTRL+DOWN": + panelConfigPropertyName = PanelConfigPropertyName.Height; + DataItem.Height += 10; + break; + case "CTRL+LEFT": + panelConfigPropertyName = PanelConfigPropertyName.Width; + DataItem.Width -= 10; + break; + case "CTRL+RIGHT": + panelConfigPropertyName = PanelConfigPropertyName.Width; + DataItem.Width += 10; + break; + case "SHFT+CTRL+UP": + panelConfigPropertyName = PanelConfigPropertyName.Height; + DataItem.Height -= 1; + break; + case "SHFT+CTRL+DOWN": + panelConfigPropertyName = PanelConfigPropertyName.Height; + DataItem.Height += 1; + break; + case "SHFT+CTRL+LEFT": + panelConfigPropertyName = PanelConfigPropertyName.Width; + DataItem.Width -= 1; + break; + case "SHFT+CTRL+RIGHT": + panelConfigPropertyName = PanelConfigPropertyName.Width; + DataItem.Width += 1; + break; + } + + if (panelConfigPropertyName != PanelConfigPropertyName.None) + Orchestrator.PanelConfiguration.PanelConfigPropertyUpdated(DataItem.PanelHandle, panelConfigPropertyName); + } + } +} diff --git a/MainApp/ViewModel/PopOutPanelListViewModel.cs b/MainApp/ViewModel/PopOutPanelListViewModel.cs new file mode 100644 index 0000000..cd67eac --- /dev/null +++ b/MainApp/ViewModel/PopOutPanelListViewModel.cs @@ -0,0 +1,12 @@ +using MSFSPopoutPanelManager.Orchestration; + +namespace MSFSPopoutPanelManager.MainApp.ViewModel +{ + public class PopOutPanelListViewModel : BaseViewModel + { + public PopOutPanelListViewModel(MainOrchestrator orchestrator) : base(orchestrator) + { + + } + } +} diff --git a/MainApp/ViewModel/ProfileCardListViewModel.cs b/MainApp/ViewModel/ProfileCardListViewModel.cs new file mode 100644 index 0000000..b647422 --- /dev/null +++ b/MainApp/ViewModel/ProfileCardListViewModel.cs @@ -0,0 +1,81 @@ +using MaterialDesignThemes.Wpf; +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.Orchestration; +using Prism.Commands; +using System; +using System.Windows.Input; + +namespace MSFSPopoutPanelManager.MainApp.ViewModel +{ + public class ProfileCardListViewModel : BaseViewModel + { + public ICommand AddProfileCommand { get; } + + public ICommand NextProfileCommand { get; } + + public ICommand PreviousProfileCommand { get; } + + public ICommand SearchProfileSelectedCommand { get; set; } + + public UserProfile SearchProfileSelectedItem { get; set; } + + public int ProfileTransitionIndex { get; set; } + + public bool IsProfileListEmpty { get { return ProfileData?.Profiles.Count == 0; } } + + public bool IsProfileListNotEmpty { get { return ProfileData?.Profiles.Count > 0; } } + + public event EventHandler OnProfileSelected; + + public ProfileCardListViewModel(MainOrchestrator orchestrator) : base(orchestrator) + { + AddProfileCommand = new DelegateCommand(OnAddProfile); + NextProfileCommand = new DelegateCommand(OnNextProfile); + PreviousProfileCommand = new DelegateCommand(OnPreviousProfile); + SearchProfileSelectedCommand = new DelegateCommand(OnSearchProfileSelected); + + ProfileTransitionIndex = 0; + } + + private async void OnAddProfile() + { + var dialog = new AddProfileDialog(); + var result = await DialogHost.Show(dialog, ROOT_DIALOG_HOST, null, dialog.ClosingEventHandler, null); + + if (result.ToString() == "ADD") + UpdateProfileTransitionIndex(); + } + + private void OnNextProfile() + { + ProfileData.ResetActiveProfile(); + Orchestrator.PanelSource.CloseAllPanelSource(); + Orchestrator.Profile.MoveToNextProfile(); + UpdateProfileTransitionIndex(); + } + + private void OnPreviousProfile() + { + ProfileData.ResetActiveProfile(); + Orchestrator.PanelSource.CloseAllPanelSource(); + Orchestrator.Profile.MoveToPreviousProfile(); + UpdateProfileTransitionIndex(); + } + + private void OnSearchProfileSelected() + { + if (SearchProfileSelectedItem != null) + { + Orchestrator.Profile.ChangeProfile(SearchProfileSelectedItem); + UpdateProfileTransitionIndex(); + + OnProfileSelected?.Invoke(this, null); + } + } + + private void UpdateProfileTransitionIndex() + { + ProfileTransitionIndex = ProfileTransitionIndex == 1 ? 0 : 1; + } + } +} diff --git a/MainApp/ViewModel/ProfileCardViewModel.cs b/MainApp/ViewModel/ProfileCardViewModel.cs new file mode 100644 index 0000000..116bc9b --- /dev/null +++ b/MainApp/ViewModel/ProfileCardViewModel.cs @@ -0,0 +1,137 @@ +using MaterialDesignThemes.Wpf; +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.Orchestration; +using MSFSPopoutPanelManager.Shared; +using Prism.Commands; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Input; + +namespace MSFSPopoutPanelManager.MainApp.ViewModel +{ + public class ProfileCardViewModel : BaseViewModel + { + public ICommand DeleteProfileCommand { get; } + + public ICommand ToggleAircraftBindingCommand { get; } + + public ICommand ToggleLockProfileCommand { get; } + + public ICommand ToggleEditPanelSourceCommand { get; } + + public ICommand AddPanelCommand { get; } + + public ICommand StartPopOutCommand { get; } + + public ICommand IncludeInGamePanelUpdatedCommand { get; } + + public ICommand AddHudBarUpdatedCommand { get; } + + public List HudBarTypes => Enum.GetNames(typeof(HudBarType)).Where(x => x != "None").Select(x => x.Replace("_", " ")).ToList(); + + + public ProfileCardViewModel(MainOrchestrator orchestrator) : base(orchestrator) + { + DeleteProfileCommand = new DelegateCommand(OnDeleteProfile); + + ToggleAircraftBindingCommand = new DelegateCommand(OnEditAircraftBinding, () => ProfileData != null && ProfileData.ActiveProfile != null && FlightSimData != null && FlightSimData.HasAircraftName && ProfileData.IsAllowedAddAircraftBinding && FlightSimData.IsSimulatorStarted) + .ObservesProperty(() => ProfileData.ActiveProfile) + .ObservesProperty(() => FlightSimData.AircraftName) + .ObservesProperty(() => FlightSimData.HasAircraftName) + .ObservesProperty(() => ProfileData.IsAllowedAddAircraftBinding) + .ObservesProperty(() => FlightSimData.IsSimulatorStarted); + + ToggleLockProfileCommand = new DelegateCommand(OnToggleLockProfile, () => ProfileData != null && ProfileData.ActiveProfile != null && ProfileData.ActiveProfile.PanelConfigs.Count > 0) + .ObservesProperty(() => ProfileData.ActiveProfile) + .ObservesProperty(() => ProfileData.ActiveProfile.PanelConfigs.Count); + + ToggleEditPanelSourceCommand = new DelegateCommand(OnToggleEditPanelSource, () => ProfileData != null && ProfileData.ActiveProfile != null && ProfileData.ActiveProfile.PanelConfigs.Count > 0 && !ProfileData.ActiveProfile.IsLocked && FlightSimData.IsInCockpit) + .ObservesProperty(() => ProfileData.ActiveProfile) + .ObservesProperty(() => ProfileData.ActiveProfile.PanelConfigs.Count) + .ObservesProperty(() => ProfileData.ActiveProfile.IsLocked) + .ObservesProperty(() => FlightSimData.IsInCockpit); + + AddPanelCommand = new DelegateCommand(OnAddPanel, () => ProfileData != null && ProfileData.ActiveProfile != null && !ProfileData.ActiveProfile.IsLocked) + .ObservesProperty(() => ProfileData.ActiveProfile) + .ObservesProperty(() => ProfileData.ActiveProfile.IsLocked); + + StartPopOutCommand = new DelegateCommand(OnStartPopOut, () => ProfileData != null && ProfileData.ActiveProfile != null && (ProfileData.ActiveProfile.PanelConfigs.Count > 0 || ProfileData.ActiveProfile.ProfileSetting.IncludeInGamePanels || ProfileData.ActiveProfile.ProfileSetting.HudBarConfig.IsEnabled) && !ProfileData.ActiveProfile.HasUnidentifiedPanelSource && !ProfileData.ActiveProfile.IsEditingPanelSource && FlightSimData.IsInCockpit) + .ObservesProperty(() => ProfileData.ActiveProfile) + .ObservesProperty(() => ProfileData.ActiveProfile.PanelConfigs.Count) + .ObservesProperty(() => ProfileData.ActiveProfile.ProfileSetting.IncludeInGamePanels) + .ObservesProperty(() => ProfileData.ActiveProfile.ProfileSetting.HudBarConfig.IsEnabled) + .ObservesProperty(() => ProfileData.ActiveProfile.HasUnidentifiedPanelSource) + .ObservesProperty(() => ProfileData.ActiveProfile.IsEditingPanelSource) + .ObservesProperty(() => FlightSimData.IsInCockpit); + + IncludeInGamePanelUpdatedCommand = new DelegateCommand(OnIncludeInGamePanelUpdated); + + AddHudBarUpdatedCommand = new DelegateCommand(OnAddHudBarUpdated); + } + + private async void OnDeleteProfile() + { + var result = await DialogHost.Show(new ConfirmationDialog("WARNING! Are you sure you want to delete the profile?", "Delete"), "RootDialog"); + + if (result != null && result.Equals("CONFIRM")) + { + Orchestrator.PanelSource.CloseAllPanelSource(); + Orchestrator.PanelConfiguration.EndConfiguration(); + Orchestrator.Profile.DeleteActiveProfile(); + } + } + + private void OnEditAircraftBinding() + { + if (!ProfileData.IsAircraftBoundToProfile) + Orchestrator.Profile.AddProfileBinding(FlightSimData.AircraftName); + else + Orchestrator.Profile.DeleteProfileBinding(FlightSimData.AircraftName); + } + + private void OnToggleLockProfile() + { + if (ProfileData.ActiveProfile.IsLocked) + { + Orchestrator.PanelSource.CloseAllPanelSource(); + ProfileData.ActiveProfile.IsEditingPanelSource = false; + } + + Orchestrator.PanelConfiguration.StartConfiguration(); + } + + private async void OnToggleEditPanelSource() + { + if (ProfileData.ActiveProfile.IsEditingPanelSource) + await Orchestrator.PanelSource.StartEditPanelSources(); + else + await Orchestrator.PanelSource.EndEditPanelSources(); + } + + private void OnAddPanel() + { + Orchestrator.Profile.AddPanel(); + } + + private void OnStartPopOut() + { + if (IsDisabledAppInput) + return; + + Orchestrator.PanelPopOut.ManualPopOut(); + } + + private void OnIncludeInGamePanelUpdated() + { + if (Orchestrator.ProfileData.ActiveProfile != null && !Orchestrator.ProfileData.ActiveProfile.ProfileSetting.IncludeInGamePanels) + Orchestrator.ProfileData.ActiveProfile.PanelConfigs.RemoveAll(p => p.PanelType == PanelType.BuiltInPopout); + } + + private void OnAddHudBarUpdated() + { + if (Orchestrator.ProfileData.ActiveProfile != null && !Orchestrator.ProfileData.ActiveProfile.ProfileSetting.HudBarConfig.IsEnabled) + Orchestrator.ProfileData.ActiveProfile.PanelConfigs.RemoveAll(p => p.PanelType == PanelType.HudBarWindow); + } + } +} \ No newline at end of file diff --git a/MainApp/ViewModel/TrayIconViewModel.cs b/MainApp/ViewModel/TrayIconViewModel.cs new file mode 100644 index 0000000..1d37beb --- /dev/null +++ b/MainApp/ViewModel/TrayIconViewModel.cs @@ -0,0 +1,55 @@ +using MSFSPopoutPanelManager.Orchestration; +using Prism.Commands; +using System; +using System.Windows; +using System.Windows.Input; + +namespace MSFSPopoutPanelManager.MainApp.ViewModel +{ + public class TrayIconViewModel : BaseViewModel + { + public DelegateCommand ChangeProfileCommand { get; } + + public ICommand StartPopOutCommand { get; } + + public ICommand ExitAppCommand { get; } + + public TrayIconViewModel(MainOrchestrator orchestrator) : base(orchestrator) + { + StartPopOutCommand = new DelegateCommand(OnStartPopOut, () => ProfileData != null && ProfileData.ActiveProfile != null && ProfileData.ActiveProfile.PanelConfigs.Count > 0 && !ProfileData.ActiveProfile.HasUnidentifiedPanelSource && !ProfileData.ActiveProfile.IsEditingPanelSource && FlightSimData.IsInCockpit) + .ObservesProperty(() => ProfileData.ActiveProfile) + .ObservesProperty(() => ProfileData.ActiveProfile.PanelConfigs.Count) + .ObservesProperty(() => ProfileData.ActiveProfile.HasUnidentifiedPanelSource) + .ObservesProperty(() => ProfileData.ActiveProfile.IsEditingPanelSource) + .ObservesProperty(() => FlightSimData.IsInCockpit); + + ChangeProfileCommand = new DelegateCommand(OnChangeProfile); + + ExitAppCommand = new DelegateCommand(OnExitApp); + } + + private void OnChangeProfile(object param) + { + var profileId = Convert.ToString(param); + + if (string.IsNullOrEmpty(profileId)) + return; + + ProfileData.ResetActiveProfile(); + ProfileData.SetActiveProfile(new Guid(profileId)); + } + + private void OnStartPopOut() + { + Orchestrator.PanelPopOut.ManualPopOut(); + } + + private void OnExitApp() + { + Orchestrator.ApplicationClose(); + + if (Application.Current != null) + Environment.Exit(0); + } + } +} diff --git a/WpfApp/log4net.config b/MainApp/log4net.config similarity index 100% rename from WpfApp/log4net.config rename to MainApp/log4net.config diff --git a/WpfApp/logo.ico b/MainApp/logo.ico similarity index 100% rename from WpfApp/logo.ico rename to MainApp/logo.ico diff --git a/WpfApp/resources/logo.png b/MainApp/logo.png similarity index 100% rename from WpfApp/resources/logo.png rename to MainApp/logo.png diff --git a/Orchestration/AppSettingData.cs b/Orchestration/AppSettingData.cs index f6931ca..fd5720f 100644 --- a/Orchestration/AppSettingData.cs +++ b/Orchestration/AppSettingData.cs @@ -1,51 +1,39 @@ -using MSFSPopoutPanelManager.Shared; -using MSFSPopoutPanelManager.UserDataAgent; +using MSFSPopoutPanelManager.DomainModel.Setting; +using MSFSPopoutPanelManager.Shared; using System; namespace MSFSPopoutPanelManager.Orchestration { public class AppSettingData : ObservableObject { - public event EventHandler AppSettingUpdated; public event EventHandler AlwaysOnTopChanged; - public event EventHandler AutoPopOutPanelsChanged; - public event EventHandler TouchPanelIntegrationChanged; + public event EventHandler EnablePanelResetWhenLockedChanged; - public AppSetting AppSetting { get; private set; } + public ApplicationSetting ApplicationSetting { get; private set; } public void ReadSettings() { - AppSetting = AppSettingManager.ReadAppSetting(); + ApplicationSetting = AppSettingDataManager.ReadAppSetting(); - if (AppSetting == null) + if (ApplicationSetting == null) { - AppSetting = new AppSetting(); - AppSettingManager.WriteAppSetting(AppSetting); + ApplicationSetting = new ApplicationSetting(); + AppSettingDataManager.WriteAppSetting(ApplicationSetting); } // Autosave data - AppSetting.PropertyChanged += (sender, e) => + ApplicationSetting.PropertyChanged += (sender, e) => { - var arg = e as PropertyChangedExtendedEventArgs; + AppSettingDataManager.WriteAppSetting(ApplicationSetting); - if (arg.OldValue != arg.NewValue) + switch (e.PropertyName) { - AppSettingManager.WriteAppSetting(AppSetting); - - switch (arg.PropertyName) - { - case "AlwaysOnTop": - AlwaysOnTopChanged?.Invoke(this, (bool)arg.NewValue); - break; - case "AutoPopOutPanels": - AutoPopOutPanelsChanged?.Invoke(this, (bool)arg.NewValue); - break; - case "EnableTouchPanelIntegration": - TouchPanelIntegrationChanged?.Invoke(this, (bool)arg.NewValue); - break; - } - - AppSettingUpdated?.Invoke(this, null); + case "AlwaysOnTop": + AlwaysOnTopChanged?.Invoke(this, ApplicationSetting.GeneralSetting.AlwaysOnTop); + break; + case "EnablePanelResetWhenLocked": + EnablePanelResetWhenLockedChanged?.Invoke(this, ApplicationSetting.PopOutSetting.EnablePanelResetWhenLocked); + break; } }; } diff --git a/Orchestration/AppSettingDataManager.cs b/Orchestration/AppSettingDataManager.cs new file mode 100644 index 0000000..c1eaf03 --- /dev/null +++ b/Orchestration/AppSettingDataManager.cs @@ -0,0 +1,87 @@ +using MSFSPopoutPanelManager.DomainModel.DataFile; +using MSFSPopoutPanelManager.DomainModel.Legacy; +using MSFSPopoutPanelManager.DomainModel.Setting; +using MSFSPopoutPanelManager.Shared; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System.Diagnostics; +using System.IO; + +namespace MSFSPopoutPanelManager.Orchestration +{ + public class AppSettingDataManager + { + private const string APP_SETTING_DATA_FILENAME = "appsettingdata.json"; + + public static ApplicationSetting ReadAppSetting() + { + try + { + Debug.WriteLine("Reading application settings data file..."); + + bool isNeededMigration = false; + string fileContent; + + using (StreamReader reader = new StreamReader(Path.Combine(FileIo.GetUserDataFilePath(), APP_SETTING_DATA_FILENAME))) + { + fileContent = reader.ReadToEnd(); + var jTokens = JObject.Parse(fileContent); + + isNeededMigration = jTokens["FileVersion"] == null; + } + + if (isNeededMigration) + { + var appSetting = MigrateData.MigrateAppSettingFile(fileContent) ?? new ApplicationSetting(); + WriteAppSetting(appSetting); + return appSetting; + } + + return JsonConvert.DeserializeObject(fileContent).ApplicationSetting; + } + catch + { + return null; + } + } + + public static void WriteAppSetting(ApplicationSetting appSetting) + { + try + { + Debug.WriteLine("Saving application settings data file..."); + + var userProfilePath = FileIo.GetUserDataFilePath(); + if (!Directory.Exists(userProfilePath)) + Directory.CreateDirectory(userProfilePath); + + using (StreamWriter file = File.CreateText(Path.Combine(userProfilePath, APP_SETTING_DATA_FILENAME))) + { + JsonSerializer serializer = new JsonSerializer(); + serializer.Serialize(file, new AppSetttingFile { ApplicationSetting = appSetting }); + } + } + catch + { + FileLogger.WriteLog($"Unable to write app setting data file: {APP_SETTING_DATA_FILENAME}", StatusMessageType.Error); + } + } + + public static LegacyAppSetting LegacyReadAppSetting() + { + try + { + Debug.WriteLine("Reading legacy (pre-v4) application settings file..."); + + using (StreamReader reader = new StreamReader(Path.Combine(FileIo.GetUserDataFilePath(), APP_SETTING_DATA_FILENAME))) + { + return JsonConvert.DeserializeObject(reader.ReadToEnd()); + } + } + catch + { + return null; + } + } + } +} diff --git a/Orchestration/FlightSimData.cs b/Orchestration/FlightSimData.cs index 733efd3..8ab4a86 100644 --- a/Orchestration/FlightSimData.cs +++ b/Orchestration/FlightSimData.cs @@ -1,4 +1,5 @@ -using MSFSPopoutPanelManager.Shared; +using MSFSPopoutPanelManager.DomainModel.SimConnect; +using MSFSPopoutPanelManager.Shared; using System; using System.ComponentModel; @@ -6,43 +7,62 @@ namespace MSFSPopoutPanelManager.Orchestration { public class FlightSimData : ObservableObject { - public event PropertyChangedEventHandler CurrentMsfsAircraftChanged; - public event PropertyChangedEventHandler CurrentMsfsLiveryTitleChanged; - - public string CurrentMsfsAircraft { get; set; } - - public string CurrentMsfsLiveryTitle { get; set; } - - public bool HasCurrentMsfsAircraft + public FlightSimData() { - get { return !String.IsNullOrEmpty(CurrentMsfsAircraft); } + Setup(); + InitializeChildPropertyChangeBinding(); + } + + public string AircraftName { get; set; } + + public bool HasAircraftName + { + get { return !String.IsNullOrEmpty(AircraftName); } } public bool ElectricalMasterBatteryStatus { get; set; } + public bool AvionicsMasterSwitchStatus { get; set; } + + public bool TrackIRStatus { get; set; } + + public int CameraState { get; set; } + + public bool PlaneInParkingSpot { get; set; } + public bool IsSimulatorStarted { get; set; } public bool IsInCockpit { get; set; } - public new void OnPropertyChanged(string propertyName, object oldValue, object newValue) + public IHudBarData HudBarData { get; set; } + + [IgnorePropertyChanged] + internal ProfileData ProfileDataRef { get; set; } + + public new void OnPropertyChanged(object sender, PropertyChangedEventArgs e) { - if (oldValue != newValue) - { - base.OnPropertyChanged(propertyName, oldValue, newValue); + base.OnPropertyChanged(this, new PropertyChangedEventArgs(e.PropertyName)); - if (propertyName == "CurrentMsfsAircraft") - CurrentMsfsAircraftChanged?.Invoke(this, null); - - if (propertyName == "CurrentMsfsLiveryTitle") - CurrentMsfsLiveryTitleChanged?.Invoke(this, null); - } + // Automatic switching of active profile when SimConnect active aircraft change + if (e.PropertyName == "AircraftName") + ProfileDataRef.AutoSwitchProfile(); } - public void ClearData() + public void Reset() { - CurrentMsfsAircraft = null; - CurrentMsfsLiveryTitle = null; + Setup(); + } + + private void Setup() + { + AircraftName = null; ElectricalMasterBatteryStatus = false; + AvionicsMasterSwitchStatus = false; + TrackIRStatus = false; + IsInCockpit = false; + PlaneInParkingSpot = false; + CameraState = -1; + IsSimulatorStarted = false; } } } diff --git a/Orchestration/FlightSimOrchestrator.cs b/Orchestration/FlightSimOrchestrator.cs index 42be496..93502c9 100644 --- a/Orchestration/FlightSimOrchestrator.cs +++ b/Orchestration/FlightSimOrchestrator.cs @@ -1,127 +1,428 @@ -using MSFSPopoutPanelManager.Shared; +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.DomainModel.SimConnect; +using MSFSPopoutPanelManager.Shared; using MSFSPopoutPanelManager.SimConnectAgent; +using MSFSPopoutPanelManager.WindowsAgent; using System; +using System.Collections.Generic; +using System.Threading; namespace MSFSPopoutPanelManager.Orchestration { public class FlightSimOrchestrator : ObservableObject { + private const int MSFS_GAME_EXIT_DETECTION_INTERVAL = 3000; + private System.Timers.Timer _msfsGameExitDetectionTimer; private SimConnectProvider _simConnectProvider; - public FlightSimOrchestrator() + private ProfileData _profileData; + private AppSettingData _appSettingData; + private FlightSimData _flightSimData; + private bool _isTurnedOnPower; + private bool _isTurnedOnAvionics; + + public FlightSimOrchestrator(ProfileData profileData, AppSettingData appSettingData, FlightSimData flightSimData) { + _profileData = profileData; + _appSettingData = appSettingData; + _flightSimData = flightSimData; + _simConnectProvider = new SimConnectProvider(); } - internal ProfileData ProfileData { get; set; } + internal PanelPopOutOrchestrator PanelPopOutOrchestrator { get; set; } - internal AppSettingData AppSettingData { get; set; } - - internal FlightSimData FlightSimData { get; set; } + internal PanelConfigurationOrchestrator PanelConfigurationOrchestrator { get; set; } internal SimConnectProvider SimConnectProvider { get { return _simConnectProvider; } } - public event EventHandler OnSimulatorStarted; - public event EventHandler OnSimulatorStopped; - public event EventHandler OnFlightStarted; - public event EventHandler OnFlightStopped; - public event EventHandler OnFlightStartedForAutoPopOut; + public event EventHandler OnSimulatorExited; public void StartSimConnectServer() { + if (_simConnectProvider == null) + _simConnectProvider = new SimConnectProvider(); + _simConnectProvider.OnConnected += (sender, e) => { - FlightSimData.IsSimulatorStarted = true; - OnSimulatorStarted?.Invoke(this, null); + _flightSimData.IsSimulatorStarted = true; + WindowProcessManager.GetSimulatorProcess(); // refresh simulator process + DetectMsfsExit(); }; + _simConnectProvider.OnDisconnected += (sender, e) => { - FlightSimData.IsSimulatorStarted = false; - FlightSimData.ClearData(); - - OnSimulatorStopped?.Invoke(this, null); + WindowProcessManager.GetSimulatorProcess(); // refresh simulator process + _flightSimData.Reset(); }; - _simConnectProvider.OnSimConnectDataRefreshed += (sender, e) => + + _simConnectProvider.OnSimConnectDataRequiredRefreshed += (sender, e) => { - var aircraftName = Convert.ToString(e.Find(d => d.PropName == "AircraftName").Value); - aircraftName = String.IsNullOrEmpty(aircraftName) ? null : aircraftName; - var electricalMasterBattery = Convert.ToBoolean(e.Find(d => d.PropName == "ElectricalMasterBattery").Value); - var liveryName = Convert.ToString(e.Find(d => d.PropName == "Title").Value); + var electricalMasterBattery = Convert.ToBoolean(e.Find(d => d.PropertyName == SimDataDefinitions.PropName.ElectricalMasterBattery).Value); + if (electricalMasterBattery != _flightSimData.ElectricalMasterBatteryStatus) + _flightSimData.ElectricalMasterBatteryStatus = electricalMasterBattery; - if (electricalMasterBattery != FlightSimData.ElectricalMasterBatteryStatus) - FlightSimData.ElectricalMasterBatteryStatus = electricalMasterBattery; + var avionicsMasterSwitch = Convert.ToBoolean(e.Find(d => d.PropertyName == SimDataDefinitions.PropName.AvionicsMasterSwitch).Value); + if (avionicsMasterSwitch != _flightSimData.AvionicsMasterSwitchStatus) + _flightSimData.AvionicsMasterSwitchStatus = avionicsMasterSwitch; - if (liveryName != FlightSimData.CurrentMsfsLiveryTitle) + var trackIR = Convert.ToBoolean(e.Find(d => d.PropertyName == SimDataDefinitions.PropName.TrackIREnable).Value); + if (trackIR != _flightSimData.TrackIRStatus) + _flightSimData.TrackIRStatus = trackIR; + }; + + _simConnectProvider.OnSimConnectDataHudBarRefreshed += (sender, e) => + { + if (_profileData.ActiveProfile.ProfileSetting.HudBarConfig.IsEnabled) + MapHudBarSimConnectData(e); + }; + + _simConnectProvider.OnActiveAircraftChanged += (sender, e) => + { + var aircraftName = String.IsNullOrEmpty(e) ? null : e; + if (_flightSimData.AircraftName != aircraftName) { - FlightSimData.CurrentMsfsLiveryTitle = liveryName; - ProfileData.MigrateLiveryToAircraftBinding(liveryName, aircraftName); - } - - // Automatic switching of active profile when SimConnect active aircraft change - if (FlightSimData.CurrentMsfsAircraft != aircraftName) - { - FlightSimData.CurrentMsfsAircraft = aircraftName; - ProfileData.AutoSwitchProfile(); + _flightSimData.AircraftName = aircraftName; + _profileData.RefreshProfile(); } }; + _simConnectProvider.OnFlightStarted += HandleOnFlightStarted; _simConnectProvider.OnFlightStopped += HandleOnFlightStopped; - _simConnectProvider.OnIsInCockpitChanged += (sender, e) => FlightSimData.IsInCockpit = e; + _simConnectProvider.OnIsInCockpitChanged += (sender, e) => _flightSimData.IsInCockpit = e; _simConnectProvider.Start(); } public void EndSimConnectServer(bool appExit) { _simConnectProvider.Stop(appExit); + _simConnectProvider = null; } - public void TurnOnTrackIR() + public void TurnOnTrackIR(bool writeMessage = true) { - if (AppSettingData.AppSetting.AutoDisableTrackIR) + if (_simConnectProvider == null) + return; + + if (!_appSettingData.ApplicationSetting.TrackIRSetting.AutoDisableTrackIR) + return; + + StatusMessageWriter.WriteMessage("Turning on TrackIR", StatusMessageType.Info); + + int count = 0; + do + { _simConnectProvider.TurnOnTrackIR(); + Thread.Sleep(500); + count++; + } + while (!_flightSimData.TrackIRStatus && count < 5); + + if (_flightSimData.TrackIRStatus) + StatusMessageWriter.WriteOkStatusMessage(); + else + StatusMessageWriter.WriteFailureStatusMessage(); } - public void TurnOffTrackIR() + public void TurnOffTrackIR(bool writeMessage = true) { - if (AppSettingData.AppSetting.AutoDisableTrackIR) + if (_simConnectProvider == null) + return; + + if (!_appSettingData.ApplicationSetting.TrackIRSetting.AutoDisableTrackIR) + return; + + StatusMessageWriter.WriteMessage("Turning off TrackIR", StatusMessageType.Info); + + int count = 0; + do + { _simConnectProvider.TurnOffTrackIR(); + Thread.Sleep(500); + count++; + } + while (_flightSimData.TrackIRStatus && count < 5); + + if (!writeMessage) + return; + + if (!_flightSimData.TrackIRStatus) + StatusMessageWriter.WriteOkStatusMessage(); + else + StatusMessageWriter.WriteFailureStatusMessage(); } public void TurnOnPower() { - if (ProfileData.ActiveProfile != null) - _simConnectProvider.TurnOnPower(ProfileData.ActiveProfile.PowerOnRequiredForColdStart); - } + if (_simConnectProvider == null) + return; - public void TurnOnAvionics() - { - if (ProfileData.ActiveProfile != null) - _simConnectProvider.TurnOnAvionics(ProfileData.ActiveProfile.PowerOnRequiredForColdStart); + if (_profileData.ActiveProfile == null || _flightSimData.ElectricalMasterBatteryStatus) + return; + + _isTurnedOnPower = true; + StatusMessageWriter.WriteMessage("Turning on battery", StatusMessageType.Info); + + int count = 0; + do + { + _simConnectProvider.TurnOnPower(_profileData.ActiveProfile.ProfileSetting.PowerOnRequiredForColdStart); + Thread.Sleep(500); + count++; + } + while (!_flightSimData.ElectricalMasterBatteryStatus && count < 10); + + if (_flightSimData.ElectricalMasterBatteryStatus) + StatusMessageWriter.WriteOkStatusMessage(); + else + StatusMessageWriter.WriteFailureStatusMessage(); } public void TurnOffPower() { - if (ProfileData.ActiveProfile != null) - _simConnectProvider.TurnOffpower(ProfileData.ActiveProfile.PowerOnRequiredForColdStart); + if (_simConnectProvider == null) + return; + + if (_profileData.ActiveProfile == null || !_isTurnedOnPower) + return; + + StatusMessageWriter.WriteMessage("Turning off battery", StatusMessageType.Info); + + int count = 0; + do + { + _simConnectProvider.TurnOffPower(_profileData.ActiveProfile.ProfileSetting.PowerOnRequiredForColdStart); + Thread.Sleep(500); + count++; + } + while (_flightSimData.ElectricalMasterBatteryStatus && count < 10); + + if (!_flightSimData.ElectricalMasterBatteryStatus) + StatusMessageWriter.WriteOkStatusMessage(); + else + StatusMessageWriter.WriteFailureStatusMessage(); + + _isTurnedOnPower = false; + } + + public void TurnOnAvionics() + { + if (_simConnectProvider == null) + return; + + if (_profileData.ActiveProfile == null || _flightSimData.AvionicsMasterSwitchStatus) + return; + + _isTurnedOnAvionics = true; + + StatusMessageWriter.WriteMessage("Turning on avionics", StatusMessageType.Info); + + int count = 0; + do + { + _simConnectProvider.TurnOnAvionics(_profileData.ActiveProfile.ProfileSetting.PowerOnRequiredForColdStart); + Thread.Sleep(500); + count++; + } + while (!_flightSimData.AvionicsMasterSwitchStatus && count < 10); + + if (_flightSimData.AvionicsMasterSwitchStatus) + StatusMessageWriter.WriteOkStatusMessage(); + else + StatusMessageWriter.WriteFailureStatusMessage(); } public void TurnOffAvionics() { - if (ProfileData.ActiveProfile != null) - _simConnectProvider.TurnOffAvionics(ProfileData.ActiveProfile.PowerOnRequiredForColdStart); + if (_simConnectProvider == null) + return; + + if (_profileData.ActiveProfile == null || !_isTurnedOnAvionics) + return; + + StatusMessageWriter.WriteMessage("Turning off avionics", StatusMessageType.Info); + + int count = 0; + do + { + _simConnectProvider.TurnOffAvionics(_profileData.ActiveProfile.ProfileSetting.PowerOnRequiredForColdStart); + Thread.Sleep(500); + count++; + } + while (_flightSimData.AvionicsMasterSwitchStatus && count < 10); + + if (!_flightSimData.AvionicsMasterSwitchStatus) + StatusMessageWriter.WriteOkStatusMessage(); + else + StatusMessageWriter.WriteFailureStatusMessage(); + + _isTurnedOnAvionics = false; + } + + public void TurnOnActivePause() + { + if (_simConnectProvider == null) + return; + + if (!_appSettingData.ApplicationSetting.PopOutSetting.AutoActivePause) + return; + + StatusMessageWriter.WriteMessage("Turning on active pause", StatusMessageType.Info); + _simConnectProvider.TurnOnActivePause(); + StatusMessageWriter.WriteOkStatusMessage(); + } + + public void TurnOffActivePause() + { + if (_simConnectProvider == null) + return; + + if (!_appSettingData.ApplicationSetting.PopOutSetting.AutoActivePause) + return; + + StatusMessageWriter.WriteMessage("Turning off active pause", StatusMessageType.Info); + _simConnectProvider.TurnOffActivePause(); + StatusMessageWriter.WriteOkStatusMessage(); + + } + + public void IncreaseSimRate() + { + if (_simConnectProvider == null) + return; + + if (_flightSimData.HudBarData.SimRate == 16) + return; + + _simConnectProvider.IncreaseSimRate(); + } + + public void DecreaseSimRate() + { + if (_simConnectProvider == null) + return; + + if (_flightSimData.HudBarData.SimRate == 0.25) + return; + + _simConnectProvider.DecreaseSimRate(); + } + + public void SetHudBarConfig() + { + if (_simConnectProvider == null) + return; + + var hudBarType = _profileData.ActiveProfile.ProfileSetting.HudBarConfig.HudBarType; + switch (hudBarType) + { + case HudBarType.PMDG_737: + _flightSimData.HudBarData = new HudBarData737(); + break; + case HudBarType.Generic_Aircraft: + default: + _flightSimData.HudBarData = new HudBarDataGeneric(); + break; + } + + _simConnectProvider.SetHudBarConfig(hudBarType); + } + + public void StopHudBar() + { + _simConnectProvider.StopHudBar(); } private void HandleOnFlightStarted(object sender, EventArgs e) { - OnFlightStarted?.Invoke(this, null); - - if (AppSettingData.AppSetting.AutoPopOutPanels) - OnFlightStartedForAutoPopOut?.Invoke(this, null); + if (_appSettingData.ApplicationSetting.AutoPopOutSetting.IsEnabled) + PanelPopOutOrchestrator.AutoPopOut(); } private void HandleOnFlightStopped(object sender, EventArgs e) { - OnFlightStopped?.Invoke(this, null); + _profileData.ResetActiveProfile(); + PanelConfigurationOrchestrator.EndConfiguration(); + PanelConfigurationOrchestrator.EndTouchHook(); + + WindowActionManager.CloseAllPopOuts(); + + if (_flightSimData.HudBarData != null) + _flightSimData.HudBarData.Clear(); + } + + private void DetectMsfsExit() + { + _msfsGameExitDetectionTimer = new System.Timers.Timer(); + _msfsGameExitDetectionTimer.Interval = MSFS_GAME_EXIT_DETECTION_INTERVAL; + _msfsGameExitDetectionTimer.Enabled = true; + _msfsGameExitDetectionTimer.Elapsed += (source, e) => + { + WindowProcessManager.GetSimulatorProcess(); + if (WindowProcessManager.SimulatorProcess == null) + { + if (_appSettingData.ApplicationSetting.GeneralSetting.AutoClose) + OnSimulatorExited?.Invoke(this, null); + else + { + _flightSimData.Reset(); + _simConnectProvider.StopAndReconnect(); + } + } + }; + } + + private void MapHudBarSimConnectData(List simData) + { + double newValue; + + if (CompareSimConnectData(simData, SimDataDefinitions.PropName.ElevatorTrim, _flightSimData.HudBarData.ElevatorTrim, out newValue)) + _flightSimData.HudBarData.ElevatorTrim = newValue; + + if (CompareSimConnectData(simData, SimDataDefinitions.PropName.AileronTrim, _flightSimData.HudBarData.AileronTrim, out newValue)) + _flightSimData.HudBarData.AileronTrim = newValue; + + if (CompareSimConnectData(simData, SimDataDefinitions.PropName.RudderTrim, _flightSimData.HudBarData.RudderTrim, out newValue)) + _flightSimData.HudBarData.RudderTrim = newValue; + + if (CompareSimConnectData(simData, SimDataDefinitions.PropName.ParkingBrake, _flightSimData.HudBarData.ParkingBrake, out newValue)) + _flightSimData.HudBarData.ParkingBrake = newValue; + + if (CompareSimConnectData(simData, SimDataDefinitions.PropName.Flap, _flightSimData.HudBarData.Flap, out newValue)) + _flightSimData.HudBarData.Flap = newValue; + + if (CompareSimConnectData(simData, SimDataDefinitions.PropName.GearLeft, _flightSimData.HudBarData.GearLeft, out newValue)) + _flightSimData.HudBarData.GearLeft = newValue; + + if (CompareSimConnectData(simData, SimDataDefinitions.PropName.GearCenter, _flightSimData.HudBarData.GearCenter, out newValue)) + _flightSimData.HudBarData.GearCenter = newValue; + + if (CompareSimConnectData(simData, SimDataDefinitions.PropName.GearRight, _flightSimData.HudBarData.GearRight, out newValue)) + _flightSimData.HudBarData.GearRight = newValue; + + if (CompareSimConnectData(simData, SimDataDefinitions.PropName.SimRate, _flightSimData.HudBarData.SimRate, out newValue)) + _flightSimData.HudBarData.SimRate = newValue; + } + + private bool CompareSimConnectData(List simData, string propName, double source, out double newValue) + { + var propData = simData.Find(d => d.PropertyName == propName); + + if (propData == null) + { + newValue = 0; + return false; + } + + var value = Convert.ToDouble(simData.Find(d => d.PropertyName == propName).Value); + if (value != source) + { + newValue = value; + return true; + } + + newValue = 0; + return false; } } } diff --git a/Orchestration/HelpOrchestrator.cs b/Orchestration/HelpOrchestrator.cs new file mode 100644 index 0000000..e0de541 --- /dev/null +++ b/Orchestration/HelpOrchestrator.cs @@ -0,0 +1,130 @@ +using AutoUpdaterDotNET; +using MSFSPopoutPanelManager.Shared; +using System; +using System.Diagnostics; +using System.IO; +using System.Reflection; + +namespace MSFSPopoutPanelManager.Orchestration +{ + public class HelpOrchestrator : ObservableObject + { + public void OpenGettingStarted() + { + Process.Start(new ProcessStartInfo("https://github.com/hawkeye-stan/msfs-popout-panel-manager/blob/master/GETTING_STARTED.md") { UseShellExecute = true }); + } + + public void OpenUserGuide() + { + Process.Start(new ProcessStartInfo("https://github.com/hawkeye-stan/msfs-popout-panel-manager#msfs-pop-out-panel-manager") { UseShellExecute = true }); + } + + public void OpenLatestDownloadGitHub() + { + Process.Start(new ProcessStartInfo("https://github.com/hawkeye-stan/msfs-popout-panel-manager/releases") { UseShellExecute = true }); + } + + public void OpenLatestDownloadFligthsimTo() + { + Process.Start(new ProcessStartInfo("https://flightsim.to/file/35759/msfs-pop-out-panel-manager") { UseShellExecute = true }); + } + + public void OpenLicense() + { + Process.Start("notepad.exe", "LICENSE"); + } + + public void OpenVersionInfo() + { + Process.Start("notepad.exe", "VERSION.md"); + } + + public void OpenDataFolder() + { + Process.Start("explorer.exe", Path.Join(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "MSFS Pop Out Panel Manager")); + } + + public bool HasOrphanAppCache() + { + var applocal = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); + var srcPath = Path.Combine(applocal, @"temp\.net\MSFSPopoutPanelManager"); + + DirectoryInfo di = new DirectoryInfo(srcPath); + + if (di.Exists) + return di.GetDirectories().Length > 1; + + return false; + } + + public void DownloadVCCLibrary() + { + string target = "https://aka.ms/vs/17/release/vc_redist.x64.exe"; + try + { + var psi = new ProcessStartInfo(); + psi.UseShellExecute = true; + psi.FileName = target; + + Process.Start(psi); + } + catch { } + } + + public void DeleteAppCache() + { + var applocal = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); + var srcPath = Path.Combine(applocal, @"temp\.net\MSFSPopoutPanelManager"); + + try + { + var currentAppPath = Directory.GetParent(Assembly.GetExecutingAssembly().Location); + + var dir = new DirectoryInfo(srcPath); + var subDirs = dir.GetDirectories(); + + foreach (var subDir in subDirs) + { + if (subDir.FullName.ToLower().Trim() != currentAppPath.FullName.ToLower().Trim()) + { + Directory.Delete(subDir.FullName, true); + } + } + } + catch (Exception ex) + { + FileLogger.WriteLog("Delete app cache exception: " + ex.Message, StatusMessageType.Error); + } + } + + public void RollBackUpdate() + { + var userProfileBackupPath = Path.Combine(FileIo.GetUserDataFilePath(), "Backup-previous-version", "userprofiledata.json"); + var appSettingBackupPath = Path.Combine(FileIo.GetUserDataFilePath(), "Backup-previous-version", "appsettingdata.json"); + + var userProfilePath = Path.Combine(FileIo.GetUserDataFilePath(), "userprofiledata.json"); + var appSettingPath = Path.Combine(FileIo.GetUserDataFilePath(), "appsettingdata.json"); + + if (File.Exists(userProfileBackupPath)) + File.Copy(userProfileBackupPath, userProfilePath, true); + + if (File.Exists(appSettingBackupPath)) + File.Copy(appSettingBackupPath, appSettingPath, true); + + AutoUpdater.InstalledVersion = new Version("1.0.0.0"); + AutoUpdater.Synchronous = true; + AutoUpdater.AppTitle = "MSFS Pop Out Panel Manager"; + AutoUpdater.RunUpdateAsAdmin = false; + AutoUpdater.UpdateFormSize = new System.Drawing.Size(1024, 660); + AutoUpdater.UpdateMode = Mode.ForcedDownload; + AutoUpdater.Start("https://raw.githubusercontent.com/hawkeye-stan/msfs-popout-panel-manager/master/rollback.xml"); + } + + public bool IsRollBackUpdateEnabled() + { + var appSettingBackupPath = Path.Combine(FileIo.GetUserDataFilePath(), "Backup-previous-version", "appsettingdata.json"); + + return File.Exists(appSettingBackupPath); + } + } +} diff --git a/Orchestration/MainOrchestrator.cs b/Orchestration/MainOrchestrator.cs index cb73b48..4f080c7 100644 --- a/Orchestration/MainOrchestrator.cs +++ b/Orchestration/MainOrchestrator.cs @@ -2,43 +2,38 @@ using MSFSPopoutPanelManager.Shared; using System; using System.IO; -using System.Reflection; using System.Threading.Tasks; +using System.Windows; namespace MSFSPopoutPanelManager.Orchestration { public class MainOrchestrator : ObservableObject { - private const int MSFS_GAME_EXIT_DETECTION_INTERVAL = 3000; - private System.Timers.Timer _msfsGameExitDetectionTimer; - public MainOrchestrator() { - Profile = new ProfileOrchestrator(); - PanelSource = new PanelSourceOrchestrator(); - PanelPopOut = new PanelPopOutOrchestrator(); - PanelConfiguration = new PanelConfigurationOrchestrator(); - FlightSim = new FlightSimOrchestrator(); - OnlineFeature = new OnlineFeatureOrchestrator(); - TouchPanel = new TouchPanelOrchestrator(); - - FlightSimData = new FlightSimData(); - FlightSimData.CurrentMsfsAircraftChanged += (sernder, e) => { ProfileData.RefreshProfile(); ProfileData.AutoSwitchProfile(); }; - FlightSimData.CurrentMsfsLiveryTitleChanged += (sernder, e) => { ProfileData.MigrateLiveryToAircraftBinding(); ProfileData.AutoSwitchProfile(); }; - AppSettingData = new AppSettingData(); - AppSettingData.TouchPanelIntegrationChanged += async (sender, e) => - { - await TouchPanel.TouchPanelIntegrationUpdated(e); - }; - ProfileData = new ProfileData(); - ProfileData.FlightSimData = FlightSimData; - ProfileData.AppSettingData = AppSettingData; - ProfileData.ActiveProfileChanged += (sender, e) => - { - PanelSource.CloseAllPanelSource(); - }; + FlightSimData = new FlightSimData(); + ProfileData.FlightSimDataRef = FlightSimData; + ProfileData.AppSettingDataRef = AppSettingData; + FlightSimData.ProfileDataRef = ProfileData; + + Profile = new ProfileOrchestrator(ProfileData, FlightSimData); + PanelSource = new PanelSourceOrchestrator(ProfileData, AppSettingData); + PanelPopOut = new PanelPopOutOrchestrator(ProfileData, AppSettingData, FlightSimData); + PanelConfiguration = new PanelConfigurationOrchestrator(ProfileData, AppSettingData, FlightSimData); + FlightSim = new FlightSimOrchestrator(ProfileData, AppSettingData, FlightSimData); + Help = new HelpOrchestrator(); + + PanelSource.FlightSimOrchestrator = FlightSim; + + PanelPopOut.FlightSimOrchestrator = FlightSim; + PanelPopOut.PanelSourceOrchestrator = PanelSource; + PanelPopOut.PanelConfigurationOrchestrator = PanelConfiguration; + + FlightSim.PanelPopOutOrchestrator = PanelPopOut; + FlightSim.PanelConfigurationOrchestrator = PanelConfiguration; + FlightSim.OnSimulatorExited += (sender, e) => { ApplicationClose(); Environment.Exit(0); }; } public ProfileOrchestrator Profile { get; set; } @@ -49,8 +44,6 @@ namespace MSFSPopoutPanelManager.Orchestration public PanelConfigurationOrchestrator PanelConfiguration { get; set; } - public TouchPanelOrchestrator TouchPanel { get; set; } - public ProfileData ProfileData { get; set; } public AppSettingData AppSettingData { get; private set; } @@ -59,72 +52,33 @@ namespace MSFSPopoutPanelManager.Orchestration public FlightSimOrchestrator FlightSim { get; set; } - public OnlineFeatureOrchestrator OnlineFeature { get; set; } + public HelpOrchestrator Help { get; set; } public IntPtr ApplicationHandle { get; set; } - public async void Initialize() - { - MigrateData.MigrateUserDataFiles(); + public Window ApplicationWindow { get; set; } + public void Initialize() + { AppSettingData.ReadSettings(); ProfileData.ReadProfiles(); - Profile.ProfileData = ProfileData; - Profile.FlightSimData = FlightSimData; + PanelSource.ApplicationHandle = ApplicationHandle; - PanelSource.ProfileData = ProfileData; - PanelSource.AppSettingData = AppSettingData; - PanelSource.FlightSimData = FlightSimData; - PanelSource.FlightSimOrchestrator = FlightSim; + if (AppSettingData.ApplicationSetting.GeneralSetting.CheckForUpdate) + CheckForAutoUpdate(); - PanelPopOut.ProfileData = ProfileData; - PanelPopOut.AppSettingData = AppSettingData; - PanelPopOut.FlightSimData = FlightSimData; - PanelPopOut.FlightSimOrchestrator = FlightSim; - PanelPopOut.PanelSourceOrchestrator = PanelSource; - PanelPopOut.TouchPanelOrchestrator = TouchPanel; - PanelPopOut.OnPopOutCompleted += (sender, e) => TouchPanel.ReloadTouchPanelSimConnectDataDefinition(); + ProfileData.SetActiveProfile(AppSettingData.ApplicationSetting.SystemSetting.LastUsedProfileId); // Load last used profile - PanelConfiguration.ProfileData = ProfileData; - PanelConfiguration.AppSettingData = AppSettingData; - - FlightSim.ProfileData = ProfileData; - FlightSim.AppSettingData = AppSettingData; - FlightSim.FlightSimData = FlightSimData; - FlightSim.OnFlightStartedForAutoPopOut += (sender, e) => PanelPopOut.AutoPopOut(); - FlightSim.OnSimulatorStarted += (sender, e) => DetectMsfsExit(); - - TouchPanel.ProfileData = ProfileData; - TouchPanel.AppSettingData = AppSettingData; - TouchPanel.ApplicationHandle = ApplicationHandle; - - CheckForAutoUpdate(); - - ProfileData.UpdateActiveProfile(AppSettingData.AppSetting.LastUsedProfileId); // Load last used profile - FlightSim.StartSimConnectServer(); // Start the SimConnect server - - // Enable/Disable touch panel feature (Personal use only feature) - try - { - var assembly = Assembly.LoadFrom(Path.Combine(AppContext.BaseDirectory, "WebServer.dll")); - if (assembly != null) - AppSettingData.AppSetting.IsEnabledTouchPanelServer = true; - - if (AppSettingData.AppSetting.TouchPanelSettings.EnableTouchPanelIntegration) - await TouchPanel.StartServer(); - - assembly = null; - } - catch { } + Task.Run(() => FlightSim.StartSimConnectServer()); // Start the SimConnect server } - public async Task ApplicationClose() + public void ApplicationClose() { // Force unhook all win events PanelConfiguration.EndConfiguration(); + PanelConfiguration.EndTouchHook(); FlightSim.EndSimConnectServer(true); - await TouchPanel.StopServer(); } private void CheckForAutoUpdate() @@ -134,23 +88,8 @@ namespace MSFSPopoutPanelManager.Orchestration AutoUpdater.Synchronous = true; AutoUpdater.AppTitle = "MSFS Pop Out Panel Manager"; AutoUpdater.RunUpdateAsAdmin = false; - AutoUpdater.UpdateFormSize = new System.Drawing.Size(930, 675); - AutoUpdater.Start(AppSettingData.AppSetting.AutoUpdaterUrl); - } - - private void DetectMsfsExit() - { - _msfsGameExitDetectionTimer = new System.Timers.Timer(); - _msfsGameExitDetectionTimer.Interval = MSFS_GAME_EXIT_DETECTION_INTERVAL; - _msfsGameExitDetectionTimer.Enabled = true; - _msfsGameExitDetectionTimer.Elapsed += async (source, e) => - { - if (WindowsAgent.WindowProcessManager.GetSimulatorProcess() == null) - { - await ApplicationClose(); - Environment.Exit(0); - } - }; + AutoUpdater.UpdateFormSize = new System.Drawing.Size(1024, 660); + AutoUpdater.Start(AppSettingData.ApplicationSetting.SystemSetting.AutoUpdaterUrl); } } } diff --git a/Orchestration/MigrateData.cs b/Orchestration/MigrateData.cs index 18e9aa3..b150900 100644 --- a/Orchestration/MigrateData.cs +++ b/Orchestration/MigrateData.cs @@ -1,144 +1,198 @@ -using MSFSPopoutPanelManager.Shared; +using MSFSPopoutPanelManager.DomainModel.Legacy; +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.DomainModel.Setting; +using MSFSPopoutPanelManager.Shared; +using Newtonsoft.Json; using System; +using System.Collections.Generic; using System.IO; +using System.Linq; namespace MSFSPopoutPanelManager.Orchestration { internal class MigrateData { - public static void MigrateUserDataFiles() + private const string USER_PROFILE_DATA_FILENAME = "userprofiledata.json"; + private const string APP_SETTING_DATA_FILENAME = "appsettingdata.json"; + private const string ERROR_LOG_FILENAME = "error.log"; + private const string INFO_LOG_FILENAME = "info.log"; + private const string DEBUG_LOG_FILENAME = "debug.log"; + + public static ApplicationSetting MigrateAppSettingFile(string content) { try { - var newDataPath = FileIo.GetUserDataFilePath(); + BackupAppSettingFile(); - // Check if migration is necessary - if (new DirectoryInfo(newDataPath).Exists) - return; + var appSetting = new ApplicationSetting(); + var legacyAppSetting = JsonConvert.DeserializeObject(content); - var packageFile = new FileInfo("MSFSPopoutPanelManager.exe"); - var oldDataPath = Path.Combine(packageFile.DirectoryName, "userdata"); + // General settings + appSetting.GeneralSetting.AlwaysOnTop = legacyAppSetting.AlwaysOnTop; + appSetting.GeneralSetting.AutoClose = legacyAppSetting.AutoClose; + appSetting.GeneralSetting.MinimizeToTray = legacyAppSetting.MinimizeToTray; + appSetting.GeneralSetting.StartMinimized = legacyAppSetting.StartMinimized; - // Check if upgrading from older version of app - if (!new DirectoryInfo(oldDataPath).Exists) - return; + // Auto pop out setting + appSetting.AutoPopOutSetting.IsEnabled = legacyAppSetting.AutoPopOutPanels; - const string APPSETTING_DATA_JSON = "appsettingdata.json"; - const string USERPROFILE_DATA_JSON = "userprofiledata.json"; + // Pop out setting + appSetting.PopOutSetting.UseLeftRightControlToPopOut = legacyAppSetting.UseLeftRightControlToPopOut; + appSetting.PopOutSetting.MinimizeAfterPopOut = legacyAppSetting.MinimizeAfterPopOut; + appSetting.PopOutSetting.AutoPanning.IsEnabled = legacyAppSetting.UseAutoPanning; + appSetting.PopOutSetting.AutoPanning.KeyBinding = legacyAppSetting.AutoPanningKeyBinding; + appSetting.PopOutSetting.AfterPopOutCameraView.IsEnabled = legacyAppSetting.AfterPopOutCameraView.EnableReturnToCameraView; + appSetting.PopOutSetting.AfterPopOutCameraView.CameraView = legacyAppSetting.AfterPopOutCameraView.CameraView; + appSetting.PopOutSetting.AfterPopOutCameraView.KeyBinding = legacyAppSetting.AfterPopOutCameraView.CustomCameraKeyBinding; - var installationPathDirInfo = packageFile.Directory; + // Refocus setting + appSetting.RefocusSetting.RefocusGameWindow.IsEnabled = legacyAppSetting.TouchScreenSettings.RefocusGameWindow; - var oldAppSettingDataJsonPath = Path.Combine(oldDataPath, APPSETTING_DATA_JSON); - var newAppSettingDataJsonPath = Path.Combine(newDataPath, APPSETTING_DATA_JSON); - var oldUserProfileDataJsonPath = Path.Combine(oldDataPath, USERPROFILE_DATA_JSON); - var newUserProfileDataJsonPath = Path.Combine(newDataPath, USERPROFILE_DATA_JSON); + var delay = Math.Round(legacyAppSetting.TouchScreenSettings.RefocusGameWindowDelay / 1000.0, 1); + appSetting.RefocusSetting.RefocusGameWindow.Delay = delay < 1.0 ? 1.0 : delay; - StatusMessageWriter.WriteMessage($"Performing user data migration to your Windows 'Documents' folder. Please wait.....", StatusMessageType.Info, true, 3, true); + // Touch setting + appSetting.TouchSetting.TouchDownUpDelay = 0; - // Try to create user folder - if (!new DirectoryInfo(newDataPath).Exists) + // Track IR setting + appSetting.TrackIRSetting.AutoDisableTrackIR = legacyAppSetting.AutoDisableTrackIR; + + // Windowed mode setting + appSetting.WindowedModeSetting.AutoResizeMsfsGameWindow = legacyAppSetting.AutoResizeMsfsGameWindow; + + return appSetting; + } + catch (Exception ex) + { + var msg = "An unknown application setting data migration error has occured. Application will close"; + FileLogger.WriteException(msg, ex); + + Environment.Exit(0); + } + + return null; + } + + public static IList MigrateUserProfileFile(string content) + { + try + { + BackupUserProfileFile(); + + var profiles = new List(); + var legacyProfiles = JsonConvert.DeserializeObject>(content); + legacyProfiles = legacyProfiles.OrderBy(p => p.ProfileName.ToLower()).ToList(); + + foreach (var legacyProfile in legacyProfiles) { - var userDocumentFolder = Directory.CreateDirectory(newDataPath); + var profile = new UserProfile(); - if (!new DirectoryInfo(newDataPath).Exists) + profile.Name = legacyProfile.ProfileName; + profile.IsLocked = legacyProfile.IsLocked; + profile.AircraftBindings = legacyProfile.BindingAircrafts; + + profile.ProfileSetting.PowerOnRequiredForColdStart = legacyProfile.PowerOnRequiredForColdStart; + profile.ProfileSetting.IncludeInGamePanels = legacyProfile.IncludeInGamePanels; + + if (legacyProfile.MsfsGameWindowConfig != null) { - StatusMessageWriter.WriteMessage($"Unable to create folder '{userDocumentFolder}'. Application will close.", StatusMessageType.Error, true, 5, true); - Environment.Exit(0); - } - } - - // Try move appsettingdata.json - if (new FileInfo(oldAppSettingDataJsonPath).Exists) - { - File.Copy(oldAppSettingDataJsonPath, newAppSettingDataJsonPath); - - // Verify file has been copied - if (!new FileInfo(newAppSettingDataJsonPath).Exists) - { - StatusMessageWriter.WriteMessage("An error has occured when moving 'appsettingdata.json' to new folder location. Please try manually move this file and restart the app again.", StatusMessageType.Error, true, 5, true); - RemoveDocumentsFolder(); - Environment.Exit(0); + profile.MsfsGameWindowConfig.Top = legacyProfile.MsfsGameWindowConfig.Top; + profile.MsfsGameWindowConfig.Left = legacyProfile.MsfsGameWindowConfig.Left; + profile.MsfsGameWindowConfig.Width = legacyProfile.MsfsGameWindowConfig.Width; + profile.MsfsGameWindowConfig.Height = legacyProfile.MsfsGameWindowConfig.Height; } - File.Delete(oldAppSettingDataJsonPath); - } - - // Try move userprofiledata.json - if (new FileInfo(oldUserProfileDataJsonPath).Exists) - { - File.Copy(oldUserProfileDataJsonPath, newUserProfileDataJsonPath); - - // Verify file has been copied - if (!new FileInfo(newUserProfileDataJsonPath).Exists) + foreach (var legacyPanelConfig in legacyProfile.PanelConfigs) { - StatusMessageWriter.WriteMessage("An error has occured when moving 'userprofiledata.json' to new folder location. Please try manually move this file and restart the app again.", StatusMessageType.Error, true, 5, true); - RemoveDocumentsFolder(); - Environment.Exit(0); + var panelConfig = new PanelConfig(); + + panelConfig.PanelName = legacyPanelConfig.PanelName; + panelConfig.PanelType = legacyPanelConfig.PanelType; + + panelConfig.Top = legacyPanelConfig.Top; + panelConfig.Left = legacyPanelConfig.Left + 9; + panelConfig.Width = legacyPanelConfig.Width - 18; + panelConfig.Height = legacyPanelConfig.Height - 9; + + if (panelConfig.PanelType == PanelType.CustomPopout) + { + var legacyPanelSource = legacyProfile.PanelSourceCoordinates.FirstOrDefault(x => x.PanelIndex == legacyPanelConfig.PanelIndex); + + if (legacyPanelSource != null) + { + panelConfig.PanelSource.X = legacyPanelSource.X; + panelConfig.PanelSource.Y = legacyPanelSource.Y; + panelConfig.PanelSource.Color = PanelConfigColors.GetNextAvailableColor(profile.PanelConfigs.ToList()); + } + } + + panelConfig.AlwaysOnTop = legacyPanelConfig.AlwaysOnTop; + panelConfig.HideTitlebar = legacyPanelConfig.HideTitlebar; + panelConfig.FullScreen = legacyPanelConfig.FullScreen; + + if (legacyProfile.RealSimGearGTN750Gen1Override) + panelConfig.TouchEnabled = false; + else + panelConfig.TouchEnabled = legacyPanelConfig.TouchEnabled; + + if (legacyPanelConfig.DisableGameRefocus || panelConfig.PanelType == PanelType.BuiltInPopout) + panelConfig.AutoGameRefocus = false; + + profile.PanelConfigs.Add(panelConfig); } - File.Delete(oldUserProfileDataJsonPath); + profiles.Add(profile); } - // Now remove all orphan files and folder - CleanFolderRecursive(installationPathDirInfo); - - // Force an update of AppSetting file - var appSettingData = new AppSettingData(); - appSettingData.ReadSettings(); - appSettingData.AppSetting.AlwaysOnTop = !appSettingData.AppSetting.AlwaysOnTop; - System.Threading.Thread.Sleep(500); - appSettingData.AppSetting.AlwaysOnTop = !appSettingData.AppSetting.AlwaysOnTop; - - StatusMessageWriter.WriteMessage(String.Empty, StatusMessageType.Info, false); + return profiles; } catch (Exception ex) { var msg = "An unknown user data migration error has occured. Application will close"; FileLogger.WriteException(msg, ex); - StatusMessageWriter.WriteMessage(msg, StatusMessageType.Error, true, 5, true); Environment.Exit(0); } + + return null; } - private static void CleanFolderRecursive(DirectoryInfo directory) + private static void BackupAppSettingFile() { - foreach (FileInfo filePath in directory.GetFiles()) + var srcPath = Path.Combine(FileIo.GetUserDataFilePath(), APP_SETTING_DATA_FILENAME); + var backupPath = Path.Combine(FileIo.GetUserDataFilePath(), "Backup-previous-version", APP_SETTING_DATA_FILENAME); + + if (File.Exists(srcPath)) { - var name = filePath.Name.ToLower(); - if (name != "msfspopoutpanelmanager.exe") - { - try - { - filePath.Delete(); - } - catch { } - } + Directory.CreateDirectory(Path.Combine(FileIo.GetUserDataFilePath(), "Backup-previous-version")); + File.Copy(srcPath, backupPath, true); } - foreach (DirectoryInfo dir in directory.GetDirectories()) - { - CleanFolderRecursive(new DirectoryInfo(dir.FullName)); + // Delete existing error log + var logFilePath = Path.Combine(FileIo.GetUserDataFilePath(), "LogFiles", ERROR_LOG_FILENAME); + if (File.Exists(logFilePath)) + File.Delete(logFilePath); - var name = dir.Name.ToLower(); - if (name == "resources" || name == "userdata") - { - try - { - dir.Delete(); - } - catch { } - } - } + logFilePath = Path.Combine(FileIo.GetUserDataFilePath(), "LogFiles", INFO_LOG_FILENAME); + if (File.Exists(logFilePath)) + File.Delete(logFilePath); + + logFilePath = Path.Combine(FileIo.GetUserDataFilePath(), "LogFiles", DEBUG_LOG_FILENAME); + if (File.Exists(logFilePath)) + File.Delete(logFilePath); + + FileLogger.WriteLog("File initialized...", StatusMessageType.Error); } - private static void RemoveDocumentsFolder() + private static void BackupUserProfileFile() { - var dataPath = FileIo.GetUserDataFilePath(); + var srcPath = Path.Combine(FileIo.GetUserDataFilePath(), USER_PROFILE_DATA_FILENAME); + var backupPath = Path.Combine(FileIo.GetUserDataFilePath(), "Backup-previous-version", USER_PROFILE_DATA_FILENAME); - if (Directory.Exists(dataPath)) + if (File.Exists(srcPath)) { - Directory.Delete(dataPath, true); + Directory.CreateDirectory(Path.Combine(FileIo.GetUserDataFilePath(), "Backup-previous-version")); + File.Copy(srcPath, backupPath, true); } } } diff --git a/Orchestration/OnlineFeatureOrchestrator.cs b/Orchestration/OnlineFeatureOrchestrator.cs deleted file mode 100644 index 6517ba2..0000000 --- a/Orchestration/OnlineFeatureOrchestrator.cs +++ /dev/null @@ -1,18 +0,0 @@ -using MSFSPopoutPanelManager.Shared; -using MSFSPopoutPanelManager.WindowsAgent; - -namespace MSFSPopoutPanelManager.Orchestration -{ - public class OnlineFeatureOrchestrator : ObservableObject - { - public void OpenUserGuide() - { - WindowProcessManager.OpenOnlineUserGuide(); - } - - public void OpenLatestDownload() - { - WindowProcessManager.OpenOnlineLatestDownload(); - } - } -} diff --git a/Orchestration/Orchestration.csproj b/Orchestration/Orchestration.csproj index 0b93e53..76a208d 100644 --- a/Orchestration/Orchestration.csproj +++ b/Orchestration/Orchestration.csproj @@ -1,6 +1,7 @@  + - net6.0 + net7.0-windows Orchestration MSFS 2020 Popout Panel Manager Orchestration MSFS 2020 Popout Panel Manager Orchestration @@ -10,12 +11,12 @@ https://github.com/hawkeye-stan/msfs-popout-panel-manager MSFSPopoutPanelManager.Orchestration x64 - 3.4.6.0321 - 3.4.6.0321 - 3.4.6.0321 + 4.0.0.0 + 4.0.0.0 + 4.0.0.0 win-x64 Embedded - Debug;Release;DebugTouchPanel;ReleaseTouchPanel + Debug;Release;Local true @@ -30,20 +31,17 @@ true - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + - - - \ No newline at end of file diff --git a/Orchestration/PanelAnalyzer.cs b/Orchestration/PanelAnalyzer.cs deleted file mode 100644 index afc29a1..0000000 --- a/Orchestration/PanelAnalyzer.cs +++ /dev/null @@ -1,201 +0,0 @@ -using MSFSPopoutPanelManager.WindowsAgent; -using System; -using System.Drawing; -using System.Drawing.Imaging; -using System.Threading; - -namespace MSFSPopoutPanelManager.Orchestration -{ - [System.Runtime.Versioning.SupportedOSPlatform("windows")] - public class PanelAnalyzer - { - public static Point GetMagnifyingGlassIconCoordinate(IntPtr hwnd) - { - var sourceImage = TakeScreenShot(hwnd); - - if (sourceImage == null) - return new Point(0, 0); - - Rectangle rectangle = WindowActionManager.GetClientRect(hwnd); - - var panelMenubarTop = GetPanelMenubarTop(sourceImage, rectangle); - if (panelMenubarTop > sourceImage.Height) - return Point.Empty; - - var panelMenubarBottom = GetPanelMenubarBottom(sourceImage, rectangle); - if (panelMenubarBottom > sourceImage.Height) - return Point.Empty; - - var panelsStartingLeft = GetPanelMenubarStartingLeft(sourceImage, rectangle, panelMenubarTop + 5); - - // The center of magnifying glass icon is around (2.7 x height of menubar) to the right of the panel menubar starting left - // But need to use higher number here to click the left side of magnifying glass icon because on some panel, the ratio is smaller - var menubarHeight = panelMenubarBottom - panelMenubarTop; - var magnifyingIconXCoor = panelsStartingLeft - Convert.ToInt32(menubarHeight * 2.7); // ToDo: play around with this multiplier to find the best for all resolutions - var magnifyingIconYCoor = panelMenubarTop + Convert.ToInt32(menubarHeight / 2.2); - - return new Point(magnifyingIconXCoor, magnifyingIconYCoor); - } - - private static Bitmap TakeScreenShot(IntPtr windowHandle) - { - if (!WindowActionManager.IsWindow(windowHandle)) - return null; - - // Set window to foreground so nothing can hide the window - PInvoke.SetForegroundWindow(windowHandle); - Thread.Sleep(300); - - Rectangle rectangle = WindowActionManager.GetWindowRect(windowHandle); - - Rectangle clientRectangle = WindowActionManager.GetClientRect(windowHandle); - - // Take a screen shot by removing the titlebar of the window - var left = rectangle.Left; - var top = rectangle.Top + (rectangle.Height - clientRectangle.Height) - 8; // 8 pixels adjustments - - var bmp = new Bitmap(clientRectangle.Width, clientRectangle.Height, PixelFormat.Format24bppRgb); - - using (Graphics g = Graphics.FromImage(bmp)) - { - g.CopyFromScreen(new Point(left, top), Point.Empty, rectangle.Size); - } - - // Place the above image in the same canvas size as before - Bitmap backingImage = new Bitmap(rectangle.Width, rectangle.Height); - using (Graphics gfx = Graphics.FromImage(backingImage)) - { - using (SolidBrush brush = new SolidBrush(Color.FromArgb(255, 0, 0))) - { - gfx.FillRectangle(brush, 0, 0, rectangle.Width, rectangle.Height); - gfx.DrawImage(bmp, new Point(0, top)); - } - } - - return backingImage; - } - - private static int GetPanelMenubarTop(Bitmap sourceImage, Rectangle rectangle) - { - // Get a snippet of 1 pixel wide vertical strip of windows. We will choose the strip left of center. - // This is to determine when the actual panel's vertical pixel starts in the window. This will allow accurate sizing of the template image - var left = Convert.ToInt32((rectangle.Width) * 0.70); // look at around 70% from the left - - if (left < 0) - return -1; - - unsafe - { - var stripData = sourceImage.LockBits(new Rectangle(left, 0, 1, rectangle.Height), ImageLockMode.ReadWrite, sourceImage.PixelFormat); - - int bytesPerPixel = Bitmap.GetPixelFormatSize(stripData.PixelFormat) / 8; - int heightInPixels = stripData.Height; - int widthInBytes = stripData.Width * bytesPerPixel; - byte* ptrFirstPixel = (byte*)stripData.Scan0; - - for (int y = 0; y < heightInPixels; y++) - { - byte* currentLine = ptrFirstPixel + (y * stripData.Stride); - for (int x = 0; x < widthInBytes; x = x + bytesPerPixel) - { - int red = currentLine[x + 2]; - int green = currentLine[x + 1]; - int blue = currentLine[x]; - - if (red == 255 && green == 255 && blue == 255) - { - sourceImage.UnlockBits(stripData); - return y; - } - } - } - - sourceImage.UnlockBits(stripData); - } - - return -1; - } - - private static int GetPanelMenubarBottom(Bitmap sourceImage, Rectangle rectangle) - { - // Get a snippet of 1 pixel wide vertical strip of windows. We will choose the strip about 70% from the left of the window - var left = Convert.ToInt32((rectangle.Width) * 0.7); // look at around 70% from the left - var top = sourceImage.Height - rectangle.Height; - - if (top < 0 || left < 0) - return -1; - - unsafe - { - var stripData = sourceImage.LockBits(new Rectangle(left, top, 1, rectangle.Height), ImageLockMode.ReadWrite, sourceImage.PixelFormat); - - int bytesPerPixel = Bitmap.GetPixelFormatSize(stripData.PixelFormat) / 8; - int heightInPixels = stripData.Height; - int widthInBytes = stripData.Width * bytesPerPixel; - byte* ptrFirstPixel = (byte*)stripData.Scan0; - - int menubarBottom = -1; - - for (int y = 0; y < heightInPixels; y++) - { - byte* currentLine = ptrFirstPixel + (y * stripData.Stride); - for (int x = 0; x < widthInBytes; x = x + bytesPerPixel) - { - int red = currentLine[x + 2]; - int green = currentLine[x + 1]; - int blue = currentLine[x]; - - if (red > 250 && green > 250 && blue > 250) // allows the color to be a little off white (ie. Fenix A30 EFB) - { - // found the top of menu bar - menubarBottom = y + top; - } - else if (menubarBottom > -1) /// it is no longer white in color, we hit menubar bottom - { - sourceImage.UnlockBits(stripData); - return menubarBottom; - } - } - } - - sourceImage.UnlockBits(stripData); - } - - return -1; - } - - private static int GetPanelMenubarStartingLeft(Bitmap sourceImage, Rectangle rectangle, int top) - { - unsafe - { - var stripData = sourceImage.LockBits(new Rectangle(0, top, rectangle.Width, 1), ImageLockMode.ReadWrite, sourceImage.PixelFormat); - - int bytesPerPixel = Bitmap.GetPixelFormatSize(stripData.PixelFormat) / 8; - int widthInPixels = stripData.Width; - int heightInBytes = stripData.Height * bytesPerPixel; - byte* ptrFirstPixel = (byte*)stripData.Scan0; - - for (int x = 0; x < widthInPixels; x++) - { - byte* currentLine = ptrFirstPixel - (x * bytesPerPixel); - for (int y = 0; y < heightInBytes; y = y + bytesPerPixel) - { - int red = currentLine[y + 2]; - int green = currentLine[y + 1]; - int blue = currentLine[y]; - - if (red > 250 && green > 250 && blue > 250) // allows the color to be a little off white (ie. Fenix A30 EFB) - { - sourceImage.UnlockBits(stripData); - return sourceImage.Width - x; - } - } - } - - sourceImage.UnlockBits(stripData); - } - - return -1; - } - } -} diff --git a/Orchestration/PanelConfigurationOrchestrator.cs b/Orchestration/PanelConfigurationOrchestrator.cs index faecbd2..1cf3560 100644 --- a/Orchestration/PanelConfigurationOrchestrator.cs +++ b/Orchestration/PanelConfigurationOrchestrator.cs @@ -1,71 +1,93 @@ -using MSFSPopoutPanelManager.Shared; -using MSFSPopoutPanelManager.UserDataAgent; +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.Shared; using MSFSPopoutPanelManager.WindowsAgent; using System; -using System.Drawing; +using System.Diagnostics; using System.Linq; using System.Threading; -using System.Threading.Tasks; +using System.Windows; namespace MSFSPopoutPanelManager.Orchestration { public class PanelConfigurationOrchestrator : ObservableObject { - private static WindowProcess _simulatorProcess; - private static PInvoke.WinEventProc _winEvent; // keep this as static to prevent garbage collect or the app will crash - private static IntPtr _winEventHook; - private Rectangle _lastWindowRectangle; - private IntPtr _panelHandleDisableRefresh = IntPtr.Zero; + private ProfileData _profileData; + private AppSettingData _appSettingData; + private FlightSimData _flightSimData; - private uint _prevWinEvent = PInvokeConstant.EVENT_SYSTEM_CAPTUREEND; - private int _winEventClickLock = 0; - private object _hookLock = new object(); - private bool _isHookMouseDown = false; - - public PanelConfigurationOrchestrator() + public PanelConfigurationOrchestrator(ProfileData profileData, AppSettingData appSettingData, FlightSimData flightSimData) { - _winEvent = new PInvoke.WinEventProc(EventCallback); - AllowEdit = true; + _profileData = profileData; + _appSettingData = appSettingData; + _flightSimData = flightSimData; + + _appSettingData.EnablePanelResetWhenLockedChanged += (sender, e) => + { + if (flightSimData.IsInCockpit) + StartConfiguration(); + }; + _profileData.ActiveProfileChanged += (sender, e) => { EndConfiguration(); EndTouchHook(); }; } - internal ProfileData ProfileData { get; set; } - - internal AppSettingData AppSettingData { get; set; } - - private Profile ActiveProfile { get { return ProfileData == null ? null : ProfileData.ActiveProfile; } } - - public bool AllowEdit { get; set; } + private UserProfile ActiveProfile { get { return _profileData == null ? null : _profileData.ActiveProfile; } } public void StartConfiguration() { - _simulatorProcess = WindowProcessManager.GetSimulatorProcess(); + if (!ActiveProfile.IsPoppedOut) + return; - HookWinEvent(); + Debug.WriteLine("Starting Panel Configuration..."); - TouchEventManager.ActiveProfile = ProfileData.ActiveProfile; - TouchEventManager.AppSetting = AppSettingData.AppSetting; + WindowEventManager.ActiveProfile = _profileData.ActiveProfile; + WindowEventManager.ApplicationSetting = _appSettingData.ApplicationSetting; + TouchEventManager.ActiveProfile = _profileData.ActiveProfile; + TouchEventManager.ApplicationSetting = _appSettingData.ApplicationSetting; + GameRefocusManager.ApplicationSetting = _appSettingData.ApplicationSetting; - if (ActiveProfile.PanelConfigs.Any(p => p.TouchEnabled) && !TouchEventManager.IsHooked) + // Must use application dispatcher to dispatch UI events (winEventHook) + Application.Current.Dispatcher.Invoke(() => { - TouchEventManager.Hook(); - } + WindowEventManager.HookWinEvent(); + }); } public void EndConfiguration() { - UnhookWinEvent(); - TouchEventManager.UnHook(); + Debug.WriteLine("Ending Panel Configuration..."); + + Application.Current.Dispatcher.Invoke(() => + { + WindowEventManager.UnhookWinEvent(); + }); } - public void LockStatusUpdated() + public void StartTouchHook() { - ActiveProfile.IsLocked = !ActiveProfile.IsLocked; - ProfileData.WriteProfiles(); + Application.Current.Dispatcher.Invoke(() => + { + TouchEventManager.UnHook(); + + if (!ActiveProfile.IsPoppedOut) + return; + + var hasTouchEnabledPanel = ActiveProfile.PanelConfigs.Any(p => p.TouchEnabled && p.IsPopOutSuccess != null && (bool)p.IsPopOutSuccess); + + if (hasTouchEnabledPanel && !TouchEventManager.IsHooked) + TouchEventManager.Hook(); + }); + } + + public void EndTouchHook() + { + Application.Current.Dispatcher.Invoke(() => + { + TouchEventManager.UnHook(); + }); } public void PanelConfigPropertyUpdated(IntPtr panelHandle, PanelConfigPropertyName configPropertyName) { - if (panelHandle == IntPtr.Zero || !AllowEdit || ActiveProfile.IsLocked) + if (panelHandle == IntPtr.Zero || ActiveProfile.IsLocked || !ActiveProfile.IsPoppedOut) return; var panelConfig = ActiveProfile.PanelConfigs.FirstOrDefault(p => p.PanelHandle == panelHandle); @@ -76,16 +98,16 @@ namespace MSFSPopoutPanelManager.Orchestration { InputEmulationManager.ToggleFullScreenPanel(panelConfig.PanelHandle); - // Set full screen mode panel coordinate - var windowRectangle = WindowActionManager.GetWindowRect(panelConfig.PanelHandle); - var clientRectangle = WindowActionManager.GetClientRect(panelConfig.PanelHandle); - panelConfig.FullScreenLeft = panelConfig.FullScreen ? windowRectangle.Left : 0; - panelConfig.FullScreenTop = panelConfig.FullScreen ? windowRectangle.Top : 0; - panelConfig.FullScreenWidth = panelConfig.FullScreen ? clientRectangle.Width : 0; - panelConfig.FullScreenHeight = panelConfig.FullScreen ? clientRectangle.Height : 0; - - panelConfig.HideTitlebar = false; - panelConfig.AlwaysOnTop = false; + if (panelConfig.FullScreen) + { + var rect = WindowActionManager.GetWindowRectangle(panelConfig.PanelHandle); + panelConfig.Left = rect.Left; + panelConfig.Top = rect.Top; + panelConfig.Width = rect.Width; + panelConfig.Height = rect.Height; + } + else + WindowActionManager.MoveWindow(panelConfig.PanelHandle, panelConfig.Left, panelConfig.Top, panelConfig.Width, panelConfig.Height); } else if (configPropertyName == PanelConfigPropertyName.PanelName) { @@ -94,7 +116,7 @@ namespace MSFSPopoutPanelManager.Orchestration if (panelConfig.PanelType == PanelType.CustomPopout && name.IndexOf("(Custom)") == -1) { name = name + " (Custom)"; - PInvoke.SetWindowText(panelConfig.PanelHandle, name); + WindowActionManager.SetWindowCaption(panelConfig.PanelHandle, name); } } else if (!panelConfig.FullScreen) @@ -103,301 +125,51 @@ namespace MSFSPopoutPanelManager.Orchestration { case PanelConfigPropertyName.Left: case PanelConfigPropertyName.Top: - _panelHandleDisableRefresh = panelConfig.PanelHandle; WindowActionManager.MoveWindow(panelConfig.PanelHandle, panelConfig.Left, panelConfig.Top, panelConfig.Width, panelConfig.Height); break; case PanelConfigPropertyName.Width: case PanelConfigPropertyName.Height: - _panelHandleDisableRefresh = panelConfig.PanelHandle; if (panelConfig.HideTitlebar) + { WindowActionManager.ApplyHidePanelTitleBar(panelConfig.PanelHandle, false); + Thread.Sleep(100); + } - WindowActionManager.MoveWindowWithMsfsBugOverrirde(panelConfig.PanelHandle, panelConfig.Left, panelConfig.Top, panelConfig.Width, panelConfig.Height); + WindowActionManager.MoveWindow(panelConfig.PanelHandle, panelConfig.Left, panelConfig.Top, panelConfig.Width, panelConfig.Height); if (panelConfig.HideTitlebar) + { + Thread.Sleep(100); WindowActionManager.ApplyHidePanelTitleBar(panelConfig.PanelHandle, true); + Thread.Sleep(100); + } break; case PanelConfigPropertyName.AlwaysOnTop: - WindowActionManager.ApplyAlwaysOnTop(panelConfig.PanelHandle, panelConfig.PanelType, panelConfig.AlwaysOnTop, new Rectangle(panelConfig.Left, panelConfig.Top, panelConfig.Width, panelConfig.Height)); + WindowActionManager.ApplyAlwaysOnTop(panelConfig.PanelHandle, panelConfig.PanelType, panelConfig.AlwaysOnTop); break; case PanelConfigPropertyName.HideTitlebar: - _panelHandleDisableRefresh = panelConfig.PanelHandle; WindowActionManager.ApplyHidePanelTitleBar(panelConfig.PanelHandle, panelConfig.HideTitlebar); break; case PanelConfigPropertyName.TouchEnabled: - if (ActiveProfile.PanelConfigs.Any(p => p.TouchEnabled) && !TouchEventManager.IsHooked) - TouchEventManager.Hook(); - else if (ActiveProfile.PanelConfigs.All(p => !p.TouchEnabled) && TouchEventManager.IsHooked) - TouchEventManager.UnHook(); + if (ActiveProfile.IsPoppedOut) + WindowEventManager.HookWinEvent(); - if (!panelConfig.TouchEnabled) - panelConfig.DisableGameRefocus = false; + if (ActiveProfile.PanelConfigs.Any(p => p.TouchEnabled) && !TouchEventManager.IsHooked) // only start hook if it has not been started + StartTouchHook(); + else if (ActiveProfile.PanelConfigs.All(p => !p.TouchEnabled) && TouchEventManager.IsHooked) // only disable hook if no more panel is using touch + EndTouchHook(); + + break; + case PanelConfigPropertyName.AutoGameRefocus: + if (ActiveProfile.IsPoppedOut) + WindowEventManager.HookWinEvent(); break; } } - ProfileData.WriteProfiles(); - } - } - - public void PanelConfigIncreaseDecrease(IntPtr panelHandle, PanelConfigPropertyName configPropertyName, int changeAmount) - { - if (panelHandle == IntPtr.Zero || !AllowEdit || ActiveProfile.IsLocked || ActiveProfile.PanelConfigs == null || ActiveProfile.PanelConfigs.Count == 0) - return; - - var panelConfig = ActiveProfile.PanelConfigs.FirstOrDefault(p => p.PanelHandle == panelHandle); - - if (panelConfig != null) - { - // Should not apply any other settings if panel is full screen mode - if (panelConfig.FullScreen) - return; - - int orignalLeft = panelConfig.Left; - - switch (configPropertyName) - { - case PanelConfigPropertyName.Left: - _panelHandleDisableRefresh = panelConfig.PanelHandle; - panelConfig.Left += changeAmount; - WindowActionManager.MoveWindow(panelConfig.PanelHandle, panelConfig.Left, panelConfig.Top, panelConfig.Width, panelConfig.Height); - break; - case PanelConfigPropertyName.Top: - _panelHandleDisableRefresh = panelConfig.PanelHandle; - panelConfig.Top += changeAmount; - WindowActionManager.MoveWindow(panelConfig.PanelHandle, panelConfig.Left, panelConfig.Top, panelConfig.Width, panelConfig.Height); - break; - case PanelConfigPropertyName.Width: - _panelHandleDisableRefresh = panelConfig.PanelHandle; - panelConfig.Width += changeAmount; - - if (panelConfig.HideTitlebar) - WindowActionManager.ApplyHidePanelTitleBar(panelConfig.PanelHandle, false); - - WindowActionManager.MoveWindowWithMsfsBugOverrirde(panelConfig.PanelHandle, panelConfig.Left, panelConfig.Top, panelConfig.Width, panelConfig.Height); - - if (panelConfig.HideTitlebar) - WindowActionManager.ApplyHidePanelTitleBar(panelConfig.PanelHandle, true); - - break; - case PanelConfigPropertyName.Height: - _panelHandleDisableRefresh = panelConfig.PanelHandle; - panelConfig.Height += changeAmount; - - if (panelConfig.HideTitlebar) - WindowActionManager.ApplyHidePanelTitleBar(panelConfig.PanelHandle, false); - - WindowActionManager.MoveWindowWithMsfsBugOverrirde(panelConfig.PanelHandle, panelConfig.Left, panelConfig.Top, panelConfig.Width, panelConfig.Height); - - if (panelConfig.HideTitlebar) - WindowActionManager.ApplyHidePanelTitleBar(panelConfig.PanelHandle, true); - - break; - default: - return; - } - - ProfileData.WriteProfiles(); - } - } - - private void HookWinEvent() - { - if (ActiveProfile == null || ActiveProfile.PanelConfigs == null || ActiveProfile.PanelConfigs.Count == 0) - return; - - // Setup panel config event hooks - if (ActiveProfile.RealSimGearGTN750Gen1Override && AppSettingData.AppSetting.TouchScreenSettings.RealSimGearGTN750Gen1Override) - _winEventHook = PInvoke.SetWinEventHook(PInvokeConstant.EVENT_SYSTEM_CAPTURESTART, PInvokeConstant.EVENT_OBJECT_LOCATIONCHANGE, IntPtr.Zero, _winEvent, 0, 0, PInvokeConstant.WINEVENT_OUTOFCONTEXT); - else - _winEventHook = PInvoke.SetWinEventHook(PInvokeConstant.EVENT_SYSTEM_MOVESIZEEND, PInvokeConstant.EVENT_OBJECT_LOCATIONCHANGE, IntPtr.Zero, _winEvent, 0, 0, PInvokeConstant.WINEVENT_OUTOFCONTEXT); - } - - private void UnhookWinEvent() - { - // Unhook all Win API events - PInvoke.UnhookWinEvent(_winEventHook); - } - - private void EventCallback(IntPtr hWinEventHook, uint iEvent, IntPtr hwnd, int idObject, int idChild, int dwEventThread, int dwmsEventTime) - { - switch (iEvent) - { - case PInvokeConstant.EVENT_OBJECT_LOCATIONCHANGE: - case PInvokeConstant.EVENT_SYSTEM_MOVESIZEEND: - case PInvokeConstant.EVENT_SYSTEM_CAPTURESTART: - case PInvokeConstant.EVENT_SYSTEM_CAPTUREEND: - // check by priority to speed up comparing of escaping constraints - if (hwnd == IntPtr.Zero || idObject != 0 || hWinEventHook != _winEventHook || !AllowEdit) - return; - - HandleEventCallback(hwnd, iEvent); - break; - default: - break; - } - } - - private void HandleEventCallback(IntPtr hwnd, uint iEvent) - { - var panelConfig = ActiveProfile.PanelConfigs.FirstOrDefault(panel => panel.PanelHandle == hwnd); - - if (panelConfig == null) - return; - - // Should not apply any other settings if panel is full screen mode - if (panelConfig.FullScreen) - return; - - if (panelConfig.IsLockable && ActiveProfile.IsLocked) - { - switch (iEvent) - { - case PInvokeConstant.EVENT_SYSTEM_MOVESIZEEND: - // Move window back to original location - WindowActionManager.MoveWindow(panelConfig.PanelHandle, panelConfig.Left, panelConfig.Top, panelConfig.Width, panelConfig.Height); - break; - case PInvokeConstant.EVENT_OBJECT_LOCATIONCHANGE: - WINDOWPLACEMENT wp = new WINDOWPLACEMENT(); - wp.length = System.Runtime.InteropServices.Marshal.SizeOf(wp); - PInvoke.GetWindowPlacement(hwnd, ref wp); - if (wp.showCmd == PInvokeConstant.SW_SHOWMAXIMIZED || wp.showCmd == PInvokeConstant.SW_SHOWMINIMIZED || wp.showCmd == PInvokeConstant.SW_SHOWNORMAL) - { - PInvoke.ShowWindow(hwnd, PInvokeConstant.SW_RESTORE); - } - break; - case PInvokeConstant.EVENT_SYSTEM_CAPTURESTART: - if (!panelConfig.HasTouchableEvent || _prevWinEvent == PInvokeConstant.EVENT_SYSTEM_CAPTURESTART) - break; - - HandleTouchDownEvent(panelConfig); - break; - case PInvokeConstant.EVENT_SYSTEM_CAPTUREEND: - if (!panelConfig.TouchEnabled || _prevWinEvent == PInvokeConstant.EVENT_OBJECT_LOCATIONCHANGE) - break; - HandleTouchUpEvent(panelConfig); - break; - } - } - else - { - switch (iEvent) - { - case PInvokeConstant.EVENT_OBJECT_LOCATIONCHANGE: - Rectangle winRectangle; - PInvoke.GetWindowRect(panelConfig.PanelHandle, out winRectangle); - - if (_lastWindowRectangle == winRectangle) // ignore duplicate callback messages - return; - - _lastWindowRectangle = winRectangle; - - if (_panelHandleDisableRefresh != IntPtr.Zero) - { - _panelHandleDisableRefresh = IntPtr.Zero; - return; - } - - panelConfig.Left = winRectangle.Left; - panelConfig.Top = winRectangle.Top; - - if (!panelConfig.HideTitlebar) - { - panelConfig.Width = winRectangle.Width - winRectangle.Left; - panelConfig.Height = winRectangle.Height - winRectangle.Top; - } - else - { - panelConfig.Width = winRectangle.Width - winRectangle.Left - 16; - panelConfig.Height = winRectangle.Height - winRectangle.Top - 39; - } - - // Detect if window is maximized, if so, save settings - WINDOWPLACEMENT wp = new WINDOWPLACEMENT(); - wp.length = System.Runtime.InteropServices.Marshal.SizeOf(wp); - PInvoke.GetWindowPlacement(hwnd, ref wp); - if (wp.showCmd == PInvokeConstant.SW_SHOWMAXIMIZED || wp.showCmd == PInvokeConstant.SW_SHOWMINIMIZED) - { - ProfileData.WriteProfiles(); - } - - break; - case PInvokeConstant.EVENT_SYSTEM_MOVESIZEEND: - ProfileData.WriteProfiles(); - break; - case PInvokeConstant.EVENT_SYSTEM_CAPTURESTART: - if (!panelConfig.HasTouchableEvent || _prevWinEvent == PInvokeConstant.EVENT_SYSTEM_CAPTURESTART) - break; - - HandleTouchDownEvent(panelConfig); - break; - case PInvokeConstant.EVENT_SYSTEM_CAPTUREEND: - if (!panelConfig.TouchEnabled || _prevWinEvent == PInvokeConstant.EVENT_OBJECT_LOCATIONCHANGE) - break; - HandleTouchUpEvent(panelConfig); - break; - } - } - } - - private void HandleTouchDownEvent(PanelConfig panelConfig) - { - if (!_isHookMouseDown) - { - lock (_hookLock) - { - Point point; - PInvoke.GetCursorPos(out point); - - // Disable left clicking if user is touching the title bar area - if (point.Y - panelConfig.Top > (panelConfig.HideTitlebar ? 5 : 31)) - _isHookMouseDown = true; - } - } - } - - - private void HandleTouchUpEvent(PanelConfig panelConfig) - { - if (_isHookMouseDown) - { - Thread.Sleep(AppSettingData.AppSetting.TouchScreenSettings.TouchDownUpDelay); - - lock (_hookLock) - { - _isHookMouseDown = false; - - Point point; - PInvoke.GetCursorPos(out point); - - // Disable left clicking if user is touching the title bar area - if (point.Y - panelConfig.Top > (panelConfig.HideTitlebar ? 5 : 31)) - { - var prevWinEventClickLock = ++_winEventClickLock; - - if (prevWinEventClickLock == _winEventClickLock && AppSettingData.AppSetting.TouchScreenSettings.RefocusGameWindow) - { - Task.Run(() => RefocusMsfs(prevWinEventClickLock)); - } - } - } - } - } - - private void RefocusMsfs(int prevWinEventClickLock) - { - Thread.Sleep(AppSettingData.AppSetting.TouchScreenSettings.RefocusGameWindowDelay); - - if (prevWinEventClickLock == _winEventClickLock) - { - if (!_isHookMouseDown) - { - var rectangle = WindowActionManager.GetWindowRect(_simulatorProcess.Handle); - var clientRectangle = WindowActionManager.GetClientRect(_simulatorProcess.Handle); - PInvoke.SetCursorPos(rectangle.X + clientRectangle.Width / 2, rectangle.Y + clientRectangle.Height / 2); - } + _profileData.WriteProfiles(); } } } diff --git a/Orchestration/PanelPopOutOrchestrator.cs b/Orchestration/PanelPopOutOrchestrator.cs index 9e49057..8afa896 100644 --- a/Orchestration/PanelPopOutOrchestrator.cs +++ b/Orchestration/PanelPopOutOrchestrator.cs @@ -1,528 +1,483 @@ -using MSFSPopoutPanelManager.Shared; -using MSFSPopoutPanelManager.UserDataAgent; +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.DomainModel.Setting; +using MSFSPopoutPanelManager.Shared; using MSFSPopoutPanelManager.WindowsAgent; using System; using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Drawing; using System.Linq; using System.Threading; using System.Threading.Tasks; +using System.Windows; namespace MSFSPopoutPanelManager.Orchestration { public class PanelPopOutOrchestrator : ObservableObject { // This will be replaced by a signal from Ready to Fly Skipper into webserver in version 4.0 - private const int READY_TO_FLY_BUTTON_APPEARANCE_DELAY = 4000; - private int _builtInPanelConfigDelay; + private const int READY_TO_FLY_BUTTON_APPEARANCE_DELAY = 2000; - internal ProfileData ProfileData { get; set; } + private ProfileData _profileData; + private AppSettingData _appSettingData; + private FlightSimData _flightSimData; - internal AppSettingData AppSettingData { get; set; } - - internal FlightSimData FlightSimData { get; set; } + public PanelPopOutOrchestrator(ProfileData profileData, AppSettingData appSettingData, FlightSimData flightSimData) + { + _profileData = profileData; + _appSettingData = appSettingData; + _flightSimData = flightSimData; + } internal FlightSimOrchestrator FlightSimOrchestrator { private get; set; } internal PanelSourceOrchestrator PanelSourceOrchestrator { private get; set; } - internal TouchPanelOrchestrator TouchPanelOrchestrator { private get; set; } + internal PanelConfigurationOrchestrator PanelConfigurationOrchestrator { private get; set; } - private Profile ActiveProfile { get { return ProfileData == null ? null : ProfileData.ActiveProfile; } } + private UserProfile ActiveProfile { get { return _profileData == null ? null : _profileData.ActiveProfile; } } - private AppSetting AppSetting { get { return AppSettingData == null ? null : AppSettingData.AppSetting; } } + private ApplicationSetting AppSetting { get { return _appSettingData == null ? null : _appSettingData.ApplicationSetting; } } public event EventHandler OnPopOutStarted; - public event EventHandler OnPopOutCompleted; - public event EventHandler OnTouchPanelOpened; - public event EventHandler OnPanelSourceOverlayFlashed; + public event EventHandler OnPopOutCompleted; + public event EventHandler OnHudBarOpened; - public void ManualPopOut() + public async void ManualPopOut() { - if (ActiveProfile == null) - return; - - InputHookManager.EndHook(); - - if (ActiveProfile.PanelSourceCoordinates.Count > 0 || ActiveProfile.TouchPanelBindings.Count > 0 || ActiveProfile.IncludeInGamePanels) - { - StatusMessageWriter.WriteMessage($"Panels pop out in progress for profile:\n{ActiveProfile.ProfileName}", StatusMessageType.Info, true); - _builtInPanelConfigDelay = 0; - CorePopOutSteps(); - } + await CoreSteps(false); } - public void AutoPopOut() + public async void AutoPopOut() { - if (ActiveProfile == null) - return; - - ProfileData.AutoSwitchProfile(); - - // find the profile with the matching binding aircraft - var profile = ProfileData.Profiles.FirstOrDefault(p => p.BindingAircrafts.Any(p => p == FlightSimData.CurrentMsfsAircraft)); - - // Do not do auto pop out if no profile matches the current aircraft - if (profile == null) - return; - - // Match the delay for Ready to Fly button to disappear - Thread.Sleep(READY_TO_FLY_BUTTON_APPEARANCE_DELAY); - - if (ActiveProfile.PanelSourceCoordinates.Count > 0 || ActiveProfile.TouchPanelBindings.Count > 0 || ActiveProfile.IncludeInGamePanels) + await Application.Current.Dispatcher.Invoke(async () => { - StatusMessageWriter.WriteMessage($"Automatic pop out is starting for profile:\n{profile.ProfileName}", StatusMessageType.Info, true); + _profileData.AutoSwitchProfile(); - // Extra wait for cockpit view to appear and align - Thread.Sleep(2000); + // Do not do auto pop out if no profile matches the current aircraft + if (!ActiveProfile.AircraftBindings.Any(p => p == _flightSimData.AircraftName)) + return; - _builtInPanelConfigDelay = 4000; + // Do not do auto pop out if no panel configs defined + if (ActiveProfile.PanelConfigs.Count == 0) + return; - CorePopOutSteps(); - } + // Do not do auto pop out if not all custom panels have panel source defined + if (ActiveProfile.PanelConfigs.Count(p => p.PanelType == PanelType.CustomPopout) > 0 && + ActiveProfile.PanelConfigs.Count(p => p.PanelType == PanelType.CustomPopout && p.HasPanelSource) != ActiveProfile.PanelConfigs.Count(p => p.PanelType == PanelType.CustomPopout)) + + return; + + await CoreSteps(true); + }); } - private void CorePopOutSteps() + private async Task CoreSteps(bool isAutoPopOut) { - // Set Windowed Display Mode window's configuration if needed - if (AppSettingData.AppSetting.AutoResizeMsfsGameWindow) - WindowActionManager.SetMsfsGameWindowLocation(ActiveProfile.MsfsGameWindowConfig); + if (ActiveProfile == null || ActiveProfile.IsEditingPanelSource || ActiveProfile.HasUnidentifiedPanelSource) + return; - // Has custom pop out panels - if (ActiveProfile.PanelSourceCoordinates.Count > 0) - { - // Turn off TrackIR if TrackIR is started - FlightSimOrchestrator.TurnOffTrackIR(); + OnPopOutStarted?.Invoke(this, null); - // Turn on power if required to pop out panels at least one (fix Cessna 208b grand caravan mod bug where battery is reported as on) - if (ActiveProfile.PowerOnRequiredForColdStart) - { - int count = 0; - do - { - FlightSimOrchestrator.TurnOnPower(); - Thread.Sleep(500); - count++; - } - while (!FlightSimData.ElectricalMasterBatteryStatus && count < 10); - } + StatusMessageWriter.IsEnabled = true; + StatusMessageWriter.ClearMessage(); + StatusMessageWriter.WriteMessageNewLine("Pop out in progress. Please refrain from moving your mouse.", StatusMessageType.Info); - // Turn on avionics if required to pop out panels - if (ActiveProfile.PowerOnRequiredForColdStart) - FlightSimOrchestrator.TurnOnAvionics(); - } + StepPopoutPrep(); - StartPopout(); + await StepReadyToFlyDelay(isAutoPopOut); - // Has custom pop out panels - if (ActiveProfile.PanelSourceCoordinates.Count > 0) - { - // Turn off avionics if needed after pop out - FlightSimOrchestrator.TurnOffAvionics(); + // *** THIS MUST BE DONE FIRST. Get the built-in panel list to be configured later + List builtInPanelHandles = WindowActionManager.GetWindowsByPanelType(new List() { PanelType.BuiltInPopout }); - // Turn off power if needed after pop out - FlightSimOrchestrator.TurnOffPower(); + await StepAddCutomPanels(builtInPanelHandles); - // Return to custom camera view - ReturnToAfterPopOutCameraView(); + StepAddBuiltInPanels(builtInPanelHandles); - // Turn TrackIR back on - FlightSimOrchestrator.TurnOnTrackIR(); - } + StepAddHudBar(); + + StepApplyPanelConfig(); + + await StepPostPopout(); + + StatusMessageWriter.IsEnabled = false; } - private void StartPopout() + + private void StepPopoutPrep() { - List panelConfigs = new List(); + PanelConfigurationOrchestrator.EndConfiguration(); - var simulatorProcess = WindowProcessManager.GetSimulatorProcess(); - - if (simulatorProcess == null || simulatorProcess.Handle == IntPtr.Zero) - { - StatusMessageWriter.WriteMessage("MSFS/SimConnect has not been started. Please try again at a later time.", StatusMessageType.Error, false); - return; - } - - if (ActiveProfile == null) - { - StatusMessageWriter.WriteMessage("No profile has been selected. Please select a profile to continue.", StatusMessageType.Error, false); - return; - } - - if (ActiveProfile.PanelSourceCoordinates.Count == 0 && ActiveProfile.TouchPanelBindings.Count == 0 && !ActiveProfile.IncludeInGamePanels) - { - StatusMessageWriter.WriteMessage("No panel has been selected for the profile. Please select at least one panel to continue.", StatusMessageType.Error, false); - return; - } + // Set profile pop out status + _profileData.ResetActiveProfile(); // Close all existing custom pop out panels WindowActionManager.CloseAllPopOuts(); // Close all panel source overlays PanelSourceOrchestrator.CloseAllPanelSource(); + } - OnPopOutStarted?.Invoke(this, null); - - // Must close out all existing custom pop out panels - if (WindowActionManager.GetWindowsCountByPanelType(new List() { PanelType.CustomPopout, PanelType.MSFSTouchPanel }) > 0) - { - StatusMessageWriter.WriteMessage("Please close all existing panel pop outs to continue.", StatusMessageType.Error, false); + private async Task StepReadyToFlyDelay(bool isAutoPopOut) + { + if (!isAutoPopOut) return; - } - // Try to pop out and separate custom panels - if (ActiveProfile.PanelSourceCoordinates.Count > 0) + await Task.Run(() => { - if (AppSetting.UseAutoPanning) - InputEmulationManager.LoadCustomView(AppSetting.AutoPanningKeyBinding); + StatusMessageWriter.WriteMessage("Waiting on ready to fly button delay", StatusMessageType.Info); - var panelResults = ExecutePopout(); + // Match the delay for Ready to Fly button to disappear + Thread.Sleep(READY_TO_FLY_BUTTON_APPEARANCE_DELAY); - if (panelResults == null) - return; + // Extra wait for cockpit view to appear and align + Thread.Sleep(AppSetting.AutoPopOutSetting.ReadyToFlyDelay * 1000); - panelConfigs.AddRange(panelResults); - } + StatusMessageWriter.WriteOkStatusMessage(); + }); + } - // Add the MSFS Touch Panel (My other github project) windows to the panel list - if (AppSetting.TouchPanelSettings.EnableTouchPanelIntegration) - { - var panelResults = AddMsfsTouchPanels(panelConfigs.Count + 100); // add a panelIndex gap - if (panelResults != null) - panelConfigs.AddRange(panelResults); - } - - // Add the built-in panels from toolbar menu (ie. VFR Map, Check List, Weather, etc) - if (ActiveProfile.IncludeInGamePanels) - { - // Allow delay to wait for in game built-in pop outs to appear - Thread.Sleep(_builtInPanelConfigDelay); - - var panelResults = AddBuiltInPanels(); - if (panelResults != null) - panelConfigs.AddRange(panelResults); - } - if (panelConfigs.Count == 0) - { - StatusMessageWriter.WriteMessage("No panels have been found. Please select at least one in-game panel.", StatusMessageType.Error, true); + private async Task StepAddCutomPanels(List builtInPanelHandles) + { + if (!ActiveProfile.HasCustomPanels) return; - } - if (panelConfigs.Count > 0) - { - if (ActiveProfile.PanelConfigs.Count > 0) - { - LoadAndApplyPanelConfigs(panelConfigs); - StatusMessageWriter.WriteMessage("Panels have been popped out succesfully and saved panel settings have been applied.", StatusMessageType.Info, true); - OnPopOutCompleted?.Invoke(this, false); - } - else - { - LoadAndApplyPanelConfigs(panelConfigs); - StatusMessageWriter.WriteMessage("Panels have been popped out succesfully.", StatusMessageType.Info, true); - OnPopOutCompleted?.Invoke(this, true); - } + await StepPreCustomPanelPopOut(); - if (!ActiveProfile.IsLocked) - ProfileData.WriteProfiles(); + await StepCustomPanelPopOut(builtInPanelHandles); - // For migrating existing profile, if using windows mode, save MSFS game window configuration - if (AppSettingData.AppSetting.AutoResizeMsfsGameWindow && !ActiveProfile.MsfsGameWindowConfig.IsValid) - ProfileData.SaveMsfsGameWindowConfig(); - } + await StepPostCustomPanelPopOut(); } - private List ExecutePopout() + private async Task StepPreCustomPanelPopOut() { - List panels = new List(); - - // PanelIndex starts at 1 - for (var i = 1; i <= ActiveProfile.PanelSourceCoordinates.Count; i++) + await Task.Run(() => { - var x = ActiveProfile.PanelSourceCoordinates[i - 1].X; - var y = ActiveProfile.PanelSourceCoordinates[i - 1].Y; - - // show the panel source overlay for split second - Task task = new Task(() => OnPanelSourceOverlayFlashed?.Invoke(this, ActiveProfile.PanelSourceCoordinates[i - 1])); - task.RunSynchronously(); - - InputEmulationManager.PopOutPanel(x, y, AppSetting.UseLeftRightControlToPopOut); - - // Get an AceApp window with non Microsoft Flight Simulator as window title - var handle = PInvoke.FindWindow("AceApp", null); - - // Unable to find pop out window because of application delay - var simulatorProcess = WindowProcessManager.GetSimulatorProcess(); - if (handle.Equals(simulatorProcess.Handle)) - handle = IntPtr.Zero; - - if (handle == IntPtr.Zero && i == 1) + // Set Windowed Display Mode window's configuration if needed + if (_appSettingData.ApplicationSetting.WindowedModeSetting.AutoResizeMsfsGameWindow && WindowActionManager.IsMsfsGameInWindowedMode()) { - StatusMessageWriter.WriteMessage("Unable to pop out the first panel. Please check the first panel's number circle is positioned inside the panel, check for panel obstruction, and check if panel can be popped out. Pop out process stopped.", StatusMessageType.Error, true); - return null; - } - else if (handle == IntPtr.Zero) - { - StatusMessageWriter.WriteMessage($"Unable to pop out panel number {i}. Please check panel's number circle is positioned inside the panel, check for panel obstruction, and check if panel can be popped out. Pop out process stopped.", StatusMessageType.Error, true); - return null; + StatusMessageWriter.WriteMessage("Moving and resizing MSFS game window", StatusMessageType.Info); + WindowActionManager.SetMsfsGameWindowLocation(ActiveProfile.MsfsGameWindowConfig); + Thread.Sleep(500); + StatusMessageWriter.WriteOkStatusMessage(); } - var clientRect = WindowActionManager.GetClientRect(handle); + // Turn on power and avionics if required to pop out panels at least one (fix Cessna 208b grand caravan mod bug where battery is reported as on) + if (ActiveProfile.ProfileSetting.PowerOnRequiredForColdStart) + { + FlightSimOrchestrator.TurnOnPower(); + FlightSimOrchestrator.TurnOnAvionics(); + } - var panel = new PanelConfig(); - panel.PanelHandle = handle; - panel.PanelType = PanelType.CustomPopout; - panel.PanelIndex = i; - panel.PanelName = $"Panel{i}"; - panel.Top = (i - 1) * 30; - panel.Left = (i - 1) * 30; - panel.Width = clientRect.Width; - panel.Height = clientRect.Height; - panels.Add(panel); + // Turn off TrackIR if TrackIR is started + FlightSimOrchestrator.TurnOffTrackIR(); - PInvoke.SetWindowText(panel.PanelHandle, panel.PanelName + " (Custom)"); - } + // Turn on Active Pause + FlightSimOrchestrator.TurnOnActivePause(); - //Perform validation, make sure the number of pop out panels is equal to the number of selected panel - if (WindowActionManager.GetWindowsCountByPanelType(new List() { PanelType.CustomPopout }) != ActiveProfile.PanelSourceCoordinates.Count) - { - StatusMessageWriter.WriteMessage("Unable to pop out all panels. Please align all panel number circles with in-game panel locations.", StatusMessageType.Error, false); - return null; - } - - return panels; + // Setting custom camera angle for auto panning + if (AppSetting.PopOutSetting.AutoPanning.IsEnabled) + { + StatusMessageWriter.WriteMessage("Setting auto panning camera angle", StatusMessageType.Info); + InputEmulationManager.LoadCustomView(AppSetting.PopOutSetting.AutoPanning.KeyBinding); + StatusMessageWriter.WriteOkStatusMessage(); + } + }); } - private List AddBuiltInPanels() + private async Task StepCustomPanelPopOut(List builtInPanelHandles) { - List builtinPanels = new List(); - - var panelHandles = WindowActionManager.GetWindowsByPanelType(new List() { PanelType.BuiltInPopout }); - - foreach (var panelHandle in panelHandles) + await Task.Run(() => { - var rectangle = WindowActionManager.GetWindowRect(panelHandle); - var clientRectangle = WindowActionManager.GetClientRect(panelHandle); + // Save current application location to restore it after pop out + var appLocation = WindowActionManager.GetWindowRectangle(WindowProcessManager.GetApplicationProcess().Handle); - builtinPanels.Add(new PanelConfig() + int index = 0; + foreach (var panelConfig in ActiveProfile.PanelConfigs) { - PanelIndex = -1, - PanelHandle = panelHandle, - PanelType = PanelType.BuiltInPopout, - PanelName = WindowActionManager.GetWindowCaption(panelHandle), - Top = rectangle.Top, - Left = rectangle.Left, - Width = clientRectangle.Width, - Height = clientRectangle.Height - }); - } - - return builtinPanels.Count == 0 ? null : builtinPanels; - } - - private List AddMsfsTouchPanels(int panelIndex) - { - List touchPanels = new List(); - - if (AppSetting.TouchPanelSettings.EnableTouchPanelIntegration) - { - TouchPanelOrchestrator.LoadPlaneProfiles(); - - if (TouchPanelOrchestrator.PlaneProfiles == null) - return null; - - // Find all selected panels - var panelConfigs = TouchPanelOrchestrator.PlaneProfiles.SelectMany(p => p.Panels.Where(c => c.IsSelected)); - - foreach (var panelConfig in panelConfigs) - { - var caption = $"{panelConfig.Name} (Touch Panel)"; - - // Change width and height to 1080p aspect ratio - double aspectRatio = 1; - if (panelConfig.Width > 1920) + if (panelConfig.PanelType == PanelType.CustomPopout) { - aspectRatio = Convert.ToDouble(1920) / panelConfig.Width; - panelConfig.Width = 1920; // there are hidden padding to make it to 1920 - panelConfig.Height = Convert.ToInt32(panelConfig.Height * aspectRatio); + StatusMessageWriter.WriteMessage($"Popping out panel '{panelConfig.PanelName}'", StatusMessageType.Info); + + panelConfig.IsSelectedPanelSource = true; + //PanelSourceOrchestrator.ShowPanelSourceNonEdit(panelConfig); + //Thread.Sleep(500); + //PanelSourceOrchestrator.ClosePanelSourceNonEdit(panelConfig); + ExecuteCustomPopout(panelConfig, builtInPanelHandles, index++); + ApplyPanelLocation(panelConfig); + panelConfig.IsSelectedPanelSource = false; + + if (panelConfig.IsPopOutSuccess != null && !(bool)panelConfig.IsPopOutSuccess) + StatusMessageWriter.WriteFailureStatusMessage(); + else + StatusMessageWriter.WriteOkStatusMessage(); } + } - OnTouchPanelOpened?.Invoke(this, new TouchPanelOpenEventArg() { PlaneId = panelConfig.PlaneId, PanelId = panelConfig.PanelId, Caption = caption, Width = panelConfig.Width, Height = panelConfig.Height }); + // Restore current application location + WindowActionManager.MoveWindow(WindowProcessManager.GetApplicationProcess().Handle, appLocation); + }); + } - // detect for a max of 5 seconds - int tryCount = 0; - while (tryCount < 10) + private async Task StepPostCustomPanelPopOut() + { + await Task.Run(() => + { + if (ActiveProfile.ProfileSetting.PowerOnRequiredForColdStart) + { + FlightSimOrchestrator.TurnOffAvionics(); + FlightSimOrchestrator.TurnOffPower(); + } + + // Turn TrackIR back on + FlightSimOrchestrator.TurnOnTrackIR(); + + // Turn on Active Pause + FlightSimOrchestrator.TurnOffActivePause(); + + // Return to custom camera view if set + var task = Task.Run(() => ReturnToAfterPopOutCameraView()); + }); + } + + private void StepAddBuiltInPanels(List builtInPanelHandles) + { + if (ActiveProfile.ProfileSetting.IncludeInGamePanels) + { + var builtInPanels = new List(); + + StatusMessageWriter.WriteMessage("Configuring built-in panel", StatusMessageType.Info); + + foreach (var panelHandle in builtInPanelHandles) + { + var panelCaption = WindowActionManager.GetWindowCaption(panelHandle); + var panelConfig = ActiveProfile.PanelConfigs.FirstOrDefault(p => p.PanelName == panelCaption); + + if (panelConfig == null) { - var touchPanelHandle = WindowActionManager.FindWindowByCaption(caption); - if (touchPanelHandle != IntPtr.Zero) + if (!ActiveProfile.IsLocked) { - var dimension = WindowActionManager.GetWindowRect(touchPanelHandle); - var panelInfo = new PanelConfig + var rectangle = WindowActionManager.GetWindowRectangle(panelHandle); + panelConfig = new PanelConfig() { - PanelIndex = panelIndex, - PanelHandle = touchPanelHandle, - PanelName = caption, - PanelType = PanelType.MSFSTouchPanel, - Top = dimension.Top, - Left = dimension.Left, - Width = panelConfig.Width, - Height = panelConfig.Height, - AlwaysOnTop = true // default to always on top + PanelHandle = panelHandle, + PanelType = PanelType.BuiltInPopout, + PanelName = panelCaption, + Top = rectangle.Top, + Left = rectangle.Left, + Width = rectangle.Width, + Height = rectangle.Height, + AutoGameRefocus = false }; - touchPanels.Add(panelInfo); - break; + ActiveProfile.PanelConfigs.Add(panelConfig); } - Thread.Sleep(500); - tryCount++; } + else + { + panelConfig.PanelHandle = panelHandle; - if (tryCount == 10) - return null; - - panelIndex++; + // Need to do it twice for MSFS to take this setting (MSFS bug) + ApplyPanelLocation(panelConfig); + ApplyPanelLocation(panelConfig); + } } - } - return touchPanels.Count == 0 ? null : touchPanels; + // Set handles for missing built-in panels + foreach (var panelConfig in ActiveProfile.PanelConfigs) + { + if (panelConfig.PanelType == PanelType.BuiltInPopout && panelConfig.PanelHandle == IntPtr.MaxValue) + panelConfig.PanelHandle = IntPtr.Zero; + } + + if (ActiveProfile.PanelConfigs.Any(p => p.PanelType == PanelType.BuiltInPopout && p.IsPopOutSuccess != null && !(bool)p.IsPopOutSuccess) || + ActiveProfile.PanelConfigs.Count(p => p.PanelType == PanelType.BuiltInPopout) == 0) + StatusMessageWriter.WriteFailureStatusMessage(); + else + StatusMessageWriter.WriteOkStatusMessage(); + } } - private void LoadAndApplyPanelConfigs(List panelResults) + private void StepAddHudBar() { - ActiveProfile.PanelConfigs.ToList().ForEach(p => p.PanelHandle = IntPtr.Zero); + if (!ActiveProfile.ProfileSetting.HudBarConfig.IsEnabled) + return; - Parallel.ForEach(panelResults, panel => + StatusMessageWriter.WriteMessage("Opening HUD Bar", StatusMessageType.Info); + + var panelConfig = ActiveProfile.PanelConfigs.FirstOrDefault(p => p.PanelType == PanelType.HudBarWindow); + + if (panelConfig == null) { - // Something is wrong here where panel has no window handle - if (panel.PanelHandle == IntPtr.Zero) - return; - - PanelConfig savedPanelConfig = null; - - if (panel.PanelType == PanelType.CustomPopout || panel.PanelType == PanelType.MSFSTouchPanel) - savedPanelConfig = ActiveProfile.PanelConfigs.FirstOrDefault(s => s.PanelIndex == panel.PanelIndex); - else if (panel.PanelType == PanelType.BuiltInPopout) - savedPanelConfig = ActiveProfile.PanelConfigs.FirstOrDefault(s => s.PanelName == panel.PanelName); - - // Apply MSFS saved panel location if available since this panel is newly profiled - if (savedPanelConfig == null) + panelConfig = new PanelConfig() { - var rect = WindowActionManager.GetWindowRect(panel.PanelHandle); - panel.Top = rect.Top; - panel.Left = rect.Left; - return; - } + PanelName = "HUD Bar", + PanelType = PanelType.HudBarWindow, + AutoGameRefocus = false + }; - // Assign window handle to panel config - savedPanelConfig.PanelHandle = panel.PanelHandle; + ActiveProfile.PanelConfigs.Add(panelConfig); + } - // Apply panel name - if (savedPanelConfig.PanelType == PanelType.CustomPopout) + OnHudBarOpened?.Invoke(this, panelConfig); + + StatusMessageWriter.WriteOkStatusMessage(); + } + + private void StepApplyPanelConfig() + { + // Must apply other panel config after pop out since MSFS popping out action will overwrite panel config such as Always on Top + foreach (var panelConfig in ActiveProfile.PanelConfigs) + { + ApplyPanelConfig(panelConfig); + + // Set title bar color + if (_appSettingData.ApplicationSetting.PopOutSetting.PopOutTitleBarCustomization.IsEnabled && !panelConfig.FullScreen) { - var caption = savedPanelConfig.PanelName + " (Custom)"; - PInvoke.SetWindowText(savedPanelConfig.PanelHandle, caption); - Thread.Sleep(500); + WindowActionManager.SetWindowTitleBarColor(panelConfig.PanelHandle, _appSettingData.ApplicationSetting.PopOutSetting.PopOutTitleBarCustomization.HexColor); } + } + } - // Apply locations - if (savedPanelConfig.Width != 0 && savedPanelConfig.Height != 0) - { - PInvoke.ShowWindow(savedPanelConfig.PanelHandle, PInvokeConstant.SW_RESTORE); - Thread.Sleep(250); - WindowActionManager.MoveWindow(savedPanelConfig.PanelHandle, savedPanelConfig.Left, savedPanelConfig.Top, savedPanelConfig.Width, savedPanelConfig.Height); - Thread.Sleep(1000); - } + private async Task StepPostPopout() + { + await Task.Run(() => + { + // Set profile pop out status + ActiveProfile.IsPoppedOut = true; - // Apply window size again to overcome a bug in MSFS that when moving panel between monitors, panel automatic resize for no reason - if (savedPanelConfig.PanelType == PanelType.BuiltInPopout) - { - Thread.Sleep(2000); // Overcome GTN750 bug - WindowActionManager.MoveWindow(savedPanelConfig.PanelHandle, savedPanelConfig.Left, savedPanelConfig.Top, savedPanelConfig.Width, savedPanelConfig.Height); - Thread.Sleep(1000); - } + // Must use application dispatcher to dispatch UI events (winEventHook) + PanelConfigurationOrchestrator.StartConfiguration(); - if (!savedPanelConfig.FullScreen) - { - // Apply always on top - if (savedPanelConfig.AlwaysOnTop) - { - WindowActionManager.ApplyAlwaysOnTop(savedPanelConfig.PanelHandle, savedPanelConfig.PanelType, true, new Rectangle(savedPanelConfig.Left, savedPanelConfig.Top, savedPanelConfig.Width, savedPanelConfig.Height)); - Thread.Sleep(1000); - } + // Start touch hook + PanelConfigurationOrchestrator.StartTouchHook(); - // Apply hide title bar - if (savedPanelConfig.HideTitlebar) - WindowActionManager.ApplyHidePanelTitleBar(savedPanelConfig.PanelHandle, true); - } + if (CheckForPopOutError()) + StatusMessageWriter.WriteMessageNewLine("Pop out has been completed with error.", StatusMessageType.Info, 10); + else + StatusMessageWriter.WriteMessageNewLine("Pop out has been completed successfully.", StatusMessageType.Info, 10); - PInvoke.ShowWindow(savedPanelConfig.PanelHandle, PInvokeConstant.SW_RESTORE); + Thread.Sleep(1000); + OnPopOutCompleted?.Invoke(this, null); }); + } - // If profile is unlocked, add any new panel into profile - if (!ActiveProfile.IsLocked) + private void ExecuteCustomPopout(PanelConfig panel, List builtInPanelHandles, int index) + { + if (panel.PanelType == PanelType.CustomPopout) { - // Need this to fix collectionview modification thread issue - var finalPanelConfigs = ActiveProfile.PanelConfigs.ToList(); + // There should only be one handle that is not in both builtInPanelHandles vs latestAceAppWindowsWithCaptionHandles + var handle = TryPopOutCustomPanel(panel.PanelSource, builtInPanelHandles); - var isAdded = false; - - foreach (var panel in panelResults) + if (handle == IntPtr.Zero) { - if ((panel.PanelType == PanelType.BuiltInPopout || panel.PanelType == PanelType.MSFSTouchPanel) && !ActiveProfile.PanelConfigs.Any(s => s.PanelName == panel.PanelName)) - { - finalPanelConfigs.Add(panel); - isAdded = true; - } - else if (panel.PanelType == PanelType.CustomPopout && !ActiveProfile.PanelConfigs.Any(s => s.PanelIndex == panel.PanelIndex)) - { - finalPanelConfigs.Add(panel); - isAdded = true; - } + panel.PanelHandle = IntPtr.Zero; + return; } - if (isAdded) + // Unable to pop out panel, the handle was previously popped out's handle + if (_profileData.ActiveProfile.PanelConfigs.Any(p => p.PanelHandle.Equals(handle)) || handle.Equals(WindowProcessManager.SimulatorProcess.Handle) || handle == IntPtr.Zero) { - ActiveProfile.PanelConfigs = new ObservableCollection(finalPanelConfigs); - ProfileData.WriteProfiles(); + panel.PanelHandle = IntPtr.Zero; + return; + } + + panel.PanelHandle = handle; + WindowActionManager.SetWindowCaption(panel.PanelHandle, $"{panel.PanelName} (Custom)"); + + // First time popping out + if (panel.Width == 0 && panel.Height == 0) + { + var rect = WindowActionManager.GetWindowRectangle(panel.PanelHandle); + panel.Top = 0 + index * 30; + panel.Left = 0 + index * 30; + panel.Width = rect.Width; + panel.Height = rect.Height; + } + } + } + + private IntPtr TryPopOutCustomPanel(PanelSource panelSource, List builtInPanelHandles) + { + // Try to pop out 5 times before failure with 1/4 second wait in between + int count = 0; + do + { + InputEmulationManager.PopOutPanel((int)panelSource.X, (int)panelSource.Y, AppSetting.PopOutSetting.UseLeftRightControlToPopOut); + + var latestAceAppWindowsWithCaptionHandles = WindowActionManager.GetWindowsByPanelType(new List() { PanelType.BuiltInPopout }); + + // There should only be one handle that is not in both builtInPanelHandles vs latestAceAppWindowsWithCaptionHandles + var handle = latestAceAppWindowsWithCaptionHandles.Except(builtInPanelHandles).FirstOrDefault(); + + if (handle != IntPtr.Zero) + return handle; + + Thread.Sleep(250); + count++; + } + while (count < 5); + + return IntPtr.Zero; + } + + private void ApplyPanelLocation(PanelConfig panel) + { + if (panel.IsPopOutSuccess == null || !((bool)panel.IsPopOutSuccess) || panel.PanelHandle == IntPtr.Zero) + return; + + // Apply top/left/width/height + WindowActionManager.MoveWindow(panel.PanelHandle, panel.Left, panel.Top, panel.Width, panel.Height); + } + + private void ApplyPanelConfig(PanelConfig panel) + { + if (panel.IsPopOutSuccess == null || !((bool)panel.IsPopOutSuccess) || panel.PanelHandle == IntPtr.Zero) + return; + + if (!panel.FullScreen) + { + // Apply always on top + if (panel.AlwaysOnTop) + { + WindowActionManager.ApplyAlwaysOnTop(panel.PanelHandle, panel.PanelType, panel.AlwaysOnTop); + Thread.Sleep(250); + } + + // Apply hide title bar + if (panel.HideTitlebar) + { + WindowActionManager.ApplyHidePanelTitleBar(panel.PanelHandle, true); + Thread.Sleep(250); } } - // Apply full screen (cannot combine with always on top or hide title bar) - // Cannot run in parallel process - ActiveProfile.PanelConfigs.ToList().ForEach(panel => + if (panel.FullScreen && !panel.AlwaysOnTop && !panel.HideTitlebar) { - if (panel.FullScreen && (!panel.AlwaysOnTop && !panel.HideTitlebar)) - { - InputEmulationManager.ToggleFullScreenPanel(panel.PanelHandle); - Thread.Sleep(250); - - // Set full screen mode panel coordinate - var windowRectangle = WindowActionManager.GetWindowRect(panel.PanelHandle); - var clientRectangle = WindowActionManager.GetClientRect(panel.PanelHandle); - panel.FullScreenLeft = windowRectangle.Left; - panel.FullScreenTop = windowRectangle.Top; - panel.FullScreenWidth = clientRectangle.Width; - panel.FullScreenHeight = clientRectangle.Height; - } - }); + Thread.Sleep(500); + InputEmulationManager.ToggleFullScreenPanel(panel.PanelHandle); + Thread.Sleep(250); + } } private void ReturnToAfterPopOutCameraView() { - if (!AppSetting.AfterPopOutCameraView.EnableReturnToCameraView) + if (!AppSetting.PopOutSetting.AfterPopOutCameraView.IsEnabled) return; - switch (AppSetting.AfterPopOutCameraView.CameraView) + switch (AppSetting.PopOutSetting.AfterPopOutCameraView.CameraView) { case AfterPopOutCameraViewType.CockpitCenterView: InputEmulationManager.CenterView(); break; case AfterPopOutCameraViewType.CustomCameraView: - InputEmulationManager.LoadCustomView(AppSetting.AfterPopOutCameraView.CustomCameraKeyBinding); + InputEmulationManager.LoadCustomView(AppSetting.PopOutSetting.AfterPopOutCameraView.KeyBinding); break; } } + + private bool CheckForPopOutError() + { + return ActiveProfile.PanelConfigs.Count(p => p.IsPopOutSuccess != null && (bool)p.IsPopOutSuccess) != ActiveProfile.PanelConfigs.Count(p => p.IsPopOutSuccess != null); + } } } diff --git a/Orchestration/PanelSourceOrchestrator.cs b/Orchestration/PanelSourceOrchestrator.cs index ceedd1b..ec7a227 100644 --- a/Orchestration/PanelSourceOrchestrator.cs +++ b/Orchestration/PanelSourceOrchestrator.cs @@ -1,186 +1,176 @@ -using MSFSPopoutPanelManager.Shared; -using MSFSPopoutPanelManager.UserDataAgent; +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.DomainModel.Setting; +using MSFSPopoutPanelManager.Shared; using MSFSPopoutPanelManager.WindowsAgent; using System; -using System.Collections.ObjectModel; -using System.Drawing; +using System.Threading.Tasks; +using Point = System.Drawing.Point; namespace MSFSPopoutPanelManager.Orchestration { public class PanelSourceOrchestrator : ObservableObject { - private int _panelIndex; + private ProfileData _profileData; + private AppSettingData _appSettingData; - internal ProfileData ProfileData { get; set; } + public PanelSourceOrchestrator(ProfileData profileData, AppSettingData appSettingData) + { + _profileData = profileData; + _appSettingData = appSettingData; - internal AppSettingData AppSettingData { get; set; } - - internal FlightSimData FlightSimData { get; set; } + _profileData.ActiveProfileChanged += (sender, e) => { CloseAllPanelSource(); }; + } internal FlightSimOrchestrator FlightSimOrchestrator { get; set; } - private Profile ActiveProfile { get { return ProfileData == null ? null : ProfileData.ActiveProfile; } } + internal IntPtr ApplicationHandle { get; set; } - private AppSetting AppSetting { get { return AppSettingData == null ? null : AppSettingData.AppSetting; } } + private UserProfile ActiveProfile { get { return _profileData == null ? null : _profileData.ActiveProfile; } } - public event EventHandler OnOverlayShowed; - public event EventHandler OnLastOverlayRemoved; - public event EventHandler OnAllOverlaysRemoved; - public event EventHandler OnSelectionStarted; - public event EventHandler OnSelectionCompleted; + private ApplicationSetting AppSetting { get { return _appSettingData == null ? null : _appSettingData.ApplicationSetting; } } - public bool IsEditingPanelSource { get; set; } + public event EventHandler OnOverlayShowed; + public event EventHandler OnOverlayRemoved; + public event EventHandler OnPanelSourceSelectionStarted; + public event EventHandler OnPanelSourceSelectionCompleted; - public void StartPanelSelection() + public void StartPanelSelectionEvent() { - if (ActiveProfile == null) - return; - - _panelIndex = 1; - - // remove all existing panel overlay display - for (var i = 0; i < ActiveProfile.PanelSourceCoordinates.Count; i++) - OnLastOverlayRemoved?.Invoke(this, null); - - ActiveProfile.PanelSourceCoordinates = new ObservableCollection(); - ActiveProfile.PanelConfigs.Clear(); - ActiveProfile.IsLocked = false; - - InputHookManager.OnLeftClick -= HandleOnPanelSelectionAdded; - InputHookManager.OnLeftClick += HandleOnPanelSelectionAdded; - InputHookManager.OnShiftLeftClick -= HandleOnLastPanelSelectionRemoved; - InputHookManager.OnShiftLeftClick += HandleOnLastPanelSelectionRemoved; - InputHookManager.OnCtrlLeftClick -= HandleOnPanelSelectionCompleted; - InputHookManager.OnCtrlLeftClick += HandleOnPanelSelectionCompleted; - - // Turn off TrackIR if TrackIR is started - FlightSimOrchestrator.TurnOffTrackIR(); - - OnSelectionStarted?.Invoke(this, null); - - InputHookManager.StartHook(); + OnPanelSourceSelectionStarted?.Invoke(this, null); } - public void SaveAutoPanningCamera() + public void StartPanelSelection(PanelConfig panelConfig) { - var simualatorProcess = WindowProcessManager.GetSimulatorProcess(); - if (simualatorProcess == null) + _profileData.ActiveProfile.IsEditingPanelSource = true; + + InputHookManager.OnLeftClick += (sender, e) => HandleOnPanelSelectionAdded(panelConfig, e); + InputHookManager.StartMouseHook(); + } + + public async Task StartEditPanelSources() + { + await Task.Run(() => { - StatusMessageWriter.WriteMessage("MSFS/SimConnect has not been started. Please try again at a later time.", StatusMessageType.Error, false); - return; + // Set Windowed Display Mode window's configuration if needed + if (_appSettingData.ApplicationSetting.WindowedModeSetting.AutoResizeMsfsGameWindow) + WindowActionManager.SetMsfsGameWindowLocation(ActiveProfile.MsfsGameWindowConfig); + + if (AppSetting.PopOutSetting.AutoPanning.IsEnabled) + { + InputEmulationManager.LoadCustomView(AppSetting.PopOutSetting.AutoPanning.KeyBinding); + WindowActionManager.BringWindowToForeground(ApplicationHandle); + } + }); + + foreach (var panel in _profileData.ActiveProfile.PanelConfigs) + { + if (panel.HasPanelSource) + OnOverlayShowed?.Invoke(this, panel); } - InputEmulationManager.SaveCustomView(AppSettingData.AppSetting.AutoPanningKeyBinding); - - // If using windows mode, save MSFS game window configuration - if (AppSettingData.AppSetting.AutoResizeMsfsGameWindow) - ProfileData.SaveMsfsGameWindowConfig(); - - StatusMessageWriter.WriteMessage("Auto Panning Camera has been saved succesfully.", StatusMessageType.Info, false); + // Turn off TrackIR if TrackIR is started + FlightSimOrchestrator.TurnOffTrackIR(false); } - public void EditPanelSource() + public async Task EndEditPanelSources() { - IsEditingPanelSource = !IsEditingPanelSource; + foreach (var panel in _profileData.ActiveProfile.PanelConfigs) + { + OnOverlayRemoved?.Invoke(this, panel); + } - if (IsEditingPanelSource) - StartEditPanelSource(); - else - EndEditPanelSource(); + // Save last auto panning camera angle + if (AppSetting.PopOutSetting.AutoPanning.IsEnabled) + { + InputEmulationManager.SaveCustomView(AppSetting.PopOutSetting.AutoPanning.KeyBinding); + + // If using windows mode, save MSFS game window configuration + if (_appSettingData.ApplicationSetting.WindowedModeSetting.AutoResizeMsfsGameWindow) + _profileData.SaveMsfsGameWindowConfig(); + } + + await Task.Run(() => + { + // Recenter game or return to after pop out camera view + if (!AppSetting.PopOutSetting.AfterPopOutCameraView.IsEnabled) + InputEmulationManager.CenterView(); + else + { + switch (AppSetting.PopOutSetting.AfterPopOutCameraView.CameraView) + { + case AfterPopOutCameraViewType.CockpitCenterView: + InputEmulationManager.CenterView(); + break; + case AfterPopOutCameraViewType.CustomCameraView: + InputEmulationManager.LoadCustomView(AppSetting.PopOutSetting.AfterPopOutCameraView.KeyBinding); + break; + } + } + + WindowActionManager.BringWindowToForeground(ApplicationHandle); + + // Turn TrackIR back on + FlightSimOrchestrator.TurnOnTrackIR(false); + }); + } + + public void ShowPanelSourceNonEdit(PanelConfig panel) + { + if (panel.HasPanelSource) + OnOverlayShowed?.Invoke(this, panel); + } + + public void ClosePanelSourceNonEdit(PanelConfig panel) + { + OnOverlayRemoved?.Invoke(this, panel); } public void CloseAllPanelSource() { - IsEditingPanelSource = false; - OnAllOverlaysRemoved?.Invoke(this, null); - } - - public void HandleOnPanelSelectionAdded(object sender, Point e) - { - if (ActiveProfile == null) - return; - - var newCoor = new PanelSourceCoordinate() { PanelIndex = _panelIndex, X = e.X, Y = e.Y }; - - ActiveProfile.PanelSourceCoordinates.Add(newCoor); - _panelIndex++; - - OnOverlayShowed?.Invoke(this, newCoor); - } - - public void HandleOnLastPanelSelectionRemoved(object sender, Point e) - { - if (ActiveProfile == null) - return; - - if (ActiveProfile.PanelSourceCoordinates.Count > 0) + if (ActiveProfile != null) { - ActiveProfile.PanelSourceCoordinates.RemoveAt(ActiveProfile.PanelSourceCoordinates.Count - 1); - _panelIndex--; + ActiveProfile.IsEditingPanelSource = false; - OnLastOverlayRemoved?.Invoke(this, null); + foreach (var panelConfig in ActiveProfile.PanelConfigs) + OnOverlayRemoved?.Invoke(this, panelConfig); } } - private void StartEditPanelSource() + public void HandleOnPanelSelectionAdded(PanelConfig panelConfig, Point e) { + OnPanelSourceSelectionCompleted?.Invoke(this, null); + + InputHookManager.EndMouseHook(); + if (ActiveProfile == null) return; - // Set Windowed Display Mode window's configuration if needed - if (AppSettingData.AppSetting.AutoResizeMsfsGameWindow) - WindowActionManager.SetMsfsGameWindowLocation(ActiveProfile.MsfsGameWindowConfig); + panelConfig.PanelSource.X = e.X; + panelConfig.PanelSource.Y = e.Y; - // remove all existing panel overlay display - for (var i = 0; i < ActiveProfile.PanelSourceCoordinates.Count; i++) - OnAllOverlaysRemoved?.Invoke(this, null); + _profileData.WriteProfiles(); - foreach (var coor in ActiveProfile.PanelSourceCoordinates) - OnOverlayShowed?.Invoke(this, new PanelSourceCoordinate() { PanelIndex = coor.PanelIndex, X = coor.X, Y = coor.Y }); - - // Turn off TrackIR if TrackIR is started - FlightSimOrchestrator.TurnOffTrackIR(); - - if (AppSetting.UseAutoPanning) - InputEmulationManager.LoadCustomView(AppSetting.AutoPanningKeyBinding); - } - - private void EndEditPanelSource() - { - if (ActiveProfile == null) - return; - - // Remove all existing panel overlay display - for (var i = 0; i < ActiveProfile.PanelSourceCoordinates.Count; i++) - OnAllOverlaysRemoved?.Invoke(this, null); - - // Turn TrackIR back on - FlightSimOrchestrator.TurnOnTrackIR(); - } - - private void HandleOnPanelSelectionCompleted(object sender, Point e) - { - if (ActiveProfile == null) - return; - - // If enable, save the current viewport into custom view by Ctrl-Alt-0 - if (AppSetting.UseAutoPanning) - InputEmulationManager.SaveCustomView(AppSetting.AutoPanningKeyBinding); - - ProfileData.WriteProfiles(); + // Show source circle on screen + OnOverlayShowed?.Invoke(this, panelConfig); // If using windows mode, save MSFS game window configuration - if (AppSettingData.AppSetting.AutoResizeMsfsGameWindow) - ProfileData.SaveMsfsGameWindowConfig(); + if (_appSettingData.ApplicationSetting.WindowedModeSetting.AutoResizeMsfsGameWindow) + _profileData.SaveMsfsGameWindowConfig(); - InputHookManager.EndHook(); + panelConfig.IsSelectedPanelSource = false; + } - // Turn TrackIR back on - FlightSimOrchestrator.TurnOnTrackIR(); + public void RemovePanelSource(PanelConfig panelConfig) + { + // Disable hooks if active + InputHookManager.EndMouseHook(); + InputHookManager.EndKeyboardHook(); - IsEditingPanelSource = false; + _profileData.ActiveProfile.CurrentMoveResizePanelId = Guid.Empty; - OnSelectionCompleted?.Invoke(this, null); + OnOverlayRemoved?.Invoke(this, panelConfig); + + _profileData.ActiveProfile.PanelConfigs.Remove(panelConfig); } } } diff --git a/Orchestration/ProfileData.cs b/Orchestration/ProfileData.cs index 9acce89..c21a43e 100644 --- a/Orchestration/ProfileData.cs +++ b/Orchestration/ProfileData.cs @@ -1,7 +1,9 @@ -using MSFSPopoutPanelManager.Shared; -using MSFSPopoutPanelManager.UserDataAgent; -using System.Collections.ObjectModel; +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.Shared; +using MSFSPopoutPanelManager.WindowsAgent; +using System; using System.ComponentModel; +using System.Diagnostics; using System.Linq; namespace MSFSPopoutPanelManager.Orchestration @@ -12,95 +14,186 @@ namespace MSFSPopoutPanelManager.Orchestration public ProfileData() { - Profiles = new ObservableCollection(); + Profiles = new SortedObservableCollection(); } - public ObservableCollection Profiles { get; private set; } + public SortedObservableCollection Profiles { get; private set; } - public FlightSimData FlightSimData { private get; set; } + [IgnorePropertyChanged] + internal FlightSimData FlightSimDataRef { private get; set; } - public AppSettingData AppSettingData { private get; set; } + [IgnorePropertyChanged] + internal AppSettingData AppSettingDataRef { private get; set; } - public int AddProfile(string profileName) + public void AddProfile(string profileName) { - var newProfileId = ProfileManager.AddProfile(profileName, Profiles); - UpdateActiveProfile(newProfileId); - AppSettingData.AppSetting.LastUsedProfileId = newProfileId; - return newProfileId; + var newProfile = new UserProfile(); + newProfile.Name = profileName; + newProfile.ProfileChanged += (sender, e) => WriteProfiles(); + + Profiles.Add(newProfile); + SetActiveProfile(newProfile.Id); + + ProfileDataManager.WriteProfiles(Profiles); + + AppSettingDataRef.ApplicationSetting.SystemSetting.LastUsedProfileId = newProfile.Id; } - public int AddProfile(string profileName, int copyFromProfileId) + public void AddProfile(string profileName, UserProfile copiedProfile) { - var newProfileId = ProfileManager.AddProfile(profileName, copyFromProfileId, Profiles); - UpdateActiveProfile(newProfileId); - AppSettingData.AppSetting.LastUsedProfileId = newProfileId; - return newProfileId; + if (copiedProfile == null) + return; + + var newProfile = new UserProfile(); + newProfile.Name = profileName; + + foreach (var copiedPanelConfig in copiedProfile.PanelConfigs) + { + var copied = copiedPanelConfig.Copy(); + + copied.Id = Guid.NewGuid(); + copied.PanelHandle = IntPtr.MaxValue; + copied.IsEditingPanel = false; + + newProfile.PanelConfigs.Add(copied); + } + + newProfile.ProfileSetting = copiedProfile.ProfileSetting.Copy(); + newProfile.MsfsGameWindowConfig = copiedProfile.MsfsGameWindowConfig.Copy(); + newProfile.ProfileChanged += (sender, e) => WriteProfiles(); + + Profiles.Add(newProfile); + SetActiveProfile(newProfile.Id); + + ProfileDataManager.WriteProfiles(Profiles); + + AppSettingDataRef.ApplicationSetting.SystemSetting.LastUsedProfileId = newProfile.Id; } - public bool DeleteProfile(int profileId) + public bool DeleteActiveProfile() { if (ActiveProfile == null) return false; - var success = ProfileManager.DeleteProfile(profileId, Profiles); - UpdateActiveProfile(-1); + var activeProfileIndex = Profiles.IndexOf(ActiveProfile); + + Profiles.Remove(ActiveProfile); + + if (activeProfileIndex == 0 && Profiles.Count == 0) + SetActiveProfile(-1); + else if (activeProfileIndex == Profiles.Count) + SetActiveProfile(0); + else + SetActiveProfile(activeProfileIndex); + return true; } - public void AddProfileBinding(string aircraft, int activeProfileId) + public void AddProfileBinding(string aircraft) { if (ActiveProfile == null) return; - ProfileManager.AddProfileBinding(aircraft, activeProfileId, Profiles); + var boundProfile = Profiles.FirstOrDefault(p => p.AircraftBindings.Any(p => p == aircraft)); + if (boundProfile != null) + return; + + ActiveProfile.AircraftBindings.Add(aircraft); + + ProfileDataManager.WriteProfiles(Profiles); RefreshProfile(); } - public void DeleteProfileBinding(string aircraft, int activeProfileId) + public void DeleteProfileBinding(string aircraft) { if (ActiveProfile == null) return; - ProfileManager.DeleteProfileBinding(aircraft, activeProfileId, Profiles); + ActiveProfile.AircraftBindings.Remove(aircraft); + + ProfileDataManager.WriteProfiles(Profiles); RefreshProfile(); } public void ReadProfiles() { - Profiles = new ObservableCollection(ProfileManager.ReadProfiles()); + Profiles = new SortedObservableCollection(ProfileDataManager.ReadProfiles()); + Profiles.ToList().ForEach(p => p.ProfileChanged += (sender, e) => WriteProfiles()); + + // Detect profiles collection changes + Profiles.CollectionChanged += (sender, e) => + { + switch (e.Action) + { + case System.Collections.Specialized.NotifyCollectionChangedAction.Add: + case System.Collections.Specialized.NotifyCollectionChangedAction.Remove: + WriteProfiles(); + break; + } + }; } public void WriteProfiles() { - ProfileManager.WriteProfiles(Profiles); + Debug.WriteLine("Saving Data ... "); + ProfileDataManager.WriteProfiles(Profiles); } - public void UpdateActiveProfile(int profileId) + public void SetActiveProfile(Guid id) { - if (profileId == -1 && Profiles.Count > 0) - ActiveProfile = Profiles.FirstOrDefault(p => p.ProfileId == Profiles[0].ProfileId); - else if (profileId == -1 || Profiles.Count == 0) + StatusMessageWriter.ClearMessage(); + + if (id == Guid.Empty && Profiles.Count == 0) + { ActiveProfile = null; + AppSettingDataRef.ApplicationSetting.SystemSetting.LastUsedProfileId = Guid.Empty; + } + else if (id == Guid.Empty && Profiles.Count > 0) + { + ActiveProfile = Profiles.First(); + AppSettingDataRef.ApplicationSetting.SystemSetting.LastUsedProfileId = ActiveProfile.Id; + } else - ActiveProfile = Profiles.FirstOrDefault(p => p.ProfileId == profileId); + { + ActiveProfile = Profiles.FirstOrDefault(p => p.Id == id); + + if (ActiveProfile == null && Profiles.Count > 0) + { + ActiveProfile = Profiles.First(); + AppSettingDataRef.ApplicationSetting.SystemSetting.LastUsedProfileId = ActiveProfile.Id; + } + else if (ActiveProfile == null && Profiles.Count == 0) + { + AppSettingDataRef.ApplicationSetting.SystemSetting.LastUsedProfileId = Guid.Empty; + return; + } + else + { + AppSettingDataRef.ApplicationSetting.SystemSetting.LastUsedProfileId = ActiveProfile.Id; + } + } + + ResetActiveProfile(); // Set active profile flag, this is used only for MVVM binding - Profiles.ToList().ForEach(p => p.IsActive = false); - - if (ActiveProfile != null) + if (Profiles.Count > 0) { + Profiles.ToList().ForEach(p => p.IsActive = false); ActiveProfile.IsActive = true; - AppSettingData.AppSetting.LastUsedProfileId = ActiveProfile.ProfileId; } + } + + public void SetActiveProfile(int profileIndex) + { + if (profileIndex == -1) + SetActiveProfile(Guid.Empty); else - { - AppSettingData.AppSetting.LastUsedProfileId = -1; - } + SetActiveProfile(Profiles[profileIndex].Id); ActiveProfileChanged?.Invoke(this, null); } - public Profile ActiveProfile { get; private set; } + public UserProfile ActiveProfile { get; private set; } public bool HasActiveProfile { get { return ActiveProfile != null; } } @@ -111,22 +204,7 @@ namespace MSFSPopoutPanelManager.Orchestration if (ActiveProfile == null) return false; - return ActiveProfile.BindingAircrafts.Any(p => p == FlightSimData.CurrentMsfsAircraft); - } - } - - public bool IsAllowedDeleteAircraftBinding - { - get - { - if (ActiveProfile == null || !FlightSimData.HasCurrentMsfsAircraft) - return false; - - var uProfile = Profiles.FirstOrDefault(u => u.BindingAircrafts.Any(p => p == FlightSimData.CurrentMsfsAircraft)); - if (uProfile != null && uProfile.ProfileId != ActiveProfile.ProfileId) - return false; - - return ActiveProfile.BindingAircrafts.Any(p => p == FlightSimData.CurrentMsfsAircraft); + return ActiveProfile.AircraftBindings.Any(p => p == FlightSimDataRef.AircraftName); } } @@ -134,77 +212,66 @@ namespace MSFSPopoutPanelManager.Orchestration { get { - if (ActiveProfile == null || !FlightSimData.HasCurrentMsfsAircraft) + if (ActiveProfile == null || !FlightSimDataRef.HasAircraftName) + return true; + + var uProfile = Profiles.FirstOrDefault(u => u.AircraftBindings.Any(p => p == FlightSimDataRef.AircraftName)); + if (uProfile != null && uProfile != ActiveProfile) return false; - var uProfile = Profiles.FirstOrDefault(u => u.BindingAircrafts.Any(p => p == FlightSimData.CurrentMsfsAircraft)); - if (uProfile != null && uProfile.ProfileId != ActiveProfile.ProfileId) - return false; - - if (FlightSimData == null || ActiveProfile.BindingAircrafts == null) - return false; - - return ActiveProfile == null ? false : !ActiveProfile.BindingAircrafts.Any(p => p == FlightSimData.CurrentMsfsAircraft); + return true; } } public void RefreshProfile() { - int currentProfileId; + int profileIndex; if (ActiveProfile == null) - currentProfileId = -1; + profileIndex = -1; else - currentProfileId = ActiveProfile.ProfileId; + profileIndex = Profiles.IndexOf(ActiveProfile); ActiveProfile = null; - UpdateActiveProfile(currentProfileId); + + if (profileIndex == -1) + SetActiveProfile(Guid.Empty); + else + SetActiveProfile(Profiles[profileIndex].Id); + } + + public void ResetActiveProfile() + { + InputHookManager.EndMouseHook(); + InputHookManager.EndKeyboardHook(); + + if (ActiveProfile == null) + return; + + ActiveProfile.CurrentMoveResizePanelId = Guid.Empty; + ActiveProfile.IsEditingPanelSource = false; + ActiveProfile.IsPoppedOut = false; + + foreach (var panelConfig in ActiveProfile.PanelConfigs) + { + panelConfig.IsEditingPanel = false; + panelConfig.PanelHandle = IntPtr.MaxValue; + } } public void AutoSwitchProfile() { // Automatic switching of active profile when SimConnect active aircraft changes - if (Profiles != null && !string.IsNullOrEmpty(FlightSimData.CurrentMsfsAircraft)) + if (Profiles != null && !string.IsNullOrEmpty(FlightSimDataRef.AircraftName)) { - var matchedProfile = Profiles.FirstOrDefault(p => p.BindingAircrafts.Any(t => t == FlightSimData.CurrentMsfsAircraft)); - if (matchedProfile != null) - UpdateActiveProfile(matchedProfile.ProfileId); - } - } - - // This is to migrate profile binding from aircraft livery to aircraft name - // Started in v3.4.2 - public void MigrateLiveryToAircraftBinding(string liveryName, string aircraftName) - { - bool hasChanges = false; - if (Profiles != null && !string.IsNullOrEmpty(liveryName) && !string.IsNullOrEmpty(aircraftName)) - { - var matchedProfile = Profiles.FirstOrDefault(p => p.BindingAircraftLiveries.Any(t => t == liveryName)); - - if (matchedProfile != null && !matchedProfile.BindingAircrafts.Any(a => a == aircraftName)) - { - matchedProfile.BindingAircrafts.Add(aircraftName); - hasChanges = true; - } - + var matchedProfile = Profiles.FirstOrDefault(p => p.AircraftBindings.Any(t => t == FlightSimDataRef.AircraftName)); if (matchedProfile != null) { - matchedProfile.BindingAircraftLiveries.Remove(liveryName); - hasChanges = true; - } - - if (hasChanges) - { - WriteProfiles(); + SetActiveProfile(matchedProfile.Id); RefreshProfile(); } } } - public void MigrateLiveryToAircraftBinding() - { - MigrateLiveryToAircraftBinding(FlightSimData.CurrentMsfsLiveryTitle, FlightSimData.CurrentMsfsAircraft); - } - public void SaveMsfsGameWindowConfig() { if (ActiveProfile == null) diff --git a/Orchestration/ProfileDataManager.cs b/Orchestration/ProfileDataManager.cs new file mode 100644 index 0000000..c83f39e --- /dev/null +++ b/Orchestration/ProfileDataManager.cs @@ -0,0 +1,91 @@ +using MSFSPopoutPanelManager.DomainModel.DataFile; +using MSFSPopoutPanelManager.DomainModel.Legacy; +using MSFSPopoutPanelManager.DomainModel.Profile; +using MSFSPopoutPanelManager.Shared; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; + +namespace MSFSPopoutPanelManager.Orchestration +{ + public class ProfileDataManager + { + private const string USER_PROFILE_DATA_FILENAME = "userprofiledata.json"; + + public static IList ReadProfiles() + { + try + { + Debug.WriteLine("Reading user profile data file..."); + + bool isNeededMigration = false; + string fileContent; + + using (StreamReader reader = new StreamReader(Path.Combine(FileIo.GetUserDataFilePath(), USER_PROFILE_DATA_FILENAME))) + { + fileContent = reader.ReadToEnd(); + isNeededMigration = fileContent.Substring(0, 1) == "["; // still using pre version 4.0 format + } + + if (isNeededMigration) + { + var userProfiles = MigrateData.MigrateUserProfileFile(fileContent) ?? new List(); + WriteProfiles(userProfiles); + return userProfiles; + } + + return JsonConvert.DeserializeObject(fileContent).Profiles; + } + catch + { + return new List(); + } + } + + public static void WriteProfiles(IList profiles) + { + if (profiles == null) + { + FileLogger.WriteLog($"User Profiles is null.", StatusMessageType.Error); + throw new Exception("User Profiles is null."); + } + + try + { + //Debug.WriteLine("Writing user profile data file..."); + + var userProfilePath = FileIo.GetUserDataFilePath(); + + if (!Directory.Exists(userProfilePath)) + Directory.CreateDirectory(userProfilePath); + + using (StreamWriter file = File.CreateText(Path.Combine(userProfilePath, USER_PROFILE_DATA_FILENAME))) + { + JsonSerializer serializer = new JsonSerializer(); + serializer.Serialize(file, new UserProfileFile { Profiles = profiles }); + } + } + catch + { + FileLogger.WriteLog($"Unable to write user data file: {USER_PROFILE_DATA_FILENAME}", StatusMessageType.Error); + } + } + + public static List LegacyReadProfiles() + { + try + { + using (StreamReader reader = new StreamReader(Path.Combine(FileIo.GetUserDataFilePath(), USER_PROFILE_DATA_FILENAME))) + { + return new List(JsonConvert.DeserializeObject>(reader.ReadToEnd())); + } + } + catch + { + return new List(); + } + } + } +} diff --git a/Orchestration/ProfileOrchestrator.cs b/Orchestration/ProfileOrchestrator.cs index 2b7c41e..f2275ec 100644 --- a/Orchestration/ProfileOrchestrator.cs +++ b/Orchestration/ProfileOrchestrator.cs @@ -1,53 +1,94 @@ -using MSFSPopoutPanelManager.Shared; +using MSFSPopoutPanelManager.DomainModel.Profile; using System.Linq; namespace MSFSPopoutPanelManager.Orchestration { - public class ProfileOrchestrator : ObservableObject + public class ProfileOrchestrator { - internal ProfileData ProfileData { get; set; } + private ProfileData _profileData; + private FlightSimData _flightSimData; - internal FlightSimData FlightSimData { get; set; } - - public void AddProfile(string profileName, int copyProfileId) + public ProfileOrchestrator(ProfileData profileData, FlightSimData flightSimData) { - if (copyProfileId == -1) - ProfileData.AddProfile(profileName); + _profileData = profileData; + _flightSimData = flightSimData; + } + + public void AddProfile(string profileName, UserProfile copiedProfile) + { + // Reset current profile + _profileData.ResetActiveProfile(); + + if (copiedProfile == null) + _profileData.AddProfile(profileName); else - ProfileData.AddProfile(profileName, copyProfileId); + _profileData.AddProfile(profileName, copiedProfile); // Automatically bind aircraft - var boundProfile = ProfileData.Profiles.FirstOrDefault(p => p.BindingAircrafts.Any(p => p == FlightSimData.CurrentMsfsAircraft)); - if (boundProfile == null && FlightSimData.HasCurrentMsfsAircraft) + var boundProfile = _profileData.Profiles.FirstOrDefault(p => p.AircraftBindings.Any(p => p == _flightSimData.AircraftName)); + if (boundProfile == null && _flightSimData.HasAircraftName) { - ProfileData.ActiveProfile.BindingAircrafts.Add(FlightSimData.CurrentMsfsAircraft); - ProfileData.WriteProfiles(); - ProfileData.RefreshProfile(); + _profileData.ActiveProfile.AircraftBindings.Add(_flightSimData.AircraftName); + _profileData.WriteProfiles(); + _profileData.RefreshProfile(); } } public void DeleteActiveProfile() { - if (ProfileData.ActiveProfile != null) - ProfileData.DeleteProfile(ProfileData.ActiveProfile.ProfileId); + _profileData.DeleteActiveProfile(); } - public void ChangeProfile(int profileId) + public void MoveToNextProfile() { - if (ProfileData != null) - ProfileData.UpdateActiveProfile(profileId); + // Reset current profile + _profileData.ResetActiveProfile(); + + var newProfileIndex = _profileData.Profiles.IndexOf(_profileData.ActiveProfile) + 1; + + if (newProfileIndex >= _profileData.Profiles.Count) + newProfileIndex = 0; + + _profileData.SetActiveProfile(newProfileIndex); + } + + public void MoveToPreviousProfile() + { + // Reset current profile + _profileData.ResetActiveProfile(); + + var newProfileIndex = _profileData.Profiles.IndexOf(_profileData.ActiveProfile) - 1; + + if (newProfileIndex < 0) + newProfileIndex = _profileData.Profiles.Count - 1; + + _profileData.SetActiveProfile(newProfileIndex); + } + + public void ChangeProfile(UserProfile profile) + { + if (_profileData != null) + _profileData.SetActiveProfile(profile.Id); } public void AddProfileBinding(string bindingAircraft) { - if (ProfileData.ActiveProfile != null && bindingAircraft != null) - ProfileData.AddProfileBinding(bindingAircraft, ProfileData.ActiveProfile.ProfileId); + if (_profileData.ActiveProfile != null && bindingAircraft != null) + _profileData.AddProfileBinding(bindingAircraft); } public void DeleteProfileBinding(string bindingAircraft) { - if (ProfileData.ActiveProfile != null && bindingAircraft != null) - ProfileData.DeleteProfileBinding(bindingAircraft, ProfileData.ActiveProfile.ProfileId); + if (_profileData.ActiveProfile != null && bindingAircraft != null) + _profileData.DeleteProfileBinding(bindingAircraft); + } + + public void AddPanel() + { + var panelConfig = new PanelConfig(); + panelConfig.PanelType = PanelType.CustomPopout; + panelConfig.PanelSource.Color = PanelConfigColors.GetNextAvailableColor(_profileData.ActiveProfile.PanelConfigs.ToList()); + _profileData.ActiveProfile.PanelConfigs.Add(panelConfig); } } } diff --git a/Orchestration/TouchPanelOrchestrator.cs b/Orchestration/TouchPanelOrchestrator.cs deleted file mode 100644 index 9d1eed5..0000000 --- a/Orchestration/TouchPanelOrchestrator.cs +++ /dev/null @@ -1,187 +0,0 @@ -using MSFSPopoutPanelManager.Shared; -using MSFSPopoutPanelManager.TouchPanelAgent; -using MSFSPopoutPanelManager.UserDataAgent; -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Dynamic; -using System.Linq; -using System.Net.Http; -using System.Text; -using System.Threading; -using System.Threading.Tasks; - -namespace MSFSPopoutPanelManager.Orchestration -{ - public class TouchPanelOrchestrator : ObservableObject - { - private ITouchPanelServer _touchPanelServer; - - internal ProfileData ProfileData { get; set; } - - internal AppSettingData AppSettingData { get; set; } - - public ObservableCollection PlaneProfiles { get; private set; } - - public IntPtr ApplicationHandle { get; set; } - - public void LoadPlaneProfiles() - { - if (_touchPanelServer == null || ProfileData.ActiveProfile == null) - return; - - var dataItems = TouchPanelManager.GetPlaneProfiles(); - - // Map plane profiles to bindable objects - PlaneProfiles = new ObservableCollection(); - - foreach (var dataItem in dataItems) - { - var planeProfile = new PlaneProfile(); - planeProfile.PlaneId = dataItem.PlaneId; - planeProfile.Name = dataItem.Name; - - if (dataItem.Panels != null && dataItem.Panels.Count > 0) - { - planeProfile.Panels = new ObservableCollection(); - - foreach (var dataItemPanel in dataItem.Panels) - { - planeProfile.Panels.Add(new PanelProfile() - { - PlaneId = dataItem.PlaneId, - PanelId = dataItemPanel.PanelId, - Name = dataItemPanel.Name, - Width = dataItemPanel.PanelSize.Width, - Height = dataItemPanel.PanelSize.Height, - IsSelected = ProfileData.ActiveProfile.TouchPanelBindings == null ? false : ProfileData.ActiveProfile.TouchPanelBindings.Any(b => b.PlaneId == dataItem.PlaneId && b.PanelId == dataItemPanel.PanelId) - }); - } - } - - PlaneProfiles.Add(planeProfile); - } - } - - public void PanelSelected(IList PlaneProfiles) - { - ProfileData.ActiveProfile.PanelConfigs.RemoveAll(panelConfig => panelConfig.PanelType == PanelType.MSFSTouchPanel); - ProfileData.ActiveProfile.TouchPanelBindings.Clear(); - ProfileData.ActiveProfile.IsLocked = false; - - foreach (var planeProfile in PlaneProfiles) - { - foreach (var panel in planeProfile.Panels) - { - if (panel.IsSelected) - ProfileData.ActiveProfile.TouchPanelBindings.Add(new TouchPanelBinding() { PlaneId = planeProfile.PlaneId, PanelId = panel.PanelId }); - } - } - - ProfileData.WriteProfiles(); - } - - internal async Task StartServer() - { - if (_touchPanelServer == null) - { - // This is use to remove all references and dependencies so single file package will not include any ASP.NET core dlls -#if DEBUGTOUCHPANEL || RELEASETOUCHPANEL - _touchPanelServer = new MSFSPopoutPanelManager.WebServer.WebHost(); -#endif - if (_touchPanelServer != null) - { - _touchPanelServer.WindowHandle = ApplicationHandle; - _touchPanelServer.DataRefreshInterval = AppSettingData.AppSetting.TouchPanelSettings.DataRefreshInterval; - _touchPanelServer.MapRefreshInterval = AppSettingData.AppSetting.TouchPanelSettings.MapRefreshInterval; - _touchPanelServer.IsUsedArduino = AppSettingData.AppSetting.TouchPanelSettings.UseArduino; - _touchPanelServer.IsEnabledSound = AppSettingData.AppSetting.TouchPanelSettings.EnableSound; - await _touchPanelServer.StartAsync(default(CancellationToken)); - } - } - } - - internal async Task StopServer() - { - if (_touchPanelServer != null && _touchPanelServer.ServerStarted) - { - await _touchPanelServer.StopAsync(default(CancellationToken)); - _touchPanelServer = null; - } - } - - internal async Task TouchPanelIntegrationUpdated(bool enabled) - { - if ((_touchPanelServer == null || !_touchPanelServer.ServerStarted) && enabled) - await StartServer(); - else if (_touchPanelServer.ServerStarted && !enabled) - await StopServer(); - } - - internal async void ReloadTouchPanelSimConnectDataDefinition() - { - if (_touchPanelServer == null) - return; - - // Communicate with Touch Panel API server to reload SimConnect data definitions - if (ProfileData.ActiveProfile != null && ProfileData.ActiveProfile.TouchPanelBindings.Count > 0 && _touchPanelServer.ServerStarted) - { - var planeId = ProfileData.ActiveProfile.TouchPanelBindings.Count > 0 ? - ProfileData.ActiveProfile.TouchPanelBindings[0].PlaneId : - null; - - using (var client = new HttpClient()) - { - dynamic data = new ExpandoObject(); - data.PlaneId = planeId; - var payload = JsonConvert.SerializeObject(data); - - var url = "http://localhost:27012/posttouchpanelloaded"; - - try - { - var response = await client.PostAsync(url, new StringContent(payload, Encoding.UTF8, "application/json")); - var token = response.Content.ReadAsStringAsync().Result; - } - catch { } - } - } - } - } - - public class PlaneProfile : ObservableObject - { - public string PlaneId { get; set; } - - public string Name { get; set; } - - public ObservableCollection Panels { get; set; } - - public bool HasSelected - { - get - { - if (Panels == null) - return false; - - return Panels.Any(p => p.IsSelected); - } - } - } - - public class PanelProfile : ObservableObject - { - public string PlaneId { get; set; } - - public string PanelId { get; set; } - - public string Name { get; set; } - - public int Width { get; set; } - - public int Height { get; set; } - - public bool IsSelected { get; set; } - } -} diff --git a/README.md b/README.md index 4e6a5d2..f1932a3 100644 --- a/README.md +++ b/README.md @@ -1,48 +1,66 @@ # MSFS Pop Out Panel Manager -

- -

- -MSFS Pop Out Panel Manager is an application for MSFS 2020 which helps pop out, save and position pop out panels to be used by utilities such as Sim Innovations Air Manager or to place pop out panels onto your screen or another monitor at predetermined locations automatically. +MSFS Pop Out Panel Manager is an application for MSFS 2020 which helps pop out, save and position pop out panels to be used by utilities such as Sim Innovations Air Manager or to place pop out panels onto your screen or another monitor at predetermined locations automatically. It also adds touch capability to pop out panels that are operated on touch screen which is currently not supported by the game. Please follow [FlightSimulator.com](https://forums.flightsimulator.com/t/msfs-pop-out-panel-manager-automatically-pop-out-and-save-panel-position/460613) forum thread regarding this project or comments at [Flightsim.to](https://flightsim.to/file/35759/msfs-pop-out-panel-manager). -[Online video - How to use](https://vimeo.com/723158934) +
+

+ +

-[Online video - How to enable auto pop out panels](https://vimeo.com/723165248) +
-
+## Getting Started +[Please see Getting Started guide to setup your first profile](./GETTING_STARTED.md) -## Touch Panel Feature -I'm happy to announce touch enabled feature works pretty well out of the box with the release of MSFS SU10 on either direct connected touch monitor or on pop out window that is displayed on tablet using software tool such as SpaceDesk. Until Asobo actually allow touch passthrough for panels, this tool can serve as a stopgap solution. +
-I've tested touch operation on GTN750, GTN530, KingAir PFD/MFD, TMB 930 FMS, Flybywire A32NX EFB and they are operational. Please report any issues that you encounter when using touch enable feature. There is still room for improvement and I'll continue my effort to make touch work better and better. +## How to Install -Things that work out of the box: +1. After downloading the latest zip package from github repository or from Flightsim.to website, extract the zip package to a folder of your choice on your computer. -* General button click using touch -* Touch and drag such as when panning maps or using scrollbars -* Works on touch monitor or tablet with SpaceDesk -* Flight control will be regained after 0.5 second (adjustable) of touch inactivity on a panel. This will minimize current MSFS bug where lost of flight control when operating pop out panels. +2. If you're using Auto Pop Out Panel feature, a plugin is required to be installed in MSFS community folder. Please copy the folder "zzz-ready-to-fly-button-skipper" into your MSFS community folder. This plugin is used to automatically skip the "Ready to Fly" button press when flight starts so Auto Pop Out Panel can start its process. -If using SpaceDesk to host pop out panel display, since there is a latency for touch response in wireless display, your touch may not register consistently. Please go to Preferences => Touch Settings => Touch Down Touch Up Delay, and increase the value to 25ms or higher to increase touch sensitivity. +3. Start the application **MSFSPopoutPanelManager.exe** and it will automatically connect when MSFS/SimConnect starts. + +4. If Pop Out Panel Manager is not connecting to the game (green connection icon in the upper left corner of the app), you may be missing VC++ redistributable that is required for SimConnect to work. Please download and install the following [VC++ redistributable](https://aka.ms/vs/17/release/vc_redist.x64.exe) on your PC to resolve this issue. + +
+ +## How to Update + +1. To update the application, you can download the latest zip package and directly extract the package into your Pop Out Manager installation folder and overwrite all files within. Your application setting and profile data will be safe. + +2. You can also use the built-in auto update feature and let the application handles the update. If the update is optional, you can skip the update if you so choose. When you start the application and if an update is available, a dialog will appear and it will show the latest version's release notes and an option to update the application. + +3. If you're not being prompt for update when new update is available, please try the following fix: + + - Restart you computer and most of the time this will do the trick. + - Clear your default web browser cache on your computer since auto update will try to download latest version of update configuration file from github repository and the file may have been cached on your machine. + - Clear Internet Browser History. First search for "Internet Options" in Windows control panel. In "General" tab, select "Delete" in Browsing History section. + +
## Application Features * Display resolution independent. Supports 1080p/1440p/4k display and ultrawide displays. * Support multiple user defined aircraft profiles to save panel locations to be recalled later. -* Intuitive user interface to defined location of panels to be popped out. +* Intuitive user interface to defined location of source panels to be popped out and configure the size and location of pop out panels. -* [Auto Pop Out](#auto-pop-out-feature) feature. The application will detect active aircraft and activate the corresponding profile on start of new flight session. +* Enable touch support for pop outs on touch capable display. Please see [Touch Enable Pop Out Feature](#touch-enable-pop-out-feature) for more information. -* [Cold Start feature](#auto-pop-out-feature). Instrumentation panels can be popped out even when they're not powered on (for G1000 / / G1000 NXi planes only). +* Auto game refocus to enable operation of pop out panels either by click or touch without losing flight control. + +* Auto Pop Out feature. The application will detect active aircraft and will activate the corresponding profile on start of new flight session. + +* Cold Start Feature. Instrumentation panels can be popped out even when they're not powered on (for G1000 Only) to overcome an outstanding MSFS bug. * Auto Panning feature remembers the cockpit camera angle when you first define the pop out panels. You can now pan, zoom in, and zoom out to identify offscreen panels and the camera angle will be saved and reused. This feature requires the use of Ctrl-Alt-0 keyboard binding to save custom camera view per plane configuration. (Can be configured to use 0 through 9). If the keyboard binding is currently being used. The auto-panning feature will overwrite the saved camera view if enabled. -* Fine-grain control in positioning of panels down to pixel level. +* Fine-grain control of positioning of panels down to pixel level. * Panels can be configured to appear always on top, with title bar hidden, or stretch to full screen mode. @@ -54,120 +72,29 @@ If using SpaceDesk to host pop out panel display, since there is a latency for t * Auto update feature. Application can auto-update itself when new version becomes available. -* Enable touch support for pop outs on touch capable display. Please see [Touch Enable Pop Out Feature](#touch-enable-pop-out-feature) for more information. - -
- -## History: Pop Out Panel Positioning in MSFS -In MSFS, by holding **RIGHT ALT** + **LEFT CLICKING** some instrumentation panels, these panels will pop out as floating windows that can be moved to a different screen location or different monitor. But this needs to be done every time you start a new flight. You've to perform RIGHT-ALT click, split out child windows, move these windows to final location, rinse and repeat. For predefined toolbar menu windows such as ATC, Checklist, VFR Map, their positions can be saved easily and reposition at the start of each new flight using 3rd party windows positioning tool because these windows have a **TITLE** in the title bar when they are popped out. But any custom pop outs such as plane instrumentation panel do not have window title. This makes remembering their last used position more difficult and it is very annoying to resize and re-adjust their positions to be used by Air Manager or other overlay tool on each new flight. - -What if you can do the setup once by defining on screen where the pop out panels will be, click a button, and the application will pop these panels out and separate them for you. You just need to move these panels to their final positions only once. Next time when you start a flight, with a single button click, your panels will automatically pop out for you and move to their preconfigured positions. Easy peasy lemon squeezy! - -
- -## How to Install - -1. After downloading the latest zip package from github repository or from Flightsim.to website, extract the zip package to a folder of your choice on your computer. - -2. If you're using Auto Pop Out Panel feature, a plugin is required to be installed in MSFS community folder. Please copy the folder "zzz-ready-to-fly-button-skipper" into your MSFS community folder. This plugin is used to automatically skip the "Ready to Fly" button press when a flight starts so Auto Pop Out Panel can start its process. - -3. Start the application **MSFSPopoutPanelManager.exe** and it will automatically connect when MSFS/SimConnect starts. - -## How to Update - -1. To update the application, you can download the latest zip package and directly extract the package into your Pop Out Manager installation folder and overwrite all files within. Your application setting and profile data will be safe. - -2. You can also use the built-in auto update feature and let the application handles the update. If the update is optional, you can skip the update if you so choose. When you start the application and if an update is available, a dialog will appear and it will show the latest version's release notes and an option to update the application. - -3. If you're not being prompt for update when a new update is available, please try the following fixes: - - - Restart you computer and most of the time this will do the trick. - - Clear your default web browser cache on your computer since auto update will try to download latest version of update configuration file from github repository and the file may have been cached on your machine. - - Clear Internet Browser History. First search for "Internet Options" in Windows control panel. In "General" tab, select "Delete" in Browsing History section. - -## How to Use - -[Online video - How to use](https://vimeo.com/723158934) - -1. First start the application and the game. Once you're in the main menu of the game, you can create a new profile by clicking the "plus" button in step 1 of the app. - -

- -

- -2. If you want to associate the profile to the current aircraft to use in [Auto Pop Out](#auto-pop-out-feature) feature or for automatic profile switching when selecting a different aircraft, click the "plus" button next to the aircraft name. The aircraft title will become green once it is bound to the profile. Your chosen aircraft may not be available to select in the application for your newly selected plane until a flight is started. If the current aircraft has not been bound to another profile, it will be bound to your newly created profile automatically. - -

- -

- -3. Now start a flight with your chosen aircraft. Once your flight is started, you're ready to select the panels you want to pop out. Please click "Start Panel Selection" to define where the pop out panels will be using **LEFT CLICK**. Use **CTRL-LEFT CLICK** when selection is completed. You can also move the number circles at this point to do final adjustment. - -

- -

- -4. Next, click "Start Pop Out". At this point, please be patient. The application will start popping out and separating panels one by one and you will see a lot of movements on screen. If something goes wrong, just follow the instruction in the status message and try again. Once the process is done, you will see a list of panels line up in the upper left corner of the screen. All the panels are given a default name. You can name them anything you want as needed. - -5. You can now start panel configuration by dragging the pop out panels into their final position (to your main monitor or another monitor). You can also type value directly into the data grid to move and resize a panel. The +/- pixel buttons by the lower left corner of the grid allow you to change panel position at the chosen increment/decrement by selecting the data grid cell first (X-Pos, Y-Pos, Width, Height). You can also check "Always on Top", "Hide Title Bar", or "Full Screen Mode" if desire. If the panel is touch capable, you can check "Touch Enabled". Please see [Touch Enable Pop Out Feature](#touch-enable-pop-out-feature) regarding this experimental feature. Once all the panels are at their final position, just click "Lock Panel" to prevent further panel changes. - -

- -

- -6. To test if everything is working, please click "Restart" in the File menu. This will close all pop outs. Now click "Start Pop Out" and see the magic happens! - -7. With auto panning feature enabled in preferences setting, you do not have to line up the circles that identified the panels in order for the panels to be popped out. But if you would like to do it manually without auto-panning, on next start of the flight, just line up the panels before clicking "Start Pop Out" if needed. - -

- -

- -

- -

- -
- -## Auto Pop Out Feature - -[Online Video - How to enable auto pop out panels](https://vimeo.com/723165248) - -The app will try to find a matching profile with the current selected aircraft. It will then detect when a flight is starting and automatically click the "Ready to Fly" button. It will also power on instrumentation for cold start (for G1000/NXi equipped plane only), and then pop out all panels. This feature allows panels to be popped out without the need of user interaction. If profiles are set and bound to your frequently used aircraft, you can auto-start the app minimized in system tray and as you start your flight, panels will automatically pop out for you for the selected aircraft. - -* In File->Preferences->Auto Pop Out Panel Settings, "Enable Auto Pop Out Panels" option is turned on. You can also adjust wait delay settings if you've a fast computer. - -* For existing profile to use Auto Pop Out feature, just click the plus sign in the bind active aircraft to profile section. This will bind the active aircraft being displayed to the profile. Any bound aircraft will appear in GREEN color. Unbound ones will be in WHITE, and bound aircraft in another profile will be in RED. You can bind as many aircrafts to a profile as you desire but an aircraft can only bind to a single profile so Auto Pop Out knows which profile to start when a flight session starts. - -* During my testing, instrumentations only need to be powered on for Auto Pop Out to work for G1000/G1000 NXi plane during cold start. There seems to be a bug in the game that you can't do Alt-Right click to pop out cold start panel for this particular plane variant. For other plane instrumentations I've tested (G3000, CJ4, Aerosoft CRJ 550/700, FBW A32NX), panels can be popped out without powering on. So please make sure the checkbox "Power on required to pop out panels on cold start" is checked for G1000 related profiles. - -* **TIPS:** One trick to force SimConnect to update the current selected aircraft so you can do the binding immediately after selecting a new aircraft in the World Map is to click the "Go Back" button at the lower left of your screen. You should see aircraft title changes to the active ones. Or you can wait until the flight is almost fully loaded and you will see the current aircraft name gets updated. - -
+
## Touch Enable Pop Out Feature -[Online video - Touch enable panel in action](https://vimeo.com/manage/videos/719651650) +To enable touch support, just activate the hand icon for the panel that you want this support. -This feature will make pop out panel touch enabled on touch screen monitor or tablet (through remote display tool such as [Spacedesk](https://www.spacedesk.net/). Currently there is limitation in MSFS regarding the support of touch capability for pop out panels on touch enabled display. Pop out instrumentation panels that have touch capabilities and are not limited to: +This feature will make pop out panel touch capable on touch screen monitor or tablet (through remote display tool such as [Spacedesk](https://www.spacedesk.net/). As of this writing, MSFS does not support touch natively on touch enabled display and Pop Out Panel Manager tries to fill this gap by providing touch capabilities to aircraft panels such as: -- King Air 350 +- King Air 350 G3000 - PMS GTN750 - PMS GTN530 -- Lower touch panel in TBM 930 +- TBM 930 GTC580 - Flybywire A32NX EFB +- Aircrafts that have instrumentation panel that is clickable +- Or can be used for built-in panels such as Checklist, ATC, etc -This touch enabled pop out feature solved 2 limitations but currently in MSFS. +The touch enabled pop out feature solved two limitations in MSFS. - Limitation #1 - For pop out panel, touch events do not get pass through to panels such as King Air PFD or GTN750 and they can only be operated with a mouse. There is a work around if you’re using Spacedesk with tablet by disabling USB HID within Spacedesk drivers in Windows device manager. But if you’re using touch monitors directly connected to your gaming PC, then Spacedesk workaround is not an option. -- Limitation #2 - When you click or hover your mouse over any pop out panels on your main monitor or on another monitor, the game main window will lose focus and you can’t operate flight control without clicking the game window again. +- Limitation #2 - When you click or hover your mouse over any pop out panels on your main monitor or on another monitor, the game main window will lose focus and you can’t operate flight control without clicking the game window again. Pop Out Panel Manager provides a configurable game auto refocus when you click on or touch any pop out panels. -#### How to enable touch support - -Perform your regular panel selection and once your touch capable panel has been popped out, in the configuration screen grid, just check "Touch Enabled" to enable touch support for the selected panel. - -
+
## User Profile Data Files @@ -187,35 +114,25 @@ The user plane profile data and application settings data are stored as JSON fil You can backup this folder and restore this folder if you want to uninstall and reinstall MSFS Pop Out Manager. -
+
## Current Known Issue * Automatic power on for Auto Pop Out Panels feature will not work if you're using any flight control hardware (such as Honeycomb Alpha or Bravo) that permanently binds the master battery switch or master avionics switch. If the hardware control switch is in the off position, pop out manager won't be able to temporary turn on the instrumentation panels to pop them out. This seems to be a bug on Asobo side and only affects the G1000 instrumentation at the moment. -* Please see [Version](VERSION.md) file for latest known application issues. +* Please see [Version](VERSION.md) file for latest known application issues and fixes. -
+
## Common Problem Resolution -* If Pop Out Panel Manager is not running correctly such as panels fail to pop out even all keyboard control bindings are set correctly, please try running the application as administrator and it may resolve the issue.. - -* Unable to pop out panels when creating a profile for the first time with error such as "Unable to pop out panel #X". If the panel is not being obstructed by another window, by changing the sequence of the pop out when defining the profile may help solve the issue. Currently there are some panels in certain plane configuration that does not follow predefined MSFS pop out rule. - -* Unable to pop out panels on subsequent flight. Please follow status message instruction. Also, if using auto-panning, Ctrl-Alt-0 may not have been saved correctly during profile creation. You can trigger a force camera angle save by clicking the "Save Auto Panning Camera" button for the profile. - -* Unable to pop out ALL panels. This may indicate a potential miscount of panels (circles) and the number of actual panels that got popped out. You may have duplicate panels in your selection or panels that cannot be popped out. +* Unable to pop out panel and the panel is highlighted in red. This may indicate an issue where your placement for the panel source circle is incorrect or some application window may be blocking Pop Out Panel Manager from clicking in the game to simulate pop out keystroke. Please try to adjust the panel source circle or reposition any window that can interfere with the app's operation. Or you can change the order or panels being popped, sometime this can resolve pop out issue. * If you encounter application crashes or unknown error, please help my continuing development effort by attaching the file **error.log** in the application Logs folder and open an issue ticket in github repo for this project. This is going to help me troubleshoot the issue and provide hotfixes. * If you encounter an issue with panels that are not restored back to your saved profile locations, please check if you have other apps such as Sizer or Windows PowerToys that may have conflict with Pop Out Manager. - -* If you encounter a critical error with error message like this: - ERROR MSFSPopoutPanelManager.WpfApp.App - Could not load file or assembly 'Microsoft.FlightSimulator.SimConnect, Version=11.0.62651.3, Culture=neutral, PublicKeyToken=baf445ffb3a06b5c'. An attempt was made to load a program with an incorrect format. System.BadImageFormatException: - - This usually happens on clean Windows installation. Pop Out Panel Manager uses x64 version of SimConnect.dll to perform its function and a Visual C++ redistributable is required for SimConnect to run correctly. Please download and install the following [VC++ redistributable](https://aka.ms/vs/17/release/vc_redist.x64.exe) on your PC to resolve this issue. Further information can be obtained in this [support ticket](https://github.com/hawkeye-stan/msfs-popout-panel-manager/issues/21). +
## Author Stanley Kwok @@ -231,16 +148,17 @@ I welcome feedback to help improve the usefulness of this application. You are w Thank you for your super kind support of this app! +
+ ## Credits -[WindowsHook](https://github.com/topstarai/WindowsHook) by Mark Kang - -[Fody](https://github.com/Fody/Fody) .NET assemblies weaver by Fody - -[MahApps.Metro Dark Theme](https://github.com/MahApps/MahApps.Metro) by Jan Karger, Dennis Daume, Brendan Forster, Paul Jenkins, Jake Ginnivan, Alex Mitchell +[Material Design in XAML Toolkit](http://materialdesigninxaml.net/) by Material Design team [Hardcodet NotifyIcon](https://github.com/hardcodet/wpf-notifyicon) by Philipp Sumi, Robin Krom, Jan Karger +[Fody](https://github.com/Fody/Fody) .NET assemblies weaver by Fody + +[WindowsHook](https://github.com/topstarai/WindowsHook) by Mark Kang + [WPF CalcBinding](https://github.com/Alex141/CalcBinding) by Alexander Zinchenko -[AutoUpdater.NET](https://github.com/ravibpatel/AutoUpdater.NET) by Ravi Patel - +[AutoUpdater.NET](https://github.com/ravibpatel/AutoUpdater.NET) by Ravi Patel \ No newline at end of file diff --git a/RELEASENOTES.md b/RELEASENOTES.md new file mode 100644 index 0000000..e46770a --- /dev/null +++ b/RELEASENOTES.md @@ -0,0 +1,53 @@ +## Version 4.0.0 + +* Major improvement on responsiveness for touch and drag when using touch panel feature. (Please set Touch Down Touch Up Delay to 0 in preference setting to get the fastest performance) + +* Brand new redesigned user interface. User will have the ability to edit panel configurations before panels are popped out. + +* Added ability to add, remove, edit pop out panel for a profile without the need to redo the entire profile. + +* Added ability to configure source instrumentation pop out panel location more easily. + +* Added UI feedback when panels are being popped out. Panel configurations are being highlighted as they pop out. Also added onscreen status showing pop out progress. + +* Added ability to navigate between profile and search for profile by name. + +* Added ability to update profile name. + +* Added ability to reorder panel pop out sequence. This may help resolve MSFS issue where panel may not pop out correctly unless they are popped out in certain sequence. + +* Updated ability to use keyboard commands to move and adjust pop out panel's size and location without the need to click +/- pixel icons. + +* Added auto game refocus option for non-touch enabled panel. An example use case is if you accidentally hover or click a non-touch enabled panel (PFD screen), now the flight control will not be locked out. + +* Added preference option to automatically pause the game when pop out is in progress. A example use case is the game can pause during the start of landing challenge until pop out process is completed. + +* Added preference option to move panel around when profile is locked. Panel configuration will still be locked and will not get changed. + +* Added preference option to allow Pop Out Panel Manager to stay open during pop out process. + +* Added preference option to allow setting of pop out title bar color. Instead of the white title bar, the color can be set to blend in with Air Manager's background. + +* Added preference option to delay auto pop out after Ready to Fly button is clicked by POPM plugin. For slower computer, this may resolve failed auto pop out because this process was executing too quickly after Ready to Fly button is clicked. + +* Added preference option to disable automatic check for application update (for users who want to make sure application is not bypassing firewall and for privacy reason). + +* Added a bonus HUD bar feature for PMDG 737 (which I fly the most) and generic aircraft. This includes a stop watch and adjust sim rate function. + +* Fixed an outstanding issue where panel configuration information is not accurate (top, left, width, height). Even though application was still working correctly in previous version, the configuration data is not quite correct. In this release, these panel configuration information are mostly fixed. + +* Fixed an issue when applying hide title bar to panel, the location and size for the panel will be different than specified (off by about 9 pixels). With this fix, you will need to re-adjust the panel size for the hidden title bar panel. + +* Updated user profile and application setting data file format. This new file format is not backward compatible. During first launch of the application, data migration will automatically take place. Backup files will also be created in the event you need to go back to previous version of POPM. + +* Updated core code base to improve general application performance and resolve some outstanding bugs and issues regarding latest MSFS code SU12/AAU2. + +* Updated application to use latest SimConnect SDK and .NET Framework 7.0. + +* Added application rollback feature to restore previous version of the application (v3.4.6.0321) and restore backup of user profile and settings file. + +Known issues: + +* With rework of core panel configuration data structures, existing profile pop out panel placement may be off by a few pixels. Please use panel configuration function to adjust existing panel size and location if needed. This will only a one time ajustment per profile. + +* When applying hide title bar to panel, even though the panel will now correctly fit into bezel or monitor you specified, the aspect ratio of the inner display will mostly be incorrect. This is an MSFS issue and I'm still investigating a workaround for this problem. \ No newline at end of file diff --git a/ReactClient/.env b/ReactClient/.env deleted file mode 100644 index 8675d02..0000000 --- a/ReactClient/.env +++ /dev/null @@ -1,2 +0,0 @@ -BROWSER=none -PORT=30101 \ No newline at end of file diff --git a/ReactClient/.gitignore b/ReactClient/.gitignore deleted file mode 100644 index 4d29575..0000000 --- a/ReactClient/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/ReactClient/package-lock.json b/ReactClient/package-lock.json deleted file mode 100644 index 02658ff..0000000 --- a/ReactClient/package-lock.json +++ /dev/null @@ -1,34128 +0,0 @@ -{ - "name": "pwa", - "version": "0.1.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "pwa", - "version": "0.1.0", - "dependencies": { - "@elfalem/leaflet-curve": "^0.8.2", - "@emotion/react": "^11.4.1", - "@emotion/styled": "^11.3.0", - "@mui/icons-material": "^5.0.1", - "@mui/material": "^5.0.1", - "@mui/styles": "^5.0.1", - "@testing-library/jest-dom": "^5.14.1", - "@testing-library/react": "^11.2.7", - "@testing-library/user-event": "^12.8.3", - "console-feed": "^3.2.2", - "geolib": "^3.3.1", - "json-ref-lite": "^1.1.0", - "leaflet": "^1.7.1", - "leaflet-easybutton": "^2.4.0", - "leaflet-marker-rotation": "^0.4.0", - "leaflet.marker.slideto": "^0.2.0", - "react": "^17.0.2", - "react-dial-knob": "^1.3.0", - "react-dom": "^17.0.2", - "react-leaflet": "^3.2.1", - "react-leaflet-bing-v2": "^5.2.3", - "react-lineto": "^3.2.1", - "react-router-dom": "^5.3.0", - "react-scripts": "4.0.3", - "rimraf": "^2.7.1" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.14.7", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.14.6", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helpers": "^7.14.6", - "@babel/parser": "^7.14.6", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.14.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.14.6", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "regexpu-core": "^4.7.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.2.3", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.14.7", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.14.5", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-wrap-function": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.14.5", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.14.5", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-function-name": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.14.6", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.14.7", - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.14.7", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.14.5", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.12.1", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-decorators": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.14.7", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.14.7", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.14.7", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.12.1", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-flow": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.14.7", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-jsx": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "regenerator-transform": "^0.14.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.12.1", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "resolve": "^1.8.1", - "semver": "^5.5.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.14.6", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.14.6", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.14.6", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-typescript": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.14.7", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.14.7", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5", - "@babel/plugin-proposal-async-generator-functions": "^7.14.7", - "@babel/plugin-proposal-class-properties": "^7.14.5", - "@babel/plugin-proposal-class-static-block": "^7.14.5", - "@babel/plugin-proposal-dynamic-import": "^7.14.5", - "@babel/plugin-proposal-export-namespace-from": "^7.14.5", - "@babel/plugin-proposal-json-strings": "^7.14.5", - "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", - "@babel/plugin-proposal-numeric-separator": "^7.14.5", - "@babel/plugin-proposal-object-rest-spread": "^7.14.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", - "@babel/plugin-proposal-optional-chaining": "^7.14.5", - "@babel/plugin-proposal-private-methods": "^7.14.5", - "@babel/plugin-proposal-private-property-in-object": "^7.14.5", - "@babel/plugin-proposal-unicode-property-regex": "^7.14.5", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.14.5", - "@babel/plugin-transform-async-to-generator": "^7.14.5", - "@babel/plugin-transform-block-scoped-functions": "^7.14.5", - "@babel/plugin-transform-block-scoping": "^7.14.5", - "@babel/plugin-transform-classes": "^7.14.5", - "@babel/plugin-transform-computed-properties": "^7.14.5", - "@babel/plugin-transform-destructuring": "^7.14.7", - "@babel/plugin-transform-dotall-regex": "^7.14.5", - "@babel/plugin-transform-duplicate-keys": "^7.14.5", - "@babel/plugin-transform-exponentiation-operator": "^7.14.5", - "@babel/plugin-transform-for-of": "^7.14.5", - "@babel/plugin-transform-function-name": "^7.14.5", - "@babel/plugin-transform-literals": "^7.14.5", - "@babel/plugin-transform-member-expression-literals": "^7.14.5", - "@babel/plugin-transform-modules-amd": "^7.14.5", - "@babel/plugin-transform-modules-commonjs": "^7.14.5", - "@babel/plugin-transform-modules-systemjs": "^7.14.5", - "@babel/plugin-transform-modules-umd": "^7.14.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.7", - "@babel/plugin-transform-new-target": "^7.14.5", - "@babel/plugin-transform-object-super": "^7.14.5", - "@babel/plugin-transform-parameters": "^7.14.5", - "@babel/plugin-transform-property-literals": "^7.14.5", - "@babel/plugin-transform-regenerator": "^7.14.5", - "@babel/plugin-transform-reserved-words": "^7.14.5", - "@babel/plugin-transform-shorthand-properties": "^7.14.5", - "@babel/plugin-transform-spread": "^7.14.6", - "@babel/plugin-transform-sticky-regex": "^7.14.5", - "@babel/plugin-transform-template-literals": "^7.14.5", - "@babel/plugin-transform-typeof-symbol": "^7.14.5", - "@babel/plugin-transform-unicode-escapes": "^7.14.5", - "@babel/plugin-transform-unicode-regex": "^7.14.5", - "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.14.5", - "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", - "babel-plugin-polyfill-regenerator": "^0.2.2", - "core-js-compat": "^3.15.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", - "@babel/plugin-proposal-optional-chaining": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.4", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-react-display-name": "^7.14.5", - "@babel/plugin-transform-react-jsx": "^7.14.5", - "@babel/plugin-transform-react-jsx-development": "^7.14.5", - "@babel/plugin-transform-react-pure-annotations": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.12.1", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-transform-typescript": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.12.1", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.14.7", - "license": "MIT", - "dependencies": { - "core-js-pure": "^3.15.0", - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.14.7", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.7", - "@babel/types": "^7.14.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "license": "MIT" - }, - "node_modules/@cnakazawa/watch": { - "version": "1.0.4", - "license": "Apache-2.0", - "dependencies": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - }, - "bin": { - "watch": "cli.js" - }, - "engines": { - "node": ">=0.1.95" - } - }, - "node_modules/@csstools/convert-colors": { - "version": "1.4.0", - "license": "CC0-1.0", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/@csstools/normalize.css": { - "version": "10.1.0", - "license": "CC0-1.0" - }, - "node_modules/@elfalem/leaflet-curve": { - "version": "0.8.2", - "license": "MIT", - "optionalDependencies": { - "@tweenjs/tween.js": "^17.2.0" - }, - "peerDependencies": { - "leaflet": "^1.1.0" - } - }, - "node_modules/@emotion/babel-plugin": { - "version": "11.3.0", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/plugin-syntax-jsx": "^7.12.13", - "@babel/runtime": "^7.13.10", - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.5", - "@emotion/serialize": "^1.0.2", - "babel-plugin-macros": "^2.6.1", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "^4.0.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@emotion/babel-plugin/node_modules/@babel/runtime": { - "version": "7.15.4", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@emotion/babel-plugin/node_modules/@emotion/memoize": { - "version": "0.7.5", - "license": "MIT" - }, - "node_modules/@emotion/babel-plugin/node_modules/@emotion/serialize": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.4", - "@emotion/unitless": "^0.7.5", - "@emotion/utils": "^1.0.0", - "csstype": "^3.0.2" - } - }, - "node_modules/@emotion/babel-plugin/node_modules/@emotion/utils": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/@emotion/babel-plugin/node_modules/csstype": { - "version": "3.0.9", - "license": "MIT" - }, - "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@emotion/cache": { - "version": "10.0.29", - "license": "MIT", - "dependencies": { - "@emotion/sheet": "0.9.4", - "@emotion/stylis": "0.8.5", - "@emotion/utils": "0.11.3", - "@emotion/weak-memoize": "0.2.5" - } - }, - "node_modules/@emotion/core": { - "version": "10.1.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.5.5", - "@emotion/cache": "^10.0.27", - "@emotion/css": "^10.0.27", - "@emotion/serialize": "^0.11.15", - "@emotion/sheet": "0.9.4", - "@emotion/utils": "0.11.3" - }, - "peerDependencies": { - "react": ">=16.3.0" - } - }, - "node_modules/@emotion/css": { - "version": "10.0.27", - "license": "MIT", - "dependencies": { - "@emotion/serialize": "^0.11.15", - "@emotion/utils": "0.11.3", - "babel-plugin-emotion": "^10.0.27" - } - }, - "node_modules/@emotion/hash": { - "version": "0.8.0", - "license": "MIT" - }, - "node_modules/@emotion/is-prop-valid": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "@emotion/memoize": "^0.7.4" - } - }, - "node_modules/@emotion/memoize": { - "version": "0.7.4", - "license": "MIT" - }, - "node_modules/@emotion/react": { - "version": "11.4.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@emotion/cache": "^11.4.0", - "@emotion/serialize": "^1.0.2", - "@emotion/sheet": "^1.0.2", - "@emotion/utils": "^1.0.0", - "@emotion/weak-memoize": "^0.2.5", - "hoist-non-react-statics": "^3.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/react/node_modules/@babel/runtime": { - "version": "7.15.4", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@emotion/react/node_modules/@emotion/cache": { - "version": "11.4.0", - "license": "MIT", - "dependencies": { - "@emotion/memoize": "^0.7.4", - "@emotion/sheet": "^1.0.0", - "@emotion/utils": "^1.0.0", - "@emotion/weak-memoize": "^0.2.5", - "stylis": "^4.0.3" - } - }, - "node_modules/@emotion/react/node_modules/@emotion/serialize": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.4", - "@emotion/unitless": "^0.7.5", - "@emotion/utils": "^1.0.0", - "csstype": "^3.0.2" - } - }, - "node_modules/@emotion/react/node_modules/@emotion/sheet": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/@emotion/react/node_modules/@emotion/utils": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/@emotion/react/node_modules/csstype": { - "version": "3.0.9", - "license": "MIT" - }, - "node_modules/@emotion/serialize": { - "version": "0.11.16", - "license": "MIT", - "dependencies": { - "@emotion/hash": "0.8.0", - "@emotion/memoize": "0.7.4", - "@emotion/unitless": "0.7.5", - "@emotion/utils": "0.11.3", - "csstype": "^2.5.7" - } - }, - "node_modules/@emotion/sheet": { - "version": "0.9.4", - "license": "MIT" - }, - "node_modules/@emotion/styled": { - "version": "11.3.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@emotion/babel-plugin": "^11.3.0", - "@emotion/is-prop-valid": "^1.1.0", - "@emotion/serialize": "^1.0.2", - "@emotion/utils": "^1.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "@emotion/react": "^11.0.0-rc.0", - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/styled-base": { - "version": "10.0.31", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.5.5", - "@emotion/is-prop-valid": "0.8.8", - "@emotion/serialize": "^0.11.15", - "@emotion/utils": "0.11.3" - }, - "peerDependencies": { - "@emotion/core": "^10.0.28", - "react": ">=16.3.0" - } - }, - "node_modules/@emotion/styled-base/node_modules/@emotion/is-prop-valid": { - "version": "0.8.8", - "license": "MIT", - "dependencies": { - "@emotion/memoize": "0.7.4" - } - }, - "node_modules/@emotion/styled/node_modules/@babel/runtime": { - "version": "7.15.4", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@emotion/styled/node_modules/@emotion/serialize": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.4", - "@emotion/unitless": "^0.7.5", - "@emotion/utils": "^1.0.0", - "csstype": "^3.0.2" - } - }, - "node_modules/@emotion/styled/node_modules/@emotion/utils": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/@emotion/styled/node_modules/csstype": { - "version": "3.0.9", - "license": "MIT" - }, - "node_modules/@emotion/stylis": { - "version": "0.8.5", - "license": "MIT" - }, - "node_modules/@emotion/unitless": { - "version": "0.7.5", - "license": "MIT" - }, - "node_modules/@emotion/utils": { - "version": "0.11.3", - "license": "MIT" - }, - "node_modules/@emotion/weak-memoize": { - "version": "0.2.5", - "license": "MIT" - }, - "node_modules/@eslint/eslintrc": { - "version": "0.4.2", - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.9.0", - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@hapi/address": { - "version": "2.1.4", - "license": "BSD-3-Clause" - }, - "node_modules/@hapi/bourne": { - "version": "1.3.2", - "license": "BSD-3-Clause" - }, - "node_modules/@hapi/hoek": { - "version": "8.5.1", - "license": "BSD-3-Clause" - }, - "node_modules/@hapi/joi": { - "version": "15.1.1", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/address": "2.x.x", - "@hapi/bourne": "1.x.x", - "@hapi/hoek": "8.x.x", - "@hapi/topo": "3.x.x" - } - }, - "node_modules/@hapi/topo": { - "version": "3.1.6", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^8.3.0" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/console/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/console/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/@jest/console/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core": { - "version": "26.6.3", - "license": "MIT", - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/core/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/@jest/core/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/jest-resolve": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/core/node_modules/read-pkg": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/read-pkg-up": { - "version": "7.0.1", - "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@jest/core/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/rimraf": { - "version": "3.0.2", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@jest/core/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/type-fest": { - "version": "0.8.1", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/fake-timers": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/globals": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/reporters": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "optionalDependencies": { - "node-notifier": "^8.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/@jest/reporters/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/jest-resolve": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/reporters/node_modules/read-pkg": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/read-pkg-up": { - "version": "7.0.1", - "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@jest/reporters/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/type-fest": { - "version": "0.8.1", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/source-map": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/source-map/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/test-result": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "26.6.3", - "license": "MIT", - "dependencies": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/transform": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/transform/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@mui/core": { - "version": "5.0.0-alpha.48", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.15.4", - "@emotion/is-prop-valid": "^1.1.0", - "@mui/utils": "^5.0.1", - "clsx": "^1.1.1", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/react": "^16.8.6 || ^17.0.0", - "react": "^17.0.2", - "react-dom": "^17.0.2" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/core/node_modules/@babel/runtime": { - "version": "7.15.4", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@mui/icons-material": { - "version": "5.0.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.15.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@mui/material": "^5.0.0-rc.0", - "@types/react": "^16.8.6 || ^17.0.0", - "react": "^17.0.2" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/icons-material/node_modules/@babel/runtime": { - "version": "7.15.4", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@mui/material": { - "version": "5.0.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.15.4", - "@mui/core": "5.0.0-alpha.48", - "@mui/system": "^5.0.1", - "@mui/types": "^7.0.0", - "@mui/utils": "^5.0.1", - "@popperjs/core": "^2.4.4", - "@types/react-transition-group": "^4.4.3", - "clsx": "^1.1.1", - "csstype": "^3.0.9", - "hoist-non-react-statics": "^3.3.2", - "prop-types": "^15.7.2", - "react-is": "^17.0.2", - "react-transition-group": "^4.4.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/material-ui" - }, - "peerDependencies": { - "@emotion/react": "^11.4.1", - "@emotion/styled": "^11.3.0", - "@types/react": "^16.8.6 || ^17.0.0", - "react": "^17.0.2", - "react-dom": "^17.0.2" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/material/node_modules/@babel/runtime": { - "version": "7.15.4", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@mui/material/node_modules/csstype": { - "version": "3.0.9", - "license": "MIT" - }, - "node_modules/@mui/private-theming": { - "version": "5.0.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.15.4", - "@mui/utils": "^5.0.1", - "prop-types": "^15.7.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/material-ui" - }, - "peerDependencies": { - "@types/react": "^16.8.6 || ^17.0.0", - "react": "^17.0.2" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/private-theming/node_modules/@babel/runtime": { - "version": "7.15.4", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@mui/styled-engine": { - "version": "5.0.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.15.4", - "@emotion/cache": "^11.4.0", - "prop-types": "^15.7.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/material-ui" - }, - "peerDependencies": { - "@emotion/react": "^11.4.1", - "@emotion/styled": "^11.3.0", - "react": "^17.0.2" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - } - } - }, - "node_modules/@mui/styled-engine/node_modules/@babel/runtime": { - "version": "7.15.4", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@mui/styled-engine/node_modules/@emotion/cache": { - "version": "11.4.0", - "license": "MIT", - "dependencies": { - "@emotion/memoize": "^0.7.4", - "@emotion/sheet": "^1.0.0", - "@emotion/utils": "^1.0.0", - "@emotion/weak-memoize": "^0.2.5", - "stylis": "^4.0.3" - } - }, - "node_modules/@mui/styled-engine/node_modules/@emotion/sheet": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/@mui/styled-engine/node_modules/@emotion/utils": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/@mui/styles": { - "version": "5.0.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.15.4", - "@emotion/hash": "^0.8.0", - "@mui/private-theming": "^5.0.1", - "@mui/types": "^7.0.0", - "@mui/utils": "^5.0.1", - "clsx": "^1.1.1", - "csstype": "^3.0.9", - "hoist-non-react-statics": "^3.3.2", - "jss": "^10.8.0", - "jss-plugin-camel-case": "^10.8.0", - "jss-plugin-default-unit": "^10.8.0", - "jss-plugin-global": "^10.8.0", - "jss-plugin-nested": "^10.8.0", - "jss-plugin-props-sort": "^10.8.0", - "jss-plugin-rule-value-function": "^10.8.0", - "jss-plugin-vendor-prefixer": "^10.8.0", - "prop-types": "^15.7.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/material-ui" - }, - "peerDependencies": { - "@types/react": "^16.8.6 || ^17.0.0", - "react": "^17.0.2" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/styles/node_modules/@babel/runtime": { - "version": "7.15.4", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@mui/styles/node_modules/csstype": { - "version": "3.0.9", - "license": "MIT" - }, - "node_modules/@mui/system": { - "version": "5.0.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.15.4", - "@mui/private-theming": "^5.0.1", - "@mui/styled-engine": "^5.0.1", - "@mui/types": "^7.0.0", - "@mui/utils": "^5.0.1", - "clsx": "^1.1.1", - "csstype": "^3.0.9", - "prop-types": "^15.7.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/material-ui" - }, - "peerDependencies": { - "@emotion/react": "^11.4.1", - "@emotion/styled": "^11.3.0", - "@types/react": "^16.8.6 || ^17.0.0", - "react": "^17.0.2" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/system/node_modules/@babel/runtime": { - "version": "7.15.4", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@mui/system/node_modules/csstype": { - "version": "3.0.9", - "license": "MIT" - }, - "node_modules/@mui/types": { - "version": "7.0.0", - "license": "MIT", - "peerDependencies": { - "@types/react": "*" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/utils": { - "version": "5.0.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.15.4", - "@types/prop-types": "^15.7.4", - "@types/react-is": "^16.7.1 || ^17.0.0", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "react": "^17.0.2" - } - }, - "node_modules/@mui/utils/node_modules/@babel/runtime": { - "version": "7.15.4", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.7", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file/node_modules/rimraf": { - "version": "3.0.2", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.4.3", - "license": "MIT", - "dependencies": { - "ansi-html": "^0.0.7", - "error-stack-parser": "^2.0.6", - "html-entities": "^1.2.1", - "native-url": "^0.2.6", - "schema-utils": "^2.6.5", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">= 10.x" - }, - "peerDependencies": { - "@types/webpack": "4.x", - "react-refresh": ">=0.8.3 <0.10.0", - "sockjs-client": "^1.4.0", - "type-fest": "^0.13.1", - "webpack": ">=4.43.0 <6.0.0", - "webpack-dev-server": "3.x", - "webpack-hot-middleware": "2.x", - "webpack-plugin-serve": "0.x || 1.x" - }, - "peerDependenciesMeta": { - "@types/webpack": { - "optional": true - }, - "sockjs-client": { - "optional": true - }, - "type-fest": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - }, - "webpack-hot-middleware": { - "optional": true - }, - "webpack-plugin-serve": { - "optional": true - } - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { - "version": "0.7.3", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@popperjs/core": { - "version": "2.10.1", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@react-leaflet/core": { - "version": "1.1.0", - "license": "Hippocratic-2.1", - "peerDependencies": { - "leaflet": "^1.7.1", - "react": "^17.0.1", - "react-dom": "^17.0.1" - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "7.1.3", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^3.0.8", - "@types/resolve": "0.0.8", - "builtin-modules": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.14.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/plugin-replace": { - "version": "2.4.2", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/pluginutils/node_modules/@types/estree": { - "version": "0.0.39", - "license": "MIT" - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "6.0.1", - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@surma/rollup-plugin-off-main-thread": { - "version": "1.4.2", - "license": "Apache-2.0", - "dependencies": { - "ejs": "^2.6.1", - "magic-string": "^0.25.0" - } - }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "5.4.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "5.4.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "5.0.1", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "5.0.1", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "5.4.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "5.4.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "5.4.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-preset": { - "version": "5.5.0", - "license": "MIT", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/core": { - "version": "5.5.0", - "license": "MIT", - "dependencies": { - "@svgr/plugin-jsx": "^5.5.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.12.6" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-jsx": { - "version": "5.5.0", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", - "svg-parser": "^2.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-svgo": { - "version": "5.5.0", - "license": "MIT", - "dependencies": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", - "svgo": "^1.2.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/webpack": { - "version": "5.5.0", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", - "loader-utils": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@testing-library/dom": { - "version": "8.14.0", - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^4.2.0", - "aria-query": "^5.0.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.4.4", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@testing-library/dom/node_modules/@babel/runtime": { - "version": "7.18.3", - "license": "MIT", - "peer": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@testing-library/dom/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/dom/node_modules/aria-query": { - "version": "5.0.0", - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@testing-library/dom/node_modules/chalk": { - "version": "4.1.2", - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@testing-library/dom/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@testing-library/dom/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT", - "peer": true - }, - "node_modules/@testing-library/dom/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/dom/node_modules/pretty-format": { - "version": "27.5.1", - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@testing-library/dom/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/dom/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-dom": { - "version": "5.14.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.9.2", - "@types/testing-library__jest-dom": "^5.9.1", - "aria-query": "^4.2.2", - "chalk": "^3.0.0", - "css": "^3.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.5.6", - "lodash": "^4.17.15", - "redent": "^3.0.0" - }, - "engines": { - "node": ">=8", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/chalk": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/@testing-library/jest-dom/node_modules/css": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/source-map-resolve": { - "version": "0.6.0", - "license": "MIT", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/react": { - "version": "11.2.7", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^7.28.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@testing-library/react/node_modules/@babel/runtime": { - "version": "7.14.6", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@testing-library/react/node_modules/@testing-library/dom": { - "version": "7.31.2", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^4.2.0", - "aria-query": "^4.2.2", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.6", - "lz-string": "^1.4.4", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@testing-library/react/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/react/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@testing-library/react/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@testing-library/react/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/@testing-library/react/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/react/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/user-event": { - "version": "12.8.3", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - }, - "peerDependencies": { - "@testing-library/dom": ">=7.21.4" - } - }, - "node_modules/@testing-library/user-event/node_modules/@babel/runtime": { - "version": "7.14.6", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@tweenjs/tween.js": { - "version": "17.6.0", - "license": "MIT", - "optional": true - }, - "node_modules/@types/aria-query": { - "version": "4.2.1", - "license": "MIT" - }, - "node_modules/@types/babel__core": { - "version": "7.1.14", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.2", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.0", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.14.0", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/eslint": { - "version": "7.2.13", - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.48", - "license": "MIT" - }, - "node_modules/@types/glob": { - "version": "7.1.3", - "license": "MIT", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/html-minifier-terser": { - "version": "5.1.1", - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.3", - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "26.0.23", - "license": "MIT", - "dependencies": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.7", - "license": "MIT" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "license": "MIT" - }, - "node_modules/@types/minimatch": { - "version": "3.0.4", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "15.12.5", - "license": "MIT" - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.0", - "license": "MIT" - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "license": "MIT" - }, - "node_modules/@types/prettier": { - "version": "2.3.0", - "license": "MIT" - }, - "node_modules/@types/prop-types": { - "version": "15.7.4", - "license": "MIT" - }, - "node_modules/@types/q": { - "version": "1.5.4", - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "17.0.24", - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-is": { - "version": "17.0.2", - "license": "MIT", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-transition-group": { - "version": "4.4.3", - "license": "MIT", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react/node_modules/csstype": { - "version": "3.0.9", - "license": "MIT" - }, - "node_modules/@types/resolve": { - "version": "0.0.8", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.2", - "license": "MIT" - }, - "node_modules/@types/source-list-map": { - "version": "0.1.2", - "license": "MIT" - }, - "node_modules/@types/stack-utils": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/@types/tapable": { - "version": "1.0.7", - "license": "MIT" - }, - "node_modules/@types/testing-library__jest-dom": { - "version": "5.14.0", - "license": "MIT", - "dependencies": { - "@types/jest": "*" - } - }, - "node_modules/@types/uglify-js": { - "version": "3.13.0", - "license": "MIT", - "dependencies": { - "source-map": "^0.6.1" - } - }, - "node_modules/@types/uglify-js/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@types/webpack": { - "version": "4.41.29", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/tapable": "^1", - "@types/uglify-js": "*", - "@types/webpack-sources": "*", - "anymatch": "^3.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/@types/webpack-sources": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.7.3" - } - }, - "node_modules/@types/webpack-sources/node_modules/source-map": { - "version": "0.7.3", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@types/webpack/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@types/yargs": { - "version": "15.0.13", - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "20.2.0", - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.28.1", - "license": "MIT", - "dependencies": { - "@typescript-eslint/experimental-utils": "4.28.1", - "@typescript-eslint/scope-manager": "4.28.1", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^4.0.0", - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.3.5", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "4.28.1", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.28.1", - "@typescript-eslint/types": "4.28.1", - "@typescript-eslint/typescript-estree": "4.28.1", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "4.28.1", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "4.28.1", - "@typescript-eslint/types": "4.28.1", - "@typescript-eslint/typescript-estree": "4.28.1", - "debug": "^4.3.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "4.28.1", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "4.28.1", - "@typescript-eslint/visitor-keys": "4.28.1" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "4.28.1", - "license": "MIT", - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "4.28.1", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "4.28.1", - "@typescript-eslint/visitor-keys": "4.28.1", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.5", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.28.1", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "4.28.1", - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "license": "MIT", - "dependencies": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "license": "ISC" - }, - "node_modules/@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.9.0", - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.9.0", - "license": "MIT", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.9.0", - "license": "MIT" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wast-parser": { - "version": "1.9.0", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "license": "BSD-3-Clause" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "license": "Apache-2.0" - }, - "node_modules/abab": { - "version": "2.0.5", - "license": "BSD-3-Clause" - }, - "node_modules/accepts": { - "version": "1.3.7", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "7.4.1", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.1", - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/address": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-errors": { - "version": "1.0.1", - "license": "MIT", - "peerDependencies": { - "ajv": ">=5.0.0" - } - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/alphanum-sort": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html": { - "version": "0.0.7", - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "license": "ISC" - }, - "node_modules/argparse": { - "version": "1.0.10", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/aria-query": { - "version": "4.2.2", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/arity-n": { - "version": "1.0.4", - "license": "MIT" - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "license": "MIT" - }, - "node_modules/array-includes": { - "version": "3.1.3", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.2.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.2.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arrify": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "license": "MIT" - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "node_modules/assert": { - "version": "1.5.0", - "license": "MIT", - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "license": "ISC" - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "license": "MIT", - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ast-types-flow": { - "version": "0.0.7", - "license": "ISC" - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "2.6.3", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-each": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "license": "ISC", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/atob": { - "version": "2.1.2", - "license": "(MIT OR Apache-2.0)", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/autoprefixer": { - "version": "9.8.6", - "license": "MIT", - "dependencies": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "colorette": "^1.2.1", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - }, - "node_modules/axe-core": { - "version": "4.2.3", - "license": "MPL-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/axobject-query": { - "version": "2.2.0", - "license": "Apache-2.0" - }, - "node_modules/babel-eslint": { - "version": "10.1.0", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "eslint": ">= 4.12.1" - } - }, - "node_modules/babel-eslint/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "license": "Apache-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/babel-extract-comments": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "babylon": "^6.18.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/babel-jest": { - "version": "26.6.3", - "license": "MIT", - "dependencies": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/babel-jest/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-jest/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-loader": { - "version": "8.1.0", - "license": "MIT", - "dependencies": { - "find-cache-dir": "^2.1.0", - "loader-utils": "^1.4.0", - "mkdirp": "^0.5.3", - "pify": "^4.0.1", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 6.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/json5": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "1.4.0", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "license": "MIT", - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-emotion": { - "version": "10.2.2", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@emotion/hash": "0.8.0", - "@emotion/memoize": "0.7.4", - "@emotion/serialize": "^0.11.16", - "babel-plugin-macros": "^2.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^1.0.5", - "find-root": "^1.1.0", - "source-map": "^0.5.7" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.0.0", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/babel-plugin-macros": { - "version": "2.8.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - } - }, - "node_modules/babel-plugin-macros/node_modules/cosmiconfig": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-named-asset-import": { - "version": "0.3.7", - "license": "MIT", - "peerDependencies": { - "@babel/core": "^7.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.2.2", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.2", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.2.3", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.2.2", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.2.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-syntax-jsx": { - "version": "6.18.0", - "license": "MIT" - }, - "node_modules/babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "license": "MIT" - }, - "node_modules/babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "license": "MIT", - "dependencies": { - "babel-plugin-syntax-object-rest-spread": "^6.8.0", - "babel-runtime": "^6.26.0" - } - }, - "node_modules/babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "license": "MIT" - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-react-app": { - "version": "10.0.0", - "license": "MIT", - "dependencies": { - "@babel/core": "7.12.3", - "@babel/plugin-proposal-class-properties": "7.12.1", - "@babel/plugin-proposal-decorators": "7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "7.12.1", - "@babel/plugin-proposal-numeric-separator": "7.12.1", - "@babel/plugin-proposal-optional-chaining": "7.12.1", - "@babel/plugin-transform-flow-strip-types": "7.12.1", - "@babel/plugin-transform-react-display-name": "7.12.1", - "@babel/plugin-transform-runtime": "7.12.1", - "@babel/preset-env": "7.12.1", - "@babel/preset-react": "7.12.1", - "@babel/preset-typescript": "7.12.1", - "@babel/runtime": "7.12.1", - "babel-plugin-macros": "2.8.0", - "babel-plugin-transform-react-remove-prop-types": "0.4.24" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/core": { - "version": "7.12.3", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.1", - "@babel/parser": "^7.12.3", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.12.1", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.12.1", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.12.1", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.12.1", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.12.1", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/preset-env": { - "version": "7.12.1", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.12.1", - "@babel/helper-compilation-targets": "^7.12.1", - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-option": "^7.12.1", - "@babel/plugin-proposal-async-generator-functions": "^7.12.1", - "@babel/plugin-proposal-class-properties": "^7.12.1", - "@babel/plugin-proposal-dynamic-import": "^7.12.1", - "@babel/plugin-proposal-export-namespace-from": "^7.12.1", - "@babel/plugin-proposal-json-strings": "^7.12.1", - "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-numeric-separator": "^7.12.1", - "@babel/plugin-proposal-object-rest-spread": "^7.12.1", - "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.1", - "@babel/plugin-proposal-private-methods": "^7.12.1", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.12.1", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.12.1", - "@babel/plugin-transform-arrow-functions": "^7.12.1", - "@babel/plugin-transform-async-to-generator": "^7.12.1", - "@babel/plugin-transform-block-scoped-functions": "^7.12.1", - "@babel/plugin-transform-block-scoping": "^7.12.1", - "@babel/plugin-transform-classes": "^7.12.1", - "@babel/plugin-transform-computed-properties": "^7.12.1", - "@babel/plugin-transform-destructuring": "^7.12.1", - "@babel/plugin-transform-dotall-regex": "^7.12.1", - "@babel/plugin-transform-duplicate-keys": "^7.12.1", - "@babel/plugin-transform-exponentiation-operator": "^7.12.1", - "@babel/plugin-transform-for-of": "^7.12.1", - "@babel/plugin-transform-function-name": "^7.12.1", - "@babel/plugin-transform-literals": "^7.12.1", - "@babel/plugin-transform-member-expression-literals": "^7.12.1", - "@babel/plugin-transform-modules-amd": "^7.12.1", - "@babel/plugin-transform-modules-commonjs": "^7.12.1", - "@babel/plugin-transform-modules-systemjs": "^7.12.1", - "@babel/plugin-transform-modules-umd": "^7.12.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", - "@babel/plugin-transform-new-target": "^7.12.1", - "@babel/plugin-transform-object-super": "^7.12.1", - "@babel/plugin-transform-parameters": "^7.12.1", - "@babel/plugin-transform-property-literals": "^7.12.1", - "@babel/plugin-transform-regenerator": "^7.12.1", - "@babel/plugin-transform-reserved-words": "^7.12.1", - "@babel/plugin-transform-shorthand-properties": "^7.12.1", - "@babel/plugin-transform-spread": "^7.12.1", - "@babel/plugin-transform-sticky-regex": "^7.12.1", - "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/plugin-transform-typeof-symbol": "^7.12.1", - "@babel/plugin-transform-unicode-escapes": "^7.12.1", - "@babel/plugin-transform-unicode-regex": "^7.12.1", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.12.1", - "core-js-compat": "^3.6.2", - "semver": "^5.5.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/preset-react": { - "version": "7.12.1", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-transform-react-display-name": "^7.12.1", - "@babel/plugin-transform-react-jsx": "^7.12.1", - "@babel/plugin-transform-react-jsx-development": "^7.12.1", - "@babel/plugin-transform-react-jsx-self": "^7.12.1", - "@babel/plugin-transform-react-jsx-source": "^7.12.1", - "@babel/plugin-transform-react-pure-annotations": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-react-app/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "license": "MIT", - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-runtime/node_modules/core-js": { - "version": "2.6.12", - "hasInstallScript": true, - "license": "MIT" - }, - "node_modules/babel-runtime/node_modules/regenerator-runtime": { - "version": "0.11.1", - "license": "MIT" - }, - "node_modules/babylon": { - "version": "6.18.0", - "license": "MIT", - "bin": { - "babylon": "bin/babylon.js" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/base": { - "version": "0.11.2", - "license": "MIT", - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/batch": { - "version": "0.6.1", - "license": "MIT" - }, - "node_modules/bfj": { - "version": "7.0.2", - "license": "MIT", - "dependencies": { - "bluebird": "^3.5.5", - "check-types": "^11.1.1", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "license": "MIT" - }, - "node_modules/bn.js": { - "version": "5.2.0", - "license": "MIT" - }, - "node_modules/body-parser": { - "version": "1.19.0", - "license": "MIT", - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/bonjour": { - "version": "3.5.0", - "license": "MIT", - "dependencies": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "license": "MIT", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "license": "BSD-2-Clause" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "license": "ISC", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "license": "MIT", - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.16.6", - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "4.9.2", - "license": "MIT", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/buffer-indexof": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/builtin-modules": { - "version": "3.2.0", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "license": "MIT" - }, - "node_modules/bytes": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "15.2.0", - "license": "ISC", - "dependencies": { - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "1.0.4", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cacache/node_modules/rimraf": { - "version": "3.0.2", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caller-callsite": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "callsites": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-callsite/node_modules/callsites": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-path": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "caller-callsite": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "license": "MIT", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "6.2.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001241", - "license": "CC-BY-4.0", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/capture-exit": { - "version": "2.0.0", - "license": "ISC", - "dependencies": { - "rsvp": "^4.8.4" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/case-sensitive-paths-webpack-plugin": { - "version": "2.3.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/check-types": { - "version": "11.1.2", - "license": "MIT" - }, - "node_modules/chokidar": { - "version": "3.5.2", - "license": "MIT", - "optional": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/cjs-module-lexer": { - "version": "0.6.0", - "license": "MIT" - }, - "node_modules/class-utils": { - "version": "0.3.6", - "license": "MIT", - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-css": { - "version": "4.2.3", - "license": "MIT", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/clsx": { - "version": "1.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/co": { - "version": "4.6.0", - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/coa": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color": { - "version": "3.1.3", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.1", - "color-string": "^1.5.4" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, - "node_modules/color-string": { - "version": "1.5.5", - "license": "MIT", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/colorette": { - "version": "1.2.2", - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "4.1.1", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/common-tags": { - "version": "1.8.0", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "license": "MIT" - }, - "node_modules/compose-function": { - "version": "3.0.3", - "license": "MIT", - "dependencies": { - "arity-n": "^1.0.4" - } - }, - "node_modules/compressible": { - "version": "2.0.18", - "license": "MIT", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "license": "MIT" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "engines": [ - "node >= 0.8" - ], - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.10", - "license": "MIT" - }, - "node_modules/connect-history-api-fallback": { - "version": "1.6.0", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/console-browserify": { - "version": "1.2.0" - }, - "node_modules/console-feed": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "@emotion/core": "^10.0.10", - "@emotion/styled": "^10.0.12", - "emotion-theming": "^10.0.10", - "linkifyjs": "^2.1.6", - "react-inspector": "^5.1.0" - }, - "peerDependencies": { - "react": "^15.x || ^16.x || ^17.x" - } - }, - "node_modules/console-feed/node_modules/@emotion/styled": { - "version": "10.0.27", - "license": "MIT", - "dependencies": { - "@emotion/styled-base": "^10.0.27", - "babel-plugin-emotion": "^10.0.27" - }, - "peerDependencies": { - "@emotion/core": "^10.0.27", - "react": ">=16.3.0" - } - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/content-disposition": { - "version": "0.5.3", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.4.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "license": "MIT" - }, - "node_modules/copy-concurrently": { - "version": "1.0.5", - "license": "ISC", - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "node_modules/copy-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-js": { - "version": "3.15.2", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.15.2", - "license": "MIT", - "dependencies": { - "browserslist": "^4.16.6", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-js-pure": { - "version": "3.15.2", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/cosmiconfig": { - "version": "7.0.0", - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "node_modules/create-hash": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "license": "MIT", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/crypto-random-string": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/css": { - "version": "2.2.4", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - } - }, - "node_modules/css-blank-pseudo": { - "version": "0.1.4", - "license": "CC0-1.0", - "dependencies": { - "postcss": "^7.0.5" - }, - "bin": { - "css-blank-pseudo": "cli.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/css-color-names": { - "version": "0.0.4", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/css-declaration-sorter": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - }, - "engines": { - "node": ">4" - } - }, - "node_modules/css-has-pseudo": { - "version": "0.10.0", - "license": "CC0-1.0", - "dependencies": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^5.0.0-rc.4" - }, - "bin": { - "css-has-pseudo": "cli.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/css-has-pseudo/node_modules/cssesc": { - "version": "2.0.0", - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-loader": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "cssesc": "^3.0.0", - "icss-utils": "^4.1.1", - "loader-utils": "^2.0.0", - "postcss": "^7.0.32", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^3.0.3", - "postcss-modules-scope": "^2.2.0", - "postcss-modules-values": "^3.0.0", - "postcss-value-parser": "^4.1.0", - "schema-utils": "^2.7.1", - "semver": "^7.3.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.27.0 || ^5.0.0" - } - }, - "node_modules/css-prefers-color-scheme": { - "version": "3.1.1", - "license": "CC0-1.0", - "dependencies": { - "postcss": "^7.0.5" - }, - "bin": { - "css-prefers-color-scheme": "cli.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/css-select": { - "version": "4.1.3", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-select-base-adapter": { - "version": "0.1.1", - "license": "MIT" - }, - "node_modules/css-tree": { - "version": "1.0.0-alpha.37", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-vendor": { - "version": "2.0.8", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.3", - "is-in-browser": "^1.0.2" - } - }, - "node_modules/css-what": { - "version": "5.0.1", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css.escape": { - "version": "1.5.1", - "license": "MIT" - }, - "node_modules/css/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssdb": { - "version": "4.4.0", - "license": "CC0-1.0" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "4.1.11", - "license": "MIT", - "dependencies": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.8", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default": { - "version": "4.0.8", - "license": "MIT", - "dependencies": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.3", - "postcss-unique-selectors": "^4.0.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-get-arguments": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-get-match": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-raw-cache": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-same-parent": { - "version": "4.0.1", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano/node_modules/cosmiconfig": { - "version": "5.2.1", - "license": "MIT", - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano/node_modules/import-fresh": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano/node_modules/parse-json": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano/node_modules/resolve-from": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "license": "MIT", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "1.1.3", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.14", - "license": "CC0-1.0" - }, - "node_modules/csso/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssom": { - "version": "0.4.4", - "license": "MIT" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "license": "MIT", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "license": "MIT" - }, - "node_modules/csstype": { - "version": "2.6.17", - "license": "MIT" - }, - "node_modules/cyclist": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/d": { - "version": "1.0.1", - "license": "ISC", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.7", - "license": "BSD-2-Clause" - }, - "node_modules/data-urls": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/debug": { - "version": "4.3.1", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decimal.js": { - "version": "10.3.1", - "license": "MIT" - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "license": "MIT" - }, - "node_modules/deep-equal": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/deep-is": { - "version": "0.1.3", - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "4.2.0", - "license": "BSD-2-Clause", - "dependencies": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/default-gateway/node_modules/cross-spawn": { - "version": "6.0.5", - "license": "MIT", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/default-gateway/node_modules/execa": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/default-gateway/node_modules/get-stream": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/default-gateway/node_modules/is-stream": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway/node_modules/npm-run-path": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/default-gateway/node_modules/path-key": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/default-gateway/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/default-gateway/node_modules/shebang-command": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway/node_modules/shebang-regex": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway/node_modules/which": { - "version": "1.3.1", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "license": "MIT", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/del/node_modules/array-union": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/globby": { - "version": "6.1.0", - "license": "MIT", - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/globby/node_modules/pify": { - "version": "2.3.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/p-map": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/del/node_modules/rimraf": { - "version": "2.7.1", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "license": "MIT" - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "license": "MIT" - }, - "node_modules/detect-port-alt": { - "version": "1.1.6", - "license": "MIT", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" - }, - "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detect-port-alt/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/diff-sequences": { - "version": "26.6.2", - "license": "MIT", - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/dns-packet": { - "version": "1.3.4", - "license": "MIT", - "dependencies": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/dns-txt": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "buffer-indexof": "^1.0.0" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-accessibility-api": { - "version": "0.5.14", - "license": "MIT" - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "license": "MIT", - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/dom-helpers/node_modules/csstype": { - "version": "3.0.9", - "license": "MIT" - }, - "node_modules/dom-serializer": { - "version": "1.3.2", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/domelementtype": { - "version": "2.2.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domexception": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/domhandler": { - "version": "4.2.0", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.7.0", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "license": "MIT", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dot-prop/node_modules/is-obj": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/dotenv": { - "version": "8.2.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/dotenv-expand": { - "version": "5.1.0", - "license": "BSD-2-Clause" - }, - "node_modules/duplexer": { - "version": "0.1.2", - "license": "MIT" - }, - "node_modules/duplexify": { - "version": "3.7.1", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/ejs": { - "version": "2.7.4", - "hasInstallScript": true, - "license": "Apache-2.0", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.3.763", - "license": "ISC" - }, - "node_modules/elliptic": { - "version": "6.5.4", - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "node_modules/emittery": { - "version": "0.7.2", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "license": "MIT" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/emotion-theming": { - "version": "10.0.27", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.5.5", - "@emotion/weak-memoize": "0.2.5", - "hoist-non-react-statics": "^3.3.0" - }, - "peerDependencies": { - "@emotion/core": "^10.0.27", - "react": ">=16.3.0" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "4.5.0", - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/enhanced-resolve/node_modules/memory-fs": { - "version": "0.5.0", - "license": "MIT", - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "license": "MIT", - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/errno": { - "version": "0.1.8", - "license": "MIT", - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/error-stack-parser": { - "version": "2.0.6", - "license": "MIT", - "dependencies": { - "stackframe": "^1.1.1" - } - }, - "node_modules/es-abstract": { - "version": "1.18.3", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", - "object-inspect": "^1.10.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.53", - "license": "ISC", - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "license": "MIT", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "license": "ISC", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.0.0", - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.2.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "license": "MIT", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint": { - "version": "7.29.0", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-react-app": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "confusing-browser-globals": "^1.0.10" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0", - "@typescript-eslint/parser": "^4.0.0", - "babel-eslint": "^10.0.0", - "eslint": "^7.5.0", - "eslint-plugin-flowtype": "^5.2.0", - "eslint-plugin-import": "^2.22.0", - "eslint-plugin-jest": "^24.0.0", - "eslint-plugin-jsx-a11y": "^6.3.1", - "eslint-plugin-react": "^7.20.3", - "eslint-plugin-react-hooks": "^4.0.8", - "eslint-plugin-testing-library": "^3.9.0" - }, - "peerDependenciesMeta": { - "eslint-plugin-jest": { - "optional": true - }, - "eslint-plugin-testing-library": { - "optional": true - } - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.4", - "license": "MIT", - "dependencies": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/eslint-module-utils": { - "version": "2.6.1", - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "pkg-dir": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-flowtype": { - "version": "5.8.0", - "license": "BSD-3-Clause", - "dependencies": { - "lodash": "^4.17.15", - "string-natural-compare": "^3.0.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "^7.1.0" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.23.4", - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.1", - "find-up": "^2.0.0", - "has": "^1.0.3", - "is-core-module": "^2.4.0", - "minimatch": "^3.0.4", - "object.values": "^1.1.3", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.9.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/find-up": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/locate-path": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/eslint-plugin-import/node_modules/p-limit": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/p-locate": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/p-try": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/path-exists": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/resolve": { - "version": "1.20.0", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-plugin-jest": { - "version": "24.3.6", - "license": "MIT", - "dependencies": { - "@typescript-eslint/experimental-utils": "^4.0.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": ">= 4", - "eslint": ">=5" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.4.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.11.2", - "aria-query": "^4.2.2", - "array-includes": "^3.1.1", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.0.2", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.6", - "emoji-regex": "^9.0.0", - "has": "^1.0.3", - "jsx-ast-utils": "^3.1.0", - "language-tags": "^1.0.5" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.24.0", - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.3", - "array.prototype.flatmap": "^1.2.4", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.0.4", - "object.entries": "^1.1.4", - "object.fromentries": "^2.0.4", - "object.values": "^1.1.4", - "prop-types": "^15.7.2", - "resolve": "^2.0.0-next.3", - "string.prototype.matchall": "^4.0.5" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.2.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.3", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-plugin-testing-library": { - "version": "3.10.2", - "license": "MIT", - "dependencies": { - "@typescript-eslint/experimental-utils": "^3.10.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0", - "npm": ">=6" - }, - "peerDependencies": { - "eslint": "^5 || ^6 || ^7" - } - }, - "node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/experimental-utils": { - "version": "3.10.1", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/typescript-estree": "3.10.1", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - } - }, - "node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/types": { - "version": "3.10.1", - "license": "MIT", - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/typescript-estree": { - "version": "3.10.1", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/visitor-keys": "3.10.1", - "debug": "^4.1.1", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-testing-library/node_modules/@typescript-eslint/visitor-keys": { - "version": "3.10.1", - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-testing-library/node_modules/eslint-utils": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-plugin-testing-library/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "license": "Apache-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-webpack-plugin": { - "version": "2.5.4", - "license": "MIT", - "dependencies": { - "@types/eslint": "^7.2.6", - "arrify": "^2.0.1", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "normalize-path": "^3.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "eslint": "^7.0.0", - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-utils": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "license": "Apache-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.9.0", - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "7.3.1", - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "license": "Apache-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/esutils": { - "version": "2.0.3", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/eventsource": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "original": "^1.0.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/exec-sh": { - "version": "0.3.6", - "license": "MIT" - }, - "node_modules/execa": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "license": "MIT", - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/expect": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/expect/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/expect/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/expect/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/express": { - "version": "4.17.1", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/ext": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "type": "^2.0.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.5.0", - "license": "ISC" - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "license": "MIT", - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.2.6", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.11.0", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "license": "Apache-2.0", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/figgy-pudding": { - "version": "3.5.2", - "license": "ISC" - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-loader": { - "version": "6.1.1", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/filesize": { - "version": "6.1.0", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/find-cache-dir": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/find-up": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/path-exists": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-root": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/find-up": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "license": "MIT", - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flatted": { - "version": "3.1.1", - "license": "ISC" - }, - "node_modules/flatten": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "node_modules/follow-redirects": { - "version": "1.14.1", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "4.1.6", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.5.5", - "chalk": "^2.4.1", - "micromatch": "^3.1.10", - "minimatch": "^3.0.4", - "semver": "^5.6.0", - "tapable": "^1.0.0", - "worker-rpc": "^0.1.0" - }, - "engines": { - "node": ">=6.11.5", - "yarn": ">=1.0.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/braces": { - "version": "2.3.2", - "license": "MIT", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fill-range": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/is-extendable": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/is-number": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/micromatch": { - "version": "3.1.10", - "license": "MIT", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/to-regex-range": { - "version": "2.1.1", - "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "license": "MIT", - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/geolib": { - "version": "3.3.1", - "license": "MIT" - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "license": "ISC" - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob": { - "version": "7.1.7", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.0.4", - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby/node_modules/ignore": { - "version": "5.1.8", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/google-maps": { - "version": "3.3.0", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.6", - "license": "ISC" - }, - "node_modules/growly": { - "version": "1.3.0", - "license": "MIT", - "optional": true - }, - "node_modules/gzip-size": { - "version": "5.1.1", - "license": "MIT", - "dependencies": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "license": "MIT" - }, - "node_modules/harmony-reflect": { - "version": "1.6.2", - "license": "(Apache-2.0 OR MPL-1.1)" - }, - "node_modules/has": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-value": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/hash.js": { - "version": "1.1.7", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/he": { - "version": "1.2.0", - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/hex-color-regex": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/history": { - "version": "4.10.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "license": "BSD-3-Clause", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "license": "MIT" - }, - "node_modules/hoopy": { - "version": "0.1.4", - "license": "MIT", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "license": "ISC" - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hsl-regex": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/hsla-regex": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-entities": { - "version": "1.4.0", - "license": "MIT" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "license": "MIT" - }, - "node_modules/html-minifier-terser": { - "version": "5.1.1", - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.1", - "clean-css": "^4.2.3", - "commander": "^4.1.1", - "he": "^1.2.0", - "param-case": "^3.0.3", - "relateurl": "^0.2.7", - "terser": "^4.6.3" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/html-webpack-plugin": { - "version": "4.5.0", - "license": "MIT", - "dependencies": { - "@types/html-minifier-terser": "^5.0.0", - "@types/tapable": "^1.0.5", - "@types/webpack": "^4.41.8", - "html-minifier-terser": "^5.0.1", - "loader-utils": "^1.2.3", - "lodash": "^4.17.15", - "pretty-error": "^2.1.1", - "tapable": "^1.1.3", - "util.promisify": "1.0.0" - }, - "engines": { - "node": ">=6.9" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/html-webpack-plugin/node_modules/json5": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/html-webpack-plugin/node_modules/loader-utils": { - "version": "1.4.0", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "license": "MIT" - }, - "node_modules/http-errors": { - "version": "1.7.2", - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "license": "ISC" - }, - "node_modules/http-parser-js": { - "version": "0.5.3", - "license": "MIT" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-middleware": { - "version": "0.19.1", - "license": "MIT", - "dependencies": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/braces": { - "version": "2.3.2", - "license": "MIT", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/fill-range": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/is-extendable": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/is-number": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/micromatch": { - "version": "3.1.10", - "license": "MIT", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/to-regex-range": { - "version": "2.1.1", - "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "1.1.1", - "license": "Apache-2.0", - "engines": { - "node": ">=8.12.0" - } - }, - "node_modules/hyphenate-style-name": { - "version": "1.0.4", - "license": "BSD-3-Clause" - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "4.1.1", - "license": "ISC", - "dependencies": { - "postcss": "^7.0.14" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/identity-obj-proxy": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "harmony-reflect": "^1.4.6" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/iferr": { - "version": "0.1.5", - "license": "MIT" - }, - "node_modules/ignore": { - "version": "4.0.6", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immer": { - "version": "8.0.1", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-cwd": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "import-from": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-from": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-from/node_modules/resolve-from": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.0.2", - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "4.2.0", - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/indexes-of": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "license": "ISC" - }, - "node_modules/inflight": { - "version": "1.0.6", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "license": "ISC" - }, - "node_modules/internal-ip": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ip": { - "version": "1.1.5", - "license": "MIT" - }, - "node_modules/ip-regex": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-absolute-url": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "license": "MIT" - }, - "node_modules/is-bigint": { - "version": "1.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "license": "MIT", - "optional": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "license": "MIT" - }, - "node_modules/is-callable": { - "version": "1.2.3", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-color-stop": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "node_modules/is-core-module": { - "version": "2.4.0", - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-directory": { - "version": "0.3.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-dom": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "is-object": "^1.0.1", - "is-window": "^1.0.2" - } - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-in-browser": { - "version": "1.1.3", - "license": "MIT" - }, - "node_modules/is-module": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-object": { - "version": "1.0.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-in-cwd": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "is-path-inside": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "path-is-inside": "^1.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/is-regex": { - "version": "1.1.3", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-resolvable": { - "version": "1.1.0", - "license": "ISC" - }, - "node_modules/is-root": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-stream": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-string": { - "version": "1.0.6", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/is-window": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/is-windows": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "license": "ISC" - }, - "node_modules/isobject": { - "version": "3.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/istanbul-lib-report/node_modules/semver": { - "version": "6.3.0", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.0", - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.0.2", - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "26.6.0", - "license": "MIT", - "dependencies": { - "@jest/core": "^26.6.0", - "import-local": "^3.0.2", - "jest-cli": "^26.6.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-changed-files": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-circus": { - "version": "26.6.0", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.0", - "@jest/test-result": "^26.6.0", - "@jest/types": "^26.6.0", - "@types/babel__traverse": "^7.0.4", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^26.6.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.0", - "jest-matcher-utils": "^26.6.0", - "jest-message-util": "^26.6.0", - "jest-runner": "^26.6.0", - "jest-runtime": "^26.6.0", - "jest-snapshot": "^26.6.0", - "jest-util": "^26.6.0", - "pretty-format": "^26.6.0", - "stack-utils": "^2.0.2", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-circus/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/jest-circus/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli": { - "version": "26.6.3", - "license": "MIT", - "dependencies": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-cli/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/jest-cli/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config": { - "version": "26.6.3", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-config/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/jest-config/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/jest-resolve": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-config/node_modules/read-pkg": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/read-pkg-up": { - "version": "7.0.1", - "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-config/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/type-fest": { - "version": "0.8.1", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-docblock": { - "version": "26.0.0", - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-each": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-each/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/jest-each/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-each/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-environment-node": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-get-type": { - "version": "26.3.0", - "license": "MIT", - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-haste-map": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "engines": { - "node": ">= 10.14.2" - }, - "optionalDependencies": { - "fsevents": "^2.1.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "26.6.3", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-jasmine2/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/jest-jasmine2/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-leak-detector": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-matcher-utils": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-message-util/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-mock": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "26.0.0", - "license": "MIT", - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-resolve": { - "version": "26.6.0", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.0", - "read-pkg-up": "^7.0.1", - "resolve": "^1.17.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "26.6.3", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-resolve/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/jest-resolve/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/read-pkg": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/read-pkg-up": { - "version": "7.0.1", - "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-resolve/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/type-fest": { - "version": "0.8.1", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner": { - "version": "26.6.3", - "license": "MIT", - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runner/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/jest-runner/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/jest-resolve": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-runner/node_modules/read-pkg": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/read-pkg-up": { - "version": "7.0.1", - "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-runner/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/type-fest": { - "version": "0.8.1", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime": { - "version": "26.6.3", - "license": "MIT", - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - }, - "bin": { - "jest-runtime": "bin/jest-runtime.js" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runtime/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/jest-runtime/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/jest-resolve": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-runtime/node_modules/read-pkg": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/read-pkg-up": { - "version": "7.0.1", - "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-runtime/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/type-fest": { - "version": "0.8.1", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-serializer": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-snapshot": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/jest-snapshot/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/jest-resolve": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-snapshot/node_modules/read-pkg": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/read-pkg-up": { - "version": "7.0.1", - "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-snapshot/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/type-fest": { - "version": "0.8.1", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "leven": "^3.1.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-validate/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/jest-validate/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead": { - "version": "0.6.1", - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "jest-regex-util": "^26.0.0", - "jest-watcher": "^26.3.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "jest": "^26.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/jest-watch-typeahead/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-watcher/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jquery": { - "version": "3.6.0", - "license": "MIT", - "peer": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "16.6.0", - "license": "MIT", - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.5", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsdom/node_modules/acorn": { - "version": "8.4.1", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "license": "MIT" - }, - "node_modules/json-ref-lite": { - "version": "1.1.0", - "license": "ISC", - "dependencies": { - "property-expr": "^1.3.1" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/json3": { - "version": "3.3.3", - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.0", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jss": { - "version": "10.8.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "csstype": "^3.0.2", - "is-in-browser": "^1.1.3", - "tiny-warning": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/jss" - } - }, - "node_modules/jss-plugin-camel-case": { - "version": "10.8.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "hyphenate-style-name": "^1.0.3", - "jss": "10.8.0" - } - }, - "node_modules/jss-plugin-default-unit": { - "version": "10.8.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "jss": "10.8.0" - } - }, - "node_modules/jss-plugin-global": { - "version": "10.8.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "jss": "10.8.0" - } - }, - "node_modules/jss-plugin-nested": { - "version": "10.8.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "jss": "10.8.0", - "tiny-warning": "^1.0.2" - } - }, - "node_modules/jss-plugin-props-sort": { - "version": "10.8.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "jss": "10.8.0" - } - }, - "node_modules/jss-plugin-rule-value-function": { - "version": "10.8.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "jss": "10.8.0", - "tiny-warning": "^1.0.2" - } - }, - "node_modules/jss-plugin-vendor-prefixer": { - "version": "10.8.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "css-vendor": "^2.0.8", - "jss": "10.8.0" - } - }, - "node_modules/jss/node_modules/csstype": { - "version": "3.0.9", - "license": "MIT" - }, - "node_modules/jsx-ast-utils": { - "version": "3.2.0", - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.2", - "object.assign": "^4.1.2" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/killable": { - "version": "1.0.1", - "license": "ISC" - }, - "node_modules/kind-of": { - "version": "6.0.3", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/klona": { - "version": "2.0.4", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/language-subtag-registry": { - "version": "0.3.21", - "license": "ODC-By-1.0" - }, - "node_modules/language-tags": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "language-subtag-registry": "~0.3.2" - } - }, - "node_modules/last-call-webpack-plugin": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.5", - "webpack-sources": "^1.1.0" - } - }, - "node_modules/leaflet": { - "version": "1.7.1", - "license": "BSD-2-Clause" - }, - "node_modules/leaflet-easybutton": { - "version": "2.4.0", - "license": "MIT", - "dependencies": { - "leaflet": "^1.0.1" - } - }, - "node_modules/leaflet-marker-rotation": { - "version": "0.4.0", - "license": "MIT" - }, - "node_modules/leaflet.marker.slideto": { - "version": "0.2.0", - "license": "Beerware" - }, - "node_modules/leven": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.1.6", - "license": "MIT" - }, - "node_modules/linkifyjs": { - "version": "2.1.9", - "license": "MIT", - "peerDependencies": { - "jquery": ">= 1.11.0", - "react": ">= 0.14.0", - "react-dom": ">= 0.14.0" - } - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/pify": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/loader-runner": { - "version": "2.4.0", - "license": "MIT", - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/loader-utils": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "license": "MIT" - }, - "node_modules/lodash._reinterpolate": { - "version": "3.0.0", - "license": "MIT" - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "license": "MIT" - }, - "node_modules/lodash.template": { - "version": "4.5.0", - "license": "MIT", - "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "node_modules/lodash.templatesettings": { - "version": "4.2.0", - "license": "MIT", - "dependencies": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "license": "MIT" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "license": "MIT" - }, - "node_modules/loglevel": { - "version": "1.7.1", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lz-string": { - "version": "1.4.4", - "license": "WTFPL", - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/magic-string": { - "version": "0.25.7", - "license": "MIT", - "dependencies": { - "sourcemap-codec": "^1.4.4" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/makeerror": { - "version": "1.0.11", - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.x" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/mdn-data": { - "version": "2.0.4", - "license": "CC0-1.0" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memory-fs": { - "version": "0.4.1", - "license": "MIT", - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/microevent.ts": { - "version": "0.1.1", - "license": "MIT" - }, - "node_modules/micromatch": { - "version": "4.0.4", - "license": "MIT", - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "node_modules/mime": { - "version": "1.6.0", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.48.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.31", - "license": "MIT", - "dependencies": { - "mime-db": "1.48.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/mini-create-react-context": { - "version": "0.4.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.1", - "tiny-warning": "^1.0.3" - }, - "peerDependencies": { - "prop-types": "^15.0.0", - "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "0.11.3", - "license": "MIT", - "dependencies": { - "loader-utils": "^1.1.0", - "normalize-url": "1.9.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.4.0 || ^5.0.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/json5": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/loader-utils": { - "version": "1.4.0", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "license": "ISC" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/minimatch": { - "version": "3.0.4", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "license": "MIT" - }, - "node_modules/minipass": { - "version": "3.1.3", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "license": "MIT", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mississippi": { - "version": "3.0.0", - "license": "BSD-2-Clause", - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "license": "MIT", - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "license": "ISC", - "dependencies": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "node_modules/move-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "license": "MIT" - }, - "node_modules/multicast-dns": { - "version": "6.2.3", - "license": "MIT", - "dependencies": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/multicast-dns-service-types": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.1.23", - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "license": "MIT", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/native-url": { - "version": "0.2.6", - "license": "Apache-2.0", - "dependencies": { - "querystring": "^0.2.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "0.6.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "license": "MIT" - }, - "node_modules/next-tick": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/nice-try": { - "version": "1.0.5", - "license": "MIT" - }, - "node_modules/no-case": { - "version": "3.0.4", - "license": "MIT", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-forge": { - "version": "0.10.0", - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "license": "MIT" - }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "license": "MIT", - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "license": "MIT" - }, - "node_modules/node-modules-regexp": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-notifier": { - "version": "8.0.2", - "license": "MIT", - "optional": true, - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - } - }, - "node_modules/node-releases": { - "version": "1.1.73", - "license": "MIT" - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "1.9.1", - "license": "MIT", - "dependencies": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nth-check": { - "version": "2.0.0", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/num2fraction": { - "version": "1.2.2", - "license": "MIT" - }, - "node_modules/nwsapi": { - "version": "2.2.0", - "license": "MIT" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "license": "MIT", - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.10.3", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.1.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "license": "MIT" - }, - "node_modules/on-finished": { - "version": "2.3.0", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "7.4.2", - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/opn": { - "version": "5.5.0", - "license": "MIT", - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/opn/node_modules/is-wsl": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/optimize-css-assets-webpack-plugin": { - "version": "5.0.4", - "license": "MIT", - "dependencies": { - "cssnano": "^4.1.10", - "last-call-webpack-plugin": "^3.0.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/original": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "url-parse": "^1.4.3" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "license": "MIT" - }, - "node_modules/p-each-series": { - "version": "2.2.0", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "retry": "^0.12.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "license": "(MIT AND Zlib)" - }, - "node_modules/parallel-transform": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "license": "ISC", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "license": "MIT" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "0.0.1", - "license": "MIT" - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/path-exists": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "license": "(WTFPL OR MIT)" - }, - "node_modules/path-key": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "license": "MIT" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "license": "MIT", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "license": "MIT" - }, - "node_modules/picomatch": { - "version": "2.3.0", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "node-modules-regexp": "^1.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir/node_modules/p-try": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up/node_modules/p-try": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/pnp-webpack-plugin": { - "version": "1.6.4", - "license": "MIT", - "dependencies": { - "ts-pnp": "^1.1.6" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/portfinder": { - "version": "1.0.28", - "license": "MIT", - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "7.0.36", - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-attribute-case-insensitive": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^6.0.2" - } - }, - "node_modules/postcss-browser-comments": { - "version": "3.0.0", - "license": "CC0-1.0", - "dependencies": { - "postcss": "^7" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "browserslist": "^4" - } - }, - "node_modules/postcss-calc": { - "version": "7.0.5", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "node_modules/postcss-color-functional-notation": { - "version": "2.0.1", - "license": "CC0-1.0", - "dependencies": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-color-gray": { - "version": "5.0.0", - "license": "ISC", - "dependencies": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.5", - "postcss-values-parser": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-color-hex-alpha": { - "version": "5.0.3", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.14", - "postcss-values-parser": "^2.0.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-color-mod-function": { - "version": "3.0.3", - "license": "CC0-1.0", - "dependencies": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-color-rebeccapurple": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-colormin": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-colormin/node_modules/postcss-value-parser": { - "version": "3.3.1", - "license": "MIT" - }, - "node_modules/postcss-convert-values": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "license": "MIT" - }, - "node_modules/postcss-custom-media": { - "version": "7.0.8", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.14" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-custom-properties": { - "version": "8.0.11", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.17", - "postcss-values-parser": "^2.0.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-custom-selectors": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-custom-selectors/node_modules/cssesc": { - "version": "2.0.0", - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-dir-pseudo-class": { - "version": "5.0.0", - "license": "CC0-1.0", - "dependencies": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-dir-pseudo-class/node_modules/cssesc": { - "version": "2.0.0", - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-discard-comments": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-empty": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-double-position-gradients": { - "version": "1.0.0", - "license": "CC0-1.0", - "dependencies": { - "postcss": "^7.0.5", - "postcss-values-parser": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-env-function": { - "version": "2.0.2", - "license": "CC0-1.0", - "dependencies": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-flexbugs-fixes": { - "version": "4.2.1", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.26" - } - }, - "node_modules/postcss-focus-visible": { - "version": "4.0.0", - "license": "CC0-1.0", - "dependencies": { - "postcss": "^7.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-focus-within": { - "version": "3.0.0", - "license": "CC0-1.0", - "dependencies": { - "postcss": "^7.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-font-variant": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.2" - } - }, - "node_modules/postcss-gap-properties": { - "version": "2.0.0", - "license": "CC0-1.0", - "dependencies": { - "postcss": "^7.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-image-set-function": { - "version": "3.0.1", - "license": "CC0-1.0", - "dependencies": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-initial": { - "version": "3.0.4", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.2" - } - }, - "node_modules/postcss-lab-function": { - "version": "2.0.1", - "license": "CC0-1.0", - "dependencies": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-load-config": { - "version": "2.1.2", - "license": "MIT", - "dependencies": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-load-config/node_modules/cosmiconfig": { - "version": "5.2.1", - "license": "MIT", - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-load-config/node_modules/import-fresh": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-load-config/node_modules/parse-json": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-load-config/node_modules/resolve-from": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-loader": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-loader/node_modules/json5": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/postcss-loader/node_modules/loader-utils": { - "version": "1.4.0", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-loader/node_modules/schema-utils": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/postcss-logical": { - "version": "3.0.0", - "license": "CC0-1.0", - "dependencies": { - "postcss": "^7.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-media-minmax": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "4.0.11", - "license": "MIT", - "dependencies": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": { - "version": "3.3.1", - "license": "MIT" - }, - "node_modules/postcss-merge-rules": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "license": "MIT", - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "license": "MIT" - }, - "node_modules/postcss-minify-gradients": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { - "version": "3.3.1", - "license": "MIT" - }, - "node_modules/postcss-minify-params": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { - "version": "3.3.1", - "license": "MIT" - }, - "node_modules/postcss-minify-selectors": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "license": "MIT", - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "2.0.0", - "license": "ISC", - "dependencies": { - "postcss": "^7.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "3.0.3", - "license": "MIT", - "dependencies": { - "icss-utils": "^4.1.1", - "postcss": "^7.0.32", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-scope": { - "version": "2.2.0", - "license": "ISC", - "dependencies": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-values": { - "version": "3.0.0", - "license": "ISC", - "dependencies": { - "icss-utils": "^4.0.0", - "postcss": "^7.0.6" - } - }, - "node_modules/postcss-nesting": { - "version": "7.0.1", - "license": "CC0-1.0", - "dependencies": { - "postcss": "^7.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-normalize": { - "version": "8.0.1", - "license": "CC0-1.0", - "dependencies": { - "@csstools/normalize.css": "^10.1.0", - "browserslist": "^4.6.2", - "postcss": "^7.0.17", - "postcss-browser-comments": "^3.0.0", - "sanitize.css": "^10.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "license": "MIT" - }, - "node_modules/postcss-normalize-positions": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": { - "version": "3.3.1", - "license": "MIT" - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": { - "version": "3.3.1", - "license": "MIT" - }, - "node_modules/postcss-normalize-string": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": { - "version": "3.3.1", - "license": "MIT" - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": { - "version": "3.3.1", - "license": "MIT" - }, - "node_modules/postcss-normalize-unicode": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": { - "version": "3.3.1", - "license": "MIT" - }, - "node_modules/postcss-normalize-url": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-url/node_modules/normalize-url": { - "version": "3.3.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { - "version": "3.3.1", - "license": "MIT" - }, - "node_modules/postcss-normalize-whitespace": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": { - "version": "3.3.1", - "license": "MIT" - }, - "node_modules/postcss-ordered-values": { - "version": "4.1.2", - "license": "MIT", - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "license": "MIT" - }, - "node_modules/postcss-overflow-shorthand": { - "version": "2.0.0", - "license": "CC0-1.0", - "dependencies": { - "postcss": "^7.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-page-break": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.2" - } - }, - "node_modules/postcss-place": { - "version": "4.0.1", - "license": "CC0-1.0", - "dependencies": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-preset-env": { - "version": "6.7.0", - "license": "CC0-1.0", - "dependencies": { - "autoprefixer": "^9.6.1", - "browserslist": "^4.6.4", - "caniuse-lite": "^1.0.30000981", - "css-blank-pseudo": "^0.1.4", - "css-has-pseudo": "^0.10.0", - "css-prefers-color-scheme": "^3.1.1", - "cssdb": "^4.4.0", - "postcss": "^7.0.17", - "postcss-attribute-case-insensitive": "^4.0.1", - "postcss-color-functional-notation": "^2.0.1", - "postcss-color-gray": "^5.0.0", - "postcss-color-hex-alpha": "^5.0.3", - "postcss-color-mod-function": "^3.0.3", - "postcss-color-rebeccapurple": "^4.0.1", - "postcss-custom-media": "^7.0.8", - "postcss-custom-properties": "^8.0.11", - "postcss-custom-selectors": "^5.1.2", - "postcss-dir-pseudo-class": "^5.0.0", - "postcss-double-position-gradients": "^1.0.0", - "postcss-env-function": "^2.0.2", - "postcss-focus-visible": "^4.0.0", - "postcss-focus-within": "^3.0.0", - "postcss-font-variant": "^4.0.0", - "postcss-gap-properties": "^2.0.0", - "postcss-image-set-function": "^3.0.1", - "postcss-initial": "^3.0.0", - "postcss-lab-function": "^2.0.1", - "postcss-logical": "^3.0.0", - "postcss-media-minmax": "^4.0.0", - "postcss-nesting": "^7.0.0", - "postcss-overflow-shorthand": "^2.0.0", - "postcss-page-break": "^2.0.0", - "postcss-place": "^4.0.1", - "postcss-pseudo-class-any-link": "^6.0.0", - "postcss-replace-overflow-wrap": "^3.0.0", - "postcss-selector-matches": "^4.0.0", - "postcss-selector-not": "^4.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-pseudo-class-any-link": { - "version": "6.0.0", - "license": "CC0-1.0", - "dependencies": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-pseudo-class-any-link/node_modules/cssesc": { - "version": "2.0.0", - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { - "version": "3.3.1", - "license": "MIT" - }, - "node_modules/postcss-replace-overflow-wrap": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.2" - } - }, - "node_modules/postcss-safe-parser": { - "version": "5.0.2", - "license": "MIT", - "dependencies": { - "postcss": "^8.1.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-safe-parser/node_modules/postcss": { - "version": "8.3.5", - "license": "MIT", - "dependencies": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", - "source-map-js": "^0.6.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-selector-matches": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "postcss": "^7.0.2" - } - }, - "node_modules/postcss-selector-not": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "postcss": "^7.0.2" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.6", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-svgo/node_modules/postcss-value-parser": { - "version": "3.3.1", - "license": "MIT" - }, - "node_modules/postcss-unique-selectors": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.1.0", - "license": "MIT" - }, - "node_modules/postcss-values-parser": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=6.14.4" - } - }, - "node_modules/postcss/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss/node_modules/supports-color": { - "version": "6.1.0", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prepend-http": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pretty-error": { - "version": "2.1.2", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^2.0.4" - } - }, - "node_modules/pretty-format": { - "version": "26.6.2", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pretty-format/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/pretty-format/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/process": { - "version": "0.11.10", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "license": "MIT" - }, - "node_modules/progress": { - "version": "2.0.3", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise": { - "version": "8.1.0", - "license": "MIT", - "dependencies": { - "asap": "~2.0.6" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "license": "ISC" - }, - "node_modules/prompts": { - "version": "2.4.0", - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.7.2", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "license": "MIT" - }, - "node_modules/property-expr": { - "version": "1.5.1", - "license": "MIT" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/psl": { - "version": "1.8.0", - "license": "MIT" - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "license": "MIT", - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/q": { - "version": "1.5.1", - "license": "MIT", - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qs": { - "version": "6.7.0", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/query-string": { - "version": "4.3.4", - "license": "MIT", - "dependencies": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/querystring": { - "version": "0.2.1", - "license": "MIT", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "license": "MIT" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/raf": { - "version": "3.4.1", - "license": "MIT", - "dependencies": { - "performance-now": "^2.1.0" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.0", - "license": "MIT", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react": { - "version": "17.0.2", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-app-polyfill": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "core-js": "^3.6.5", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.7", - "whatwg-fetch": "^3.4.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/react-dev-utils": { - "version": "11.0.4", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "7.10.4", - "address": "1.1.2", - "browserslist": "4.14.2", - "chalk": "2.4.2", - "cross-spawn": "7.0.3", - "detect-port-alt": "1.1.6", - "escape-string-regexp": "2.0.0", - "filesize": "6.1.0", - "find-up": "4.1.0", - "fork-ts-checker-webpack-plugin": "4.1.6", - "global-modules": "2.0.0", - "globby": "11.0.1", - "gzip-size": "5.1.1", - "immer": "8.0.1", - "is-root": "2.1.0", - "loader-utils": "2.0.0", - "open": "^7.0.2", - "pkg-up": "3.1.0", - "prompts": "2.4.0", - "react-error-overlay": "^6.0.9", - "recursive-readdir": "2.2.2", - "shell-quote": "1.7.2", - "strip-ansi": "6.0.0", - "text-table": "0.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/react-dev-utils/node_modules/@babel/code-frame": { - "version": "7.10.4", - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/react-dev-utils/node_modules/browserslist": { - "version": "4.14.2", - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001125", - "electron-to-chromium": "^1.3.564", - "escalade": "^3.0.2", - "node-releases": "^1.1.61" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - }, - "node_modules/react-dev-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/react-dev-utils/node_modules/globby": { - "version": "11.0.1", - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/ignore": { - "version": "5.1.8", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/react-dev-utils/node_modules/locate-path": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/react-dev-utils/node_modules/p-locate": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/react-dev-utils/node_modules/path-exists": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/react-dev-utils/node_modules/pkg-up": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/react-dev-utils/node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/react-dial-knob": { - "version": "1.3.0", - "license": "MIT", - "peerDependencies": { - "react": "^17.0.1" - } - }, - "node_modules/react-dom": { - "version": "17.0.2", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/react-error-overlay": { - "version": "6.0.9", - "license": "MIT" - }, - "node_modules/react-inspector": { - "version": "5.1.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.0.0", - "is-dom": "^1.0.0", - "prop-types": "^15.0.0" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "license": "MIT" - }, - "node_modules/react-leaflet": { - "version": "3.2.1", - "license": "Hippocratic-2.1", - "dependencies": { - "@react-leaflet/core": "^1.1.0" - }, - "peerDependencies": { - "leaflet": "^1.7.1", - "react": "^17.0.1", - "react-dom": "^17.0.1" - } - }, - "node_modules/react-leaflet-bing-v2": { - "version": "5.2.3", - "license": "MIT", - "dependencies": { - "react-leaflet-google-v2": "^5.1.3" - }, - "peerDependencies": { - "leaflet": "^1.7.1", - "react": "^15.0.0 || ^16.0.0 || ^17.0.0", - "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0", - "react-leaflet": "^3.0.5" - } - }, - "node_modules/react-leaflet-google-v2": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "@react-leaflet/core": "^1.1.0", - "google-maps": "^3.3.0", - "react-leaflet": "^3.0.5" - }, - "peerDependencies": { - "leaflet": "^1.7.1", - "react": "^15.0.0 || ^16.0.0 || ^17.0.0", - "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0", - "react-leaflet": "^3.0.5" - } - }, - "node_modules/react-lineto": { - "version": "3.2.1", - "license": "MIT", - "dependencies": { - "prop-types": "15.7.2", - "react": "17.0.2" - } - }, - "node_modules/react-refresh": { - "version": "0.8.3", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-router": { - "version": "5.2.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-router-dom": { - "version": "5.3.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.2.1", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-router-dom/node_modules/@babel/runtime": { - "version": "7.15.4", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/react-router/node_modules/@babel/runtime": { - "version": "7.15.4", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/react-router/node_modules/isarray": { - "version": "0.0.1", - "license": "MIT" - }, - "node_modules/react-router/node_modules/path-to-regexp": { - "version": "1.8.0", - "license": "MIT", - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/react-router/node_modules/react-is": { - "version": "16.13.1", - "license": "MIT" - }, - "node_modules/react-scripts": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "@babel/core": "7.12.3", - "@pmmmwh/react-refresh-webpack-plugin": "0.4.3", - "@svgr/webpack": "5.5.0", - "@typescript-eslint/eslint-plugin": "^4.5.0", - "@typescript-eslint/parser": "^4.5.0", - "babel-eslint": "^10.1.0", - "babel-jest": "^26.6.0", - "babel-loader": "8.1.0", - "babel-plugin-named-asset-import": "^0.3.7", - "babel-preset-react-app": "^10.0.0", - "bfj": "^7.0.2", - "camelcase": "^6.1.0", - "case-sensitive-paths-webpack-plugin": "2.3.0", - "css-loader": "4.3.0", - "dotenv": "8.2.0", - "dotenv-expand": "5.1.0", - "eslint": "^7.11.0", - "eslint-config-react-app": "^6.0.0", - "eslint-plugin-flowtype": "^5.2.0", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jest": "^24.1.0", - "eslint-plugin-jsx-a11y": "^6.3.1", - "eslint-plugin-react": "^7.21.5", - "eslint-plugin-react-hooks": "^4.2.0", - "eslint-plugin-testing-library": "^3.9.2", - "eslint-webpack-plugin": "^2.5.2", - "file-loader": "6.1.1", - "fs-extra": "^9.0.1", - "html-webpack-plugin": "4.5.0", - "identity-obj-proxy": "3.0.0", - "jest": "26.6.0", - "jest-circus": "26.6.0", - "jest-resolve": "26.6.0", - "jest-watch-typeahead": "0.6.1", - "mini-css-extract-plugin": "0.11.3", - "optimize-css-assets-webpack-plugin": "5.0.4", - "pnp-webpack-plugin": "1.6.4", - "postcss-flexbugs-fixes": "4.2.1", - "postcss-loader": "3.0.0", - "postcss-normalize": "8.0.1", - "postcss-preset-env": "6.7.0", - "postcss-safe-parser": "5.0.2", - "prompts": "2.4.0", - "react-app-polyfill": "^2.0.0", - "react-dev-utils": "^11.0.3", - "react-refresh": "^0.8.3", - "resolve": "1.18.1", - "resolve-url-loader": "^3.1.2", - "sass-loader": "^10.0.5", - "semver": "7.3.2", - "style-loader": "1.3.0", - "terser-webpack-plugin": "4.2.3", - "ts-pnp": "1.2.0", - "url-loader": "4.1.1", - "webpack": "4.44.2", - "webpack-dev-server": "3.11.1", - "webpack-manifest-plugin": "2.2.0", - "workbox-webpack-plugin": "5.1.4" - }, - "bin": { - "react-scripts": "bin/react-scripts.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.1.3" - }, - "peerDependencies": { - "react": ">= 16", - "typescript": "^3.2.1 || ^4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/react-scripts/node_modules/@babel/core": { - "version": "7.12.3", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.1", - "@babel/parser": "^7.12.3", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/react-scripts/node_modules/@babel/core/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/react-transition-group": { - "version": "4.4.2", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/read-pkg": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/pify": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "license": "MIT", - "dependencies": { - "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" - } - }, - "node_modules/readable-stream/node_modules/string_decoder": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "license": "MIT", - "optional": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.2", - "license": "MIT", - "dependencies": { - "minimatch": "3.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "8.2.0", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.7", - "license": "MIT" - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-parser": { - "version": "2.2.11", - "license": "MIT" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.3.1", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/regexpu-core": { - "version": "4.7.1", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.5.2", - "license": "MIT" - }, - "node_modules/regjsparser": { - "version": "0.6.9", - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "license": "ISC" - }, - "node_modules/renderkid": { - "version": "2.0.7", - "license": "MIT", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^3.0.1" - } - }, - "node_modules/renderkid/node_modules/ansi-regex": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/renderkid/node_modules/strip-ansi": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "license": "ISC" - }, - "node_modules/requires-port": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.18.1", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.0.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-pathname": { - "version": "3.0.0", - "license": "MIT" - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "license": "MIT" - }, - "node_modules/resolve-url-loader": { - "version": "3.1.4", - "license": "MIT", - "dependencies": { - "adjust-sourcemap-loader": "3.0.0", - "camelcase": "5.3.1", - "compose-function": "3.0.3", - "convert-source-map": "1.7.0", - "es6-iterator": "2.0.3", - "loader-utils": "1.2.3", - "postcss": "7.0.36", - "rework": "1.0.1", - "rework-visit": "1.0.0", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/resolve-url-loader/node_modules/camelcase": { - "version": "5.3.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/resolve-url-loader/node_modules/convert-source-map": { - "version": "1.7.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/resolve-url-loader/node_modules/emojis-list": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/resolve-url-loader/node_modules/json5": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/resolve-url-loader/node_modules/loader-utils": { - "version": "1.2.3", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "license": "MIT", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rework": { - "version": "1.0.1", - "dependencies": { - "convert-source-map": "^0.3.3", - "css": "^2.0.0" - } - }, - "node_modules/rework-visit": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/rework/node_modules/convert-source-map": { - "version": "0.3.5", - "license": "MIT" - }, - "node_modules/rgb-regex": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/rgba-regex": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/rimraf": { - "version": "2.7.1", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rollup": { - "version": "1.32.1", - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/node": "*", - "acorn": "^7.1.0" - }, - "bin": { - "rollup": "dist/bin/rollup" - } - }, - "node_modules/rollup-plugin-babel": { - "version": "4.4.0", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "rollup-pluginutils": "^2.8.1" - }, - "peerDependencies": { - "@babel/core": "7 || ^7.0.0-rc.2", - "rollup": ">=0.60.0 <3" - } - }, - "node_modules/rollup-plugin-terser": { - "version": "5.3.1", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.5.5", - "jest-worker": "^24.9.0", - "rollup-pluginutils": "^2.8.2", - "serialize-javascript": "^4.0.0", - "terser": "^4.6.2" - }, - "peerDependencies": { - "rollup": ">=0.66.0 <3" - } - }, - "node_modules/rollup-plugin-terser/node_modules/jest-worker": { - "version": "24.9.0", - "license": "MIT", - "dependencies": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { - "version": "4.0.0", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/supports-color": { - "version": "6.1.0", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/rollup-pluginutils": { - "version": "2.8.2", - "license": "MIT", - "dependencies": { - "estree-walker": "^0.6.1" - } - }, - "node_modules/rollup-pluginutils/node_modules/estree-walker": { - "version": "0.6.1", - "license": "MIT" - }, - "node_modules/rsvp": { - "version": "4.8.5", - "license": "MIT", - "engines": { - "node": "6.* || >= 7.*" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/run-queue": { - "version": "1.0.3", - "license": "ISC", - "dependencies": { - "aproba": "^1.1.1" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT" - }, - "node_modules/sane": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "bin": { - "sane": "src/cli.js" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/sane/node_modules/anymatch": { - "version": "2.0.0", - "license": "ISC", - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/sane/node_modules/braces": { - "version": "2.3.2", - "license": "MIT", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/cross-spawn": { - "version": "6.0.5", - "license": "MIT", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/sane/node_modules/execa": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sane/node_modules/fill-range": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/get-stream": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sane/node_modules/is-extendable": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-number": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-stream": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/micromatch": { - "version": "3.1.10", - "license": "MIT", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/normalize-path": { - "version": "2.1.1", - "license": "MIT", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/npm-run-path": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sane/node_modules/path-key": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/sane/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/sane/node_modules/shebang-command": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/shebang-regex": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/to-regex-range": { - "version": "2.1.1", - "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/which": { - "version": "1.3.1", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/sanitize.css": { - "version": "10.0.0", - "license": "CC0-1.0" - }, - "node_modules/sass-loader": { - "version": "10.2.0", - "license": "MIT", - "dependencies": { - "klona": "^2.0.4", - "loader-utils": "^2.0.0", - "neo-async": "^2.6.2", - "schema-utils": "^3.0.0", - "semver": "^7.3.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0", - "sass": "^1.3.0", - "webpack": "^4.36.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/sass-loader/node_modules/schema-utils": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/sax": { - "version": "1.2.4", - "license": "ISC" - }, - "node_modules/saxes": { - "version": "5.0.1", - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/scheduler": { - "version": "0.20.2", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/selfsigned": { - "version": "1.10.11", - "license": "MIT", - "dependencies": { - "node-forge": "^0.10.0" - } - }, - "node_modules/semver": { - "version": "7.3.2", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.17.1", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "license": "MIT" - }, - "node_modules/serialize-javascript": { - "version": "5.0.1", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "license": "ISC" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "license": "ISC" - }, - "node_modules/serve-static": { - "version": "1.14.1", - "license": "MIT", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "license": "ISC" - }, - "node_modules/set-value": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "license": "MIT" - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "license": "ISC" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.7.2", - "license": "MIT" - }, - "node_modules/shellwords": { - "version": "0.1.1", - "license": "MIT", - "optional": true - }, - "node_modules/side-channel": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "license": "ISC" - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "license": "MIT" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "license": "MIT" - }, - "node_modules/slash": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "license": "MIT", - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "license": "MIT", - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/sockjs": { - "version": "0.3.21", - "license": "MIT", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/sockjs-client": { - "version": "1.5.1", - "license": "MIT", - "dependencies": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", - "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.5.1" - } - }, - "node_modules/sockjs-client/node_modules/debug": { - "version": "3.2.7", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/sockjs/node_modules/uuid": { - "version": "3.4.0", - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/sort-keys": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "license": "MIT" - }, - "node_modules/source-map": { - "version": "0.5.7", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "0.6.2", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "license": "MIT", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.19", - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "license": "MIT" - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "license": "MIT" - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.9", - "license": "CC0-1.0" - }, - "node_modules/spdy": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/spdy-transport/node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "license": "BSD-3-Clause" - }, - "node_modules/ssri": { - "version": "8.0.1", - "license": "ISC", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/stable": { - "version": "0.1.8", - "license": "MIT" - }, - "node_modules/stack-utils": { - "version": "2.0.3", - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/stackframe": { - "version": "1.2.0", - "license": "MIT" - }, - "node_modules/static-extend": { - "version": "0.1.2", - "license": "MIT", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-each": { - "version": "1.2.3", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/stream-http": { - "version": "2.8.3", - "license": "MIT", - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/string-length": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-natural-compare": { - "version": "3.0.1", - "license": "MIT" - }, - "node_modules/string-width": { - "version": "4.2.2", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "license": "MIT" - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "license": "BSD-2-Clause", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-comments": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "babel-extract-comments": "^1.0.0", - "babel-plugin-transform-object-rest-spread": "^6.26.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-loader": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^2.7.0" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/stylehacks": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/stylehacks/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "license": "MIT", - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stylis": { - "version": "4.0.10", - "license": "MIT" - }, - "node_modules/supports-color": { - "version": "5.5.0", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/svg-parser": { - "version": "2.0.4", - "license": "MIT" - }, - "node_modules/svgo": { - "version": "1.3.2", - "license": "MIT", - "dependencies": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/svgo/node_modules/css-select": { - "version": "2.1.0", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "node_modules/svgo/node_modules/css-what": { - "version": "3.4.2", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "0.2.2", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/svgo/node_modules/domutils": { - "version": "1.7.0", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { - "version": "1.3.1", - "license": "BSD-2-Clause" - }, - "node_modules/svgo/node_modules/nth-check": { - "version": "1.0.2", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "license": "MIT" - }, - "node_modules/table": { - "version": "6.7.1", - "license": "BSD-3-Clause", - "dependencies": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.6.0", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/tapable": { - "version": "1.1.3", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.1.0", - "license": "ISC", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/temp-dir": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/tempy": { - "version": "0.3.0", - "license": "MIT", - "dependencies": { - "temp-dir": "^1.0.0", - "type-fest": "^0.3.1", - "unique-string": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tempy/node_modules/type-fest": { - "version": "0.3.1", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=6" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "4.8.0", - "license": "BSD-2-Clause", - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "4.2.3", - "license": "MIT", - "dependencies": { - "cacache": "^15.0.5", - "find-cache-dir": "^3.3.1", - "jest-worker": "^26.5.0", - "p-limit": "^3.0.2", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "source-map": "^0.6.1", - "terser": "^5.3.4", - "webpack-sources": "^1.4.3" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/commander": { - "version": "2.20.3", - "license": "MIT" - }, - "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { - "version": "3.3.1", - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/make-dir": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser-webpack-plugin/node_modules/p-limit": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser-webpack-plugin/node_modules/pkg-dir": { - "version": "4.2.0", - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser-webpack-plugin/node_modules/semver": { - "version": "6.3.0", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/terser-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/terser": { - "version": "5.7.1", - "license": "BSD-2-Clause", - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin/node_modules/terser/node_modules/source-map": { - "version": "0.7.3", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "license": "MIT" - }, - "node_modules/terser/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "license": "MIT" - }, - "node_modules/throat": { - "version": "5.0.0", - "license": "MIT" - }, - "node_modules/through2": { - "version": "2.0.5", - "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/thunky": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "license": "MIT", - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/timsort": { - "version": "0.3.0", - "license": "MIT" - }, - "node_modules/tiny-invariant": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/tiny-warning": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/tmpl": { - "version": "1.0.4", - "license": "BSD-3-Clause" - }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "license": "MIT", - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "4.0.0", - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.1.2", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tryer": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/ts-pnp": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/tsconfig-paths": { - "version": "3.9.0", - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "2.3.0", - "license": "0BSD" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD" - }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "license": "MIT" - }, - "node_modules/type": { - "version": "1.2.0", - "license": "ISC" - }, - "node_modules/type-check": { - "version": "0.4.0", - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.13.1", - "license": "(MIT OR CC0-1.0)", - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "license": "MIT" - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.7.4", - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uniq": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/uniqs": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "license": "ISC", - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/unique-string": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "crypto-random-string": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/unset-value": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "license": "MIT", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/upath": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "license": "MIT" - }, - "node_modules/url": { - "version": "0.11.0", - "license": "MIT", - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url-loader": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.27", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "file-loader": "*", - "webpack": "^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "file-loader": { - "optional": true - } - } - }, - "node_modules/url-loader/node_modules/schema-utils": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/url-parse": { - "version": "1.5.1", - "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "license": "MIT" - }, - "node_modules/url/node_modules/querystring": { - "version": "0.2.0", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/use": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util": { - "version": "0.11.1", - "license": "MIT", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/util.promisify": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "license": "ISC" - }, - "node_modules/utila": { - "version": "0.4.0", - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "license": "MIT", - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "license": "MIT" - }, - "node_modules/v8-to-istanbul": { - "version": "7.1.2", - "license": "ISC", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/value-equal": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/vary": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vendors": { - "version": "1.0.4", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "license": "MIT" - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.7", - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.x" - } - }, - "node_modules/watchpack": { - "version": "1.7.5", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "optionalDependencies": { - "chokidar": "^3.4.1", - "watchpack-chokidar2": "^2.0.1" - } - }, - "node_modules/watchpack-chokidar2": { - "version": "2.0.1", - "license": "MIT", - "optional": true, - "dependencies": { - "chokidar": "^2.1.8" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch": { - "version": "2.0.0", - "license": "ISC", - "optional": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "license": "MIT", - "optional": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { - "version": "1.13.1", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces": { - "version": "2.3.2", - "license": "MIT", - "optional": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/chokidar": { - "version": "2.1.8", - "license": "MIT", - "optional": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range": { - "version": "4.0.0", - "license": "MIT", - "optional": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent": { - "version": "3.1.0", - "license": "ISC", - "optional": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "license": "MIT", - "optional": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { - "version": "1.0.1", - "license": "MIT", - "optional": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-extendable": { - "version": "0.1.1", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number": { - "version": "3.0.0", - "license": "MIT", - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/micromatch": { - "version": "3.1.10", - "license": "MIT", - "optional": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/readdirp": { - "version": "2.2.1", - "license": "MIT", - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { - "version": "2.1.1", - "license": "MIT", - "optional": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "license": "MIT", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=10.4" - } - }, - "node_modules/webpack": { - "version": "4.44.2", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.3.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - }, - "webpack-command": { - "optional": true - } - } - }, - "node_modules/webpack-dev-middleware": { - "version": "3.7.3", - "license": "MIT", - "dependencies": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/mime": { - "version": "2.5.2", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/webpack-dev-server": { - "version": "3.11.1", - "license": "MIT", - "dependencies": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.8", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "sockjs-client": "^1.5.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 6.11.5" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ansi-regex": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/anymatch": { - "version": "2.0.0", - "license": "ISC", - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "license": "MIT", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/binary-extensions": { - "version": "1.13.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/braces": { - "version": "2.3.2", - "license": "MIT", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/camelcase": { - "version": "5.3.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/chokidar": { - "version": "2.1.8", - "license": "MIT", - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/webpack-dev-server/node_modules/cliui": { - "version": "5.0.0", - "license": "ISC", - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/webpack-dev-server/node_modules/cliui/node_modules/ansi-regex": { - "version": "4.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/cliui/node_modules/strip-ansi": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/emoji-regex": { - "version": "7.0.3", - "license": "MIT" - }, - "node_modules/webpack-dev-server/node_modules/fill-range": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/find-up": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/glob-parent": { - "version": "3.1.0", - "license": "ISC", - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/import-local": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/is-absolute-url": { - "version": "3.0.3", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-dev-server/node_modules/is-binary-path": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-extendable": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-dev-server/node_modules/is-number": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/locate-path": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/micromatch": { - "version": "3.1.10", - "license": "MIT", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/p-locate": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/path-exists": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-dev-server/node_modules/pkg-dir": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/readdirp": { - "version": "2.2.1", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/webpack-dev-server/node_modules/resolve-cwd": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-dev-server/node_modules/resolve-from": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/webpack-dev-server/node_modules/semver": { - "version": "6.3.0", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/webpack-dev-server/node_modules/string-width": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/string-width/node_modules/ansi-regex": { - "version": "4.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/string-width/node_modules/strip-ansi": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/strip-ansi": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/supports-color": { - "version": "6.1.0", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/to-regex-range": { - "version": "2.1.1", - "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/wrap-ansi": { - "version": "5.1.0", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "6.2.2", - "license": "MIT", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/webpack-dev-server/node_modules/yargs": { - "version": "13.3.2", - "license": "MIT", - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/webpack-dev-server/node_modules/yargs-parser": { - "version": "13.1.2", - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/webpack-log": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/webpack-log/node_modules/ansi-colors": { - "version": "3.2.4", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-log/node_modules/uuid": { - "version": "3.4.0", - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/webpack-manifest-plugin": { - "version": "2.2.0", - "license": "MIT", - "dependencies": { - "fs-extra": "^7.0.0", - "lodash": ">=3.5 <5", - "object.entries": "^1.1.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.11.5" - }, - "peerDependencies": { - "webpack": "2 || 3 || 4" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/fs-extra": { - "version": "7.0.1", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/jsonfile": { - "version": "4.0.0", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/universalify": { - "version": "0.1.2", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "1.4.3", - "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack-sources/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/acorn": { - "version": "6.4.2", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/webpack/node_modules/braces": { - "version": "2.3.2", - "license": "MIT", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/cacache": { - "version": "12.0.4", - "license": "ISC", - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/webpack/node_modules/chownr": { - "version": "1.1.4", - "license": "ISC" - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "4.0.3", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/webpack/node_modules/fill-range": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-extendable": { - "version": "0.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-number": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-wsl": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/json5": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/webpack/node_modules/loader-utils": { - "version": "1.4.0", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/webpack/node_modules/lru-cache": { - "version": "5.1.1", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/webpack/node_modules/micromatch": { - "version": "3.1.10", - "license": "MIT", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/rimraf": { - "version": "2.7.1", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/webpack/node_modules/serialize-javascript": { - "version": "4.0.0", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/webpack/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/ssri": { - "version": "6.0.2", - "license": "ISC", - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/webpack/node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "license": "MIT", - "dependencies": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/webpack/node_modules/to-regex-range": { - "version": "2.1.1", - "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/yallist": { - "version": "3.1.1", - "license": "ISC" - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "license": "Apache-2.0", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.6.2", - "license": "MIT" - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "license": "MIT" - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "license": "MIT", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/which": { - "version": "2.0.2", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "license": "ISC" - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workbox-background-sync": { - "version": "5.1.4", - "license": "MIT", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/workbox-broadcast-update": { - "version": "5.1.4", - "license": "MIT", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/workbox-build": { - "version": "5.1.4", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.8.4", - "@babel/preset-env": "^7.8.4", - "@babel/runtime": "^7.8.4", - "@hapi/joi": "^15.1.0", - "@rollup/plugin-node-resolve": "^7.1.1", - "@rollup/plugin-replace": "^2.3.1", - "@surma/rollup-plugin-off-main-thread": "^1.1.1", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^8.1.0", - "glob": "^7.1.6", - "lodash.template": "^4.5.0", - "pretty-bytes": "^5.3.0", - "rollup": "^1.31.1", - "rollup-plugin-babel": "^4.3.3", - "rollup-plugin-terser": "^5.3.1", - "source-map": "^0.7.3", - "source-map-url": "^0.4.0", - "stringify-object": "^3.3.0", - "strip-comments": "^1.0.2", - "tempy": "^0.3.0", - "upath": "^1.2.0", - "workbox-background-sync": "^5.1.4", - "workbox-broadcast-update": "^5.1.4", - "workbox-cacheable-response": "^5.1.4", - "workbox-core": "^5.1.4", - "workbox-expiration": "^5.1.4", - "workbox-google-analytics": "^5.1.4", - "workbox-navigation-preload": "^5.1.4", - "workbox-precaching": "^5.1.4", - "workbox-range-requests": "^5.1.4", - "workbox-routing": "^5.1.4", - "workbox-strategies": "^5.1.4", - "workbox-streams": "^5.1.4", - "workbox-sw": "^5.1.4", - "workbox-window": "^5.1.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/workbox-build/node_modules/fs-extra": { - "version": "8.1.0", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/workbox-build/node_modules/jsonfile": { - "version": "4.0.0", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/workbox-build/node_modules/source-map": { - "version": "0.7.3", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/workbox-build/node_modules/universalify": { - "version": "0.1.2", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/workbox-cacheable-response": { - "version": "5.1.4", - "license": "MIT", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/workbox-core": { - "version": "5.1.4", - "license": "MIT" - }, - "node_modules/workbox-expiration": { - "version": "5.1.4", - "license": "MIT", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/workbox-google-analytics": { - "version": "5.1.4", - "license": "MIT", - "dependencies": { - "workbox-background-sync": "^5.1.4", - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4", - "workbox-strategies": "^5.1.4" - } - }, - "node_modules/workbox-navigation-preload": { - "version": "5.1.4", - "license": "MIT", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/workbox-precaching": { - "version": "5.1.4", - "license": "MIT", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/workbox-range-requests": { - "version": "5.1.4", - "license": "MIT", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/workbox-routing": { - "version": "5.1.4", - "license": "MIT", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/workbox-strategies": { - "version": "5.1.4", - "license": "MIT", - "dependencies": { - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4" - } - }, - "node_modules/workbox-streams": { - "version": "5.1.4", - "license": "MIT", - "dependencies": { - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4" - } - }, - "node_modules/workbox-sw": { - "version": "5.1.4", - "license": "MIT" - }, - "node_modules/workbox-webpack-plugin": { - "version": "5.1.4", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.5.5", - "fast-json-stable-stringify": "^2.0.0", - "source-map-url": "^0.4.0", - "upath": "^1.1.2", - "webpack-sources": "^1.3.0", - "workbox-build": "^5.1.4" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/workbox-window": { - "version": "5.1.4", - "license": "MIT", - "dependencies": { - "workbox-core": "^5.1.4" - } - }, - "node_modules/worker-farm": { - "version": "1.7.0", - "license": "MIT", - "dependencies": { - "errno": "~0.1.7" - } - }, - "node_modules/worker-rpc": { - "version": "0.1.1", - "license": "MIT", - "dependencies": { - "microevent.ts": "~0.1.1" - } - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/wrappy": { - "version": "1.0.2", - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.1", - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "license": "Apache-2.0" - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "license": "MIT" - }, - "node_modules/xtend": { - "version": "4.0.2", - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "4.0.3", - "license": "ISC" - }, - "node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/yaml": { - "version": "1.10.2", - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "15.4.1", - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs-parser": { - "version": "18.1.3", - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/compat-data": { - "version": "7.14.7" - }, - "@babel/core": { - "version": "7.14.6", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helpers": "^7.14.6", - "@babel/parser": "^7.14.6", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0" - } - } - }, - "@babel/generator": { - "version": "7.14.5", - "requires": { - "@babel/types": "^7.14.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.14.5", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.14.5", - "requires": { - "@babel/helper-explode-assignable-expression": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.14.5", - "requires": { - "@babel/compat-data": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0" - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.14.6", - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.14.5", - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "regexpu-core": "^4.7.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.2.3", - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0" - } - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.14.5", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.14.5", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.14.7", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.14.5", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-module-transforms": { - "version": "7.14.5", - "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5" - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.14.5", - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-wrap-function": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-replace-supers": { - "version": "7.14.5", - "requires": { - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-simple-access": { - "version": "7.14.5", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.14.5", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.5" - }, - "@babel/helper-validator-option": { - "version": "7.14.5" - }, - "@babel/helper-wrap-function": { - "version": "7.14.5", - "requires": { - "@babel/helper-function-name": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helpers": { - "version": "7.14.6", - "requires": { - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/highlight": { - "version": "7.14.5", - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.14.7" - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.14.7", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.14.5", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.14.5", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.14.5", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-decorators": { - "version": "7.12.1", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-decorators": "^7.12.1" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.14.7", - "requires": { - "@babel/compat-data": "^7.14.7", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.14.5" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.14.5", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.14.5", - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.14.5", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.14.5", - "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.14.5" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.14.5", - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.14.7", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.14.5", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.14.5", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.12.1", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-flow": "^7.12.1" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.14.5", - "requires": { - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.14.5", - "requires": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.14.5", - "requires": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.14.5", - "requires": { - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.14.5", - "requires": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.14.7", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-react-constant-elements": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.14.5", - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-jsx": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.14.5", - "requires": { - "@babel/plugin-transform-react-jsx": "^7.14.5" - } - }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.14.5", - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.14.5", - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.12.1", - "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "resolve": "^1.8.1", - "semver": "^5.5.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1" - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.14.6", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.14.6", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.6", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-typescript": "^7.14.5" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.14.5", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/preset-env": { - "version": "7.14.7", - "requires": { - "@babel/compat-data": "^7.14.7", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5", - "@babel/plugin-proposal-async-generator-functions": "^7.14.7", - "@babel/plugin-proposal-class-properties": "^7.14.5", - "@babel/plugin-proposal-class-static-block": "^7.14.5", - "@babel/plugin-proposal-dynamic-import": "^7.14.5", - "@babel/plugin-proposal-export-namespace-from": "^7.14.5", - "@babel/plugin-proposal-json-strings": "^7.14.5", - "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", - "@babel/plugin-proposal-numeric-separator": "^7.14.5", - "@babel/plugin-proposal-object-rest-spread": "^7.14.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", - "@babel/plugin-proposal-optional-chaining": "^7.14.5", - "@babel/plugin-proposal-private-methods": "^7.14.5", - "@babel/plugin-proposal-private-property-in-object": "^7.14.5", - "@babel/plugin-proposal-unicode-property-regex": "^7.14.5", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.14.5", - "@babel/plugin-transform-async-to-generator": "^7.14.5", - "@babel/plugin-transform-block-scoped-functions": "^7.14.5", - "@babel/plugin-transform-block-scoping": "^7.14.5", - "@babel/plugin-transform-classes": "^7.14.5", - "@babel/plugin-transform-computed-properties": "^7.14.5", - "@babel/plugin-transform-destructuring": "^7.14.7", - "@babel/plugin-transform-dotall-regex": "^7.14.5", - "@babel/plugin-transform-duplicate-keys": "^7.14.5", - "@babel/plugin-transform-exponentiation-operator": "^7.14.5", - "@babel/plugin-transform-for-of": "^7.14.5", - "@babel/plugin-transform-function-name": "^7.14.5", - "@babel/plugin-transform-literals": "^7.14.5", - "@babel/plugin-transform-member-expression-literals": "^7.14.5", - "@babel/plugin-transform-modules-amd": "^7.14.5", - "@babel/plugin-transform-modules-commonjs": "^7.14.5", - "@babel/plugin-transform-modules-systemjs": "^7.14.5", - "@babel/plugin-transform-modules-umd": "^7.14.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.7", - "@babel/plugin-transform-new-target": "^7.14.5", - "@babel/plugin-transform-object-super": "^7.14.5", - "@babel/plugin-transform-parameters": "^7.14.5", - "@babel/plugin-transform-property-literals": "^7.14.5", - "@babel/plugin-transform-regenerator": "^7.14.5", - "@babel/plugin-transform-reserved-words": "^7.14.5", - "@babel/plugin-transform-shorthand-properties": "^7.14.5", - "@babel/plugin-transform-spread": "^7.14.6", - "@babel/plugin-transform-sticky-regex": "^7.14.5", - "@babel/plugin-transform-template-literals": "^7.14.5", - "@babel/plugin-transform-typeof-symbol": "^7.14.5", - "@babel/plugin-transform-unicode-escapes": "^7.14.5", - "@babel/plugin-transform-unicode-regex": "^7.14.5", - "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.14.5", - "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", - "babel-plugin-polyfill-regenerator": "^0.2.2", - "core-js-compat": "^3.15.0", - "semver": "^6.3.0" - }, - "dependencies": { - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", - "@babel/plugin-proposal-optional-chaining": "^7.14.5" - } - }, - "semver": { - "version": "6.3.0" - } - } - }, - "@babel/preset-modules": { - "version": "0.1.4", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-react": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-react-display-name": "^7.14.5", - "@babel/plugin-transform-react-jsx": "^7.14.5", - "@babel/plugin-transform-react-jsx-development": "^7.14.5", - "@babel/plugin-transform-react-pure-annotations": "^7.14.5" - } - }, - "@babel/preset-typescript": { - "version": "7.12.1", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-transform-typescript": "^7.12.1" - } - }, - "@babel/runtime": { - "version": "7.12.1", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/runtime-corejs3": { - "version": "7.14.7", - "requires": { - "core-js-pure": "^3.15.0", - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.14.5", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/traverse": { - "version": "7.14.7", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.7", - "@babel/types": "^7.14.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.5", - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3" - }, - "@cnakazawa/watch": { - "version": "1.0.4", - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - } - }, - "@csstools/convert-colors": { - "version": "1.4.0" - }, - "@csstools/normalize.css": { - "version": "10.1.0" - }, - "@elfalem/leaflet-curve": { - "version": "0.8.2", - "requires": { - "@tweenjs/tween.js": "^17.2.0" - } - }, - "@emotion/babel-plugin": { - "version": "11.3.0", - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/plugin-syntax-jsx": "^7.12.13", - "@babel/runtime": "^7.13.10", - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.5", - "@emotion/serialize": "^1.0.2", - "babel-plugin-macros": "^2.6.1", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "^4.0.3" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.15.4", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@emotion/memoize": { - "version": "0.7.5" - }, - "@emotion/serialize": { - "version": "1.0.2", - "requires": { - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.4", - "@emotion/unitless": "^0.7.5", - "@emotion/utils": "^1.0.0", - "csstype": "^3.0.2" - } - }, - "@emotion/utils": { - "version": "1.0.0" - }, - "csstype": { - "version": "3.0.9" - }, - "escape-string-regexp": { - "version": "4.0.0" - } - } - }, - "@emotion/cache": { - "version": "10.0.29", - "requires": { - "@emotion/sheet": "0.9.4", - "@emotion/stylis": "0.8.5", - "@emotion/utils": "0.11.3", - "@emotion/weak-memoize": "0.2.5" - } - }, - "@emotion/core": { - "version": "10.1.1", - "requires": { - "@babel/runtime": "^7.5.5", - "@emotion/cache": "^10.0.27", - "@emotion/css": "^10.0.27", - "@emotion/serialize": "^0.11.15", - "@emotion/sheet": "0.9.4", - "@emotion/utils": "0.11.3" - } - }, - "@emotion/css": { - "version": "10.0.27", - "requires": { - "@emotion/serialize": "^0.11.15", - "@emotion/utils": "0.11.3", - "babel-plugin-emotion": "^10.0.27" - } - }, - "@emotion/hash": { - "version": "0.8.0" - }, - "@emotion/is-prop-valid": { - "version": "1.1.0", - "requires": { - "@emotion/memoize": "^0.7.4" - } - }, - "@emotion/memoize": { - "version": "0.7.4" - }, - "@emotion/react": { - "version": "11.4.1", - "requires": { - "@babel/runtime": "^7.13.10", - "@emotion/cache": "^11.4.0", - "@emotion/serialize": "^1.0.2", - "@emotion/sheet": "^1.0.2", - "@emotion/utils": "^1.0.0", - "@emotion/weak-memoize": "^0.2.5", - "hoist-non-react-statics": "^3.3.1" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.15.4", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@emotion/cache": { - "version": "11.4.0", - "requires": { - "@emotion/memoize": "^0.7.4", - "@emotion/sheet": "^1.0.0", - "@emotion/utils": "^1.0.0", - "@emotion/weak-memoize": "^0.2.5", - "stylis": "^4.0.3" - } - }, - "@emotion/serialize": { - "version": "1.0.2", - "requires": { - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.4", - "@emotion/unitless": "^0.7.5", - "@emotion/utils": "^1.0.0", - "csstype": "^3.0.2" - } - }, - "@emotion/sheet": { - "version": "1.0.2" - }, - "@emotion/utils": { - "version": "1.0.0" - }, - "csstype": { - "version": "3.0.9" - } - } - }, - "@emotion/serialize": { - "version": "0.11.16", - "requires": { - "@emotion/hash": "0.8.0", - "@emotion/memoize": "0.7.4", - "@emotion/unitless": "0.7.5", - "@emotion/utils": "0.11.3", - "csstype": "^2.5.7" - } - }, - "@emotion/sheet": { - "version": "0.9.4" - }, - "@emotion/styled": { - "version": "11.3.0", - "requires": { - "@babel/runtime": "^7.13.10", - "@emotion/babel-plugin": "^11.3.0", - "@emotion/is-prop-valid": "^1.1.0", - "@emotion/serialize": "^1.0.2", - "@emotion/utils": "^1.0.0" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.15.4", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@emotion/serialize": { - "version": "1.0.2", - "requires": { - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.4", - "@emotion/unitless": "^0.7.5", - "@emotion/utils": "^1.0.0", - "csstype": "^3.0.2" - } - }, - "@emotion/utils": { - "version": "1.0.0" - }, - "csstype": { - "version": "3.0.9" - } - } - }, - "@emotion/styled-base": { - "version": "10.0.31", - "requires": { - "@babel/runtime": "^7.5.5", - "@emotion/is-prop-valid": "0.8.8", - "@emotion/serialize": "^0.11.15", - "@emotion/utils": "0.11.3" - }, - "dependencies": { - "@emotion/is-prop-valid": { - "version": "0.8.8", - "requires": { - "@emotion/memoize": "0.7.4" - } - } - } - }, - "@emotion/stylis": { - "version": "0.8.5" - }, - "@emotion/unitless": { - "version": "0.7.5" - }, - "@emotion/utils": { - "version": "0.11.3" - }, - "@emotion/weak-memoize": { - "version": "0.2.5" - }, - "@eslint/eslintrc": { - "version": "0.4.2", - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "globals": { - "version": "13.9.0", - "requires": { - "type-fest": "^0.20.2" - } - }, - "type-fest": { - "version": "0.20.2" - } - } - }, - "@hapi/address": { - "version": "2.1.4" - }, - "@hapi/bourne": { - "version": "1.3.2" - }, - "@hapi/hoek": { - "version": "8.5.1" - }, - "@hapi/joi": { - "version": "15.1.1", - "requires": { - "@hapi/address": "2.x.x", - "@hapi/bourne": "1.x.x", - "@hapi/hoek": "8.x.x", - "@hapi/topo": "3.x.x" - } - }, - "@hapi/topo": { - "version": "3.1.6", - "requires": { - "@hapi/hoek": "^8.3.0" - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1" - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3" - }, - "@jest/console": { - "version": "26.6.2", - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/core": { - "version": "26.6.3", - "requires": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "jest-resolve": { - "version": "26.6.2", - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "read-pkg": { - "version": "5.2.0", - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0" - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "rimraf": { - "version": "3.0.2", - "requires": { - "glob": "^7.1.3" - } - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.8.1" - } - } - }, - "@jest/environment": { - "version": "26.6.2", - "requires": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" - } - }, - "@jest/fake-timers": { - "version": "26.6.2", - "requires": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "@jest/globals": { - "version": "26.6.2", - "requires": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" - } - }, - "@jest/reporters": { - "version": "26.6.2", - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "node-notifier": "^8.0.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "jest-resolve": { - "version": "26.6.2", - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "read-pkg": { - "version": "5.2.0", - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0" - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "source-map": { - "version": "0.6.1" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.8.1" - } - } - }, - "@jest/source-map": { - "version": "26.6.2", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1" - } - } - }, - "@jest/test-result": { - "version": "26.6.2", - "requires": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "26.6.3", - "requires": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - } - }, - "@jest/transform": { - "version": "26.6.2", - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "source-map": { - "version": "0.6.1" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/types": { - "version": "26.6.2", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@mui/core": { - "version": "5.0.0-alpha.48", - "requires": { - "@babel/runtime": "^7.15.4", - "@emotion/is-prop-valid": "^1.1.0", - "@mui/utils": "^5.0.1", - "clsx": "^1.1.1", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.15.4", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } - } - }, - "@mui/icons-material": { - "version": "5.0.1", - "requires": { - "@babel/runtime": "^7.15.4" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.15.4", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } - } - }, - "@mui/material": { - "version": "5.0.1", - "requires": { - "@babel/runtime": "^7.15.4", - "@mui/core": "5.0.0-alpha.48", - "@mui/system": "^5.0.1", - "@mui/types": "^7.0.0", - "@mui/utils": "^5.0.1", - "@popperjs/core": "^2.4.4", - "@types/react-transition-group": "^4.4.3", - "clsx": "^1.1.1", - "csstype": "^3.0.9", - "hoist-non-react-statics": "^3.3.2", - "prop-types": "^15.7.2", - "react-is": "^17.0.2", - "react-transition-group": "^4.4.2" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.15.4", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "csstype": { - "version": "3.0.9" - } - } - }, - "@mui/private-theming": { - "version": "5.0.1", - "requires": { - "@babel/runtime": "^7.15.4", - "@mui/utils": "^5.0.1", - "prop-types": "^15.7.2" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.15.4", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } - } - }, - "@mui/styled-engine": { - "version": "5.0.1", - "requires": { - "@babel/runtime": "^7.15.4", - "@emotion/cache": "^11.4.0", - "prop-types": "^15.7.2" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.15.4", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@emotion/cache": { - "version": "11.4.0", - "requires": { - "@emotion/memoize": "^0.7.4", - "@emotion/sheet": "^1.0.0", - "@emotion/utils": "^1.0.0", - "@emotion/weak-memoize": "^0.2.5", - "stylis": "^4.0.3" - } - }, - "@emotion/sheet": { - "version": "1.0.2" - }, - "@emotion/utils": { - "version": "1.0.0" - } - } - }, - "@mui/styles": { - "version": "5.0.1", - "requires": { - "@babel/runtime": "^7.15.4", - "@emotion/hash": "^0.8.0", - "@mui/private-theming": "^5.0.1", - "@mui/types": "^7.0.0", - "@mui/utils": "^5.0.1", - "clsx": "^1.1.1", - "csstype": "^3.0.9", - "hoist-non-react-statics": "^3.3.2", - "jss": "^10.8.0", - "jss-plugin-camel-case": "^10.8.0", - "jss-plugin-default-unit": "^10.8.0", - "jss-plugin-global": "^10.8.0", - "jss-plugin-nested": "^10.8.0", - "jss-plugin-props-sort": "^10.8.0", - "jss-plugin-rule-value-function": "^10.8.0", - "jss-plugin-vendor-prefixer": "^10.8.0", - "prop-types": "^15.7.2" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.15.4", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "csstype": { - "version": "3.0.9" - } - } - }, - "@mui/system": { - "version": "5.0.1", - "requires": { - "@babel/runtime": "^7.15.4", - "@mui/private-theming": "^5.0.1", - "@mui/styled-engine": "^5.0.1", - "@mui/types": "^7.0.0", - "@mui/utils": "^5.0.1", - "clsx": "^1.1.1", - "csstype": "^3.0.9", - "prop-types": "^15.7.2" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.15.4", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "csstype": { - "version": "3.0.9" - } - } - }, - "@mui/types": { - "version": "7.0.0", - "requires": {} - }, - "@mui/utils": { - "version": "5.0.1", - "requires": { - "@babel/runtime": "^7.15.4", - "@types/prop-types": "^15.7.4", - "@types/react-is": "^16.7.1 || ^17.0.0", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.15.4", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5" - }, - "@nodelib/fs.walk": { - "version": "1.2.7", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@npmcli/move-file": { - "version": "1.1.2", - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4" - }, - "rimraf": { - "version": "3.0.2", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.4.3", - "requires": { - "ansi-html": "^0.0.7", - "error-stack-parser": "^2.0.6", - "html-entities": "^1.2.1", - "native-url": "^0.2.6", - "schema-utils": "^2.6.5", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3" - } - } - }, - "@popperjs/core": { - "version": "2.10.1" - }, - "@react-leaflet/core": { - "version": "1.1.0", - "requires": {} - }, - "@rollup/plugin-node-resolve": { - "version": "7.1.3", - "requires": { - "@rollup/pluginutils": "^3.0.8", - "@types/resolve": "0.0.8", - "builtin-modules": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.14.2" - } - }, - "@rollup/plugin-replace": { - "version": "2.4.2", - "requires": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - } - }, - "@rollup/pluginutils": { - "version": "3.1.0", - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "dependencies": { - "@types/estree": { - "version": "0.0.39" - } - } - }, - "@sinonjs/commons": { - "version": "1.8.3", - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "6.0.1", - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@surma/rollup-plugin-off-main-thread": { - "version": "1.4.2", - "requires": { - "ejs": "^2.6.1", - "magic-string": "^0.25.0" - } - }, - "@svgr/babel-plugin-add-jsx-attribute": { - "version": "5.4.0" - }, - "@svgr/babel-plugin-remove-jsx-attribute": { - "version": "5.4.0" - }, - "@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "5.0.1" - }, - "@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "5.0.1" - }, - "@svgr/babel-plugin-svg-dynamic-title": { - "version": "5.4.0" - }, - "@svgr/babel-plugin-svg-em-dimensions": { - "version": "5.4.0" - }, - "@svgr/babel-plugin-transform-react-native-svg": { - "version": "5.4.0" - }, - "@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0" - }, - "@svgr/babel-preset": { - "version": "5.5.0", - "requires": { - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" - } - }, - "@svgr/core": { - "version": "5.5.0", - "requires": { - "@svgr/plugin-jsx": "^5.5.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" - } - }, - "@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", - "requires": { - "@babel/types": "^7.12.6" - } - }, - "@svgr/plugin-jsx": { - "version": "5.5.0", - "requires": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", - "svg-parser": "^2.0.2" - } - }, - "@svgr/plugin-svgo": { - "version": "5.5.0", - "requires": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", - "svgo": "^1.2.2" - } - }, - "@svgr/webpack": { - "version": "5.5.0", - "requires": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", - "loader-utils": "^2.0.0" - } - }, - "@testing-library/dom": { - "version": "8.14.0", - "peer": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^4.2.0", - "aria-query": "^5.0.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.4.4", - "pretty-format": "^27.0.2" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.18.3", - "peer": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "ansi-styles": { - "version": "4.3.0", - "peer": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "aria-query": { - "version": "5.0.0", - "peer": true - }, - "chalk": { - "version": "4.1.2", - "peer": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "peer": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "peer": true - }, - "has-flag": { - "version": "4.0.0", - "peer": true - }, - "pretty-format": { - "version": "27.5.1", - "peer": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "peer": true - } - } - }, - "supports-color": { - "version": "7.2.0", - "peer": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@testing-library/jest-dom": { - "version": "5.14.1", - "requires": { - "@babel/runtime": "^7.9.2", - "@types/testing-library__jest-dom": "^5.9.1", - "aria-query": "^4.2.2", - "chalk": "^3.0.0", - "css": "^3.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.5.6", - "lodash": "^4.17.15", - "redent": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "css": { - "version": "3.0.0", - "requires": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - } - }, - "has-flag": { - "version": "4.0.0" - }, - "source-map": { - "version": "0.6.1" - }, - "source-map-resolve": { - "version": "0.6.0", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@testing-library/react": { - "version": "11.2.7", - "requires": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^7.28.1" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.14.6", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@testing-library/dom": { - "version": "7.31.2", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^4.2.0", - "aria-query": "^4.2.2", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.6", - "lz-string": "^1.4.4", - "pretty-format": "^26.6.2" - } - }, - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@testing-library/user-event": { - "version": "12.8.3", - "requires": { - "@babel/runtime": "^7.12.5" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.14.6", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } - } - }, - "@tootallnate/once": { - "version": "1.1.2" - }, - "@tweenjs/tween.js": { - "version": "17.6.0", - "optional": true - }, - "@types/aria-query": { - "version": "4.2.1" - }, - "@types/babel__core": { - "version": "7.1.14", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.2", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.0", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.14.0", - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/eslint": { - "version": "7.2.13", - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/estree": { - "version": "0.0.48" - }, - "@types/glob": { - "version": "7.1.3", - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "requires": { - "@types/node": "*" - } - }, - "@types/html-minifier-terser": { - "version": "5.1.1" - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3" - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "26.0.23", - "requires": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" - } - }, - "@types/json-schema": { - "version": "7.0.7" - }, - "@types/json5": { - "version": "0.0.29" - }, - "@types/minimatch": { - "version": "3.0.4" - }, - "@types/node": { - "version": "15.12.5" - }, - "@types/normalize-package-data": { - "version": "2.4.0" - }, - "@types/parse-json": { - "version": "4.0.0" - }, - "@types/prettier": { - "version": "2.3.0" - }, - "@types/prop-types": { - "version": "15.7.4" - }, - "@types/q": { - "version": "1.5.4" - }, - "@types/react": { - "version": "17.0.24", - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - }, - "dependencies": { - "csstype": { - "version": "3.0.9" - } - } - }, - "@types/react-is": { - "version": "17.0.2", - "requires": { - "@types/react": "*" - } - }, - "@types/react-transition-group": { - "version": "4.4.3", - "requires": { - "@types/react": "*" - } - }, - "@types/resolve": { - "version": "0.0.8", - "requires": { - "@types/node": "*" - } - }, - "@types/scheduler": { - "version": "0.16.2" - }, - "@types/source-list-map": { - "version": "0.1.2" - }, - "@types/stack-utils": { - "version": "2.0.0" - }, - "@types/tapable": { - "version": "1.0.7" - }, - "@types/testing-library__jest-dom": { - "version": "5.14.0", - "requires": { - "@types/jest": "*" - } - }, - "@types/uglify-js": { - "version": "3.13.0", - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1" - } - } - }, - "@types/webpack": { - "version": "4.41.29", - "requires": { - "@types/node": "*", - "@types/tapable": "^1", - "@types/uglify-js": "*", - "@types/webpack-sources": "*", - "anymatch": "^3.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1" - } - } - }, - "@types/webpack-sources": { - "version": "2.1.0", - "requires": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3" - } - } - }, - "@types/yargs": { - "version": "15.0.13", - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.0" - }, - "@typescript-eslint/eslint-plugin": { - "version": "4.28.1", - "requires": { - "@typescript-eslint/experimental-utils": "4.28.1", - "@typescript-eslint/scope-manager": "4.28.1", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/experimental-utils": { - "version": "4.28.1", - "requires": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.28.1", - "@typescript-eslint/types": "4.28.1", - "@typescript-eslint/typescript-estree": "4.28.1", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "4.28.1", - "requires": { - "@typescript-eslint/scope-manager": "4.28.1", - "@typescript-eslint/types": "4.28.1", - "@typescript-eslint/typescript-estree": "4.28.1", - "debug": "^4.3.1" - } - }, - "@typescript-eslint/scope-manager": { - "version": "4.28.1", - "requires": { - "@typescript-eslint/types": "4.28.1", - "@typescript-eslint/visitor-keys": "4.28.1" - } - }, - "@typescript-eslint/types": { - "version": "4.28.1" - }, - "@typescript-eslint/typescript-estree": { - "version": "4.28.1", - "requires": { - "@typescript-eslint/types": "4.28.1", - "@typescript-eslint/visitor-keys": "4.28.1", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "4.28.1", - "requires": { - "@typescript-eslint/types": "4.28.1", - "eslint-visitor-keys": "^2.0.0" - } - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0" - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0" - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0" - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0" - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "requires": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0" - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.9.0" - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0" - }, - "@xtuc/long": { - "version": "4.2.2" - }, - "abab": { - "version": "2.0.5" - }, - "accepts": { - "version": "1.3.7", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "7.4.1" - }, - "acorn-globals": { - "version": "6.0.0", - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "acorn-jsx": { - "version": "5.3.1", - "requires": {} - }, - "acorn-walk": { - "version": "7.2.0" - }, - "address": { - "version": "1.1.2" - }, - "adjust-sourcemap-loader": { - "version": "3.0.0", - "requires": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - } - }, - "agent-base": { - "version": "6.0.2", - "requires": { - "debug": "4" - } - }, - "aggregate-error": { - "version": "3.1.0", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "requires": {} - }, - "ajv-keywords": { - "version": "3.5.2", - "requires": {} - }, - "alphanum-sort": { - "version": "1.0.2" - }, - "ansi-colors": { - "version": "4.1.1" - }, - "ansi-escapes": { - "version": "4.3.2", - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3" - } - } - }, - "ansi-html": { - "version": "0.0.7" - }, - "ansi-regex": { - "version": "5.0.1" - }, - "ansi-styles": { - "version": "3.2.1", - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.2", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "aproba": { - "version": "1.2.0" - }, - "argparse": { - "version": "1.0.10", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "aria-query": { - "version": "4.2.2", - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - } - }, - "arity-n": { - "version": "1.0.4" - }, - "arr-diff": { - "version": "4.0.0" - }, - "arr-flatten": { - "version": "1.1.0" - }, - "arr-union": { - "version": "3.1.0" - }, - "array-flatten": { - "version": "2.1.2" - }, - "array-includes": { - "version": "3.1.3", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.5" - } - }, - "array-union": { - "version": "2.1.0" - }, - "array-uniq": { - "version": "1.0.3" - }, - "array-unique": { - "version": "0.3.2" - }, - "array.prototype.flat": { - "version": "1.2.4", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - } - }, - "array.prototype.flatmap": { - "version": "1.2.4", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" - } - }, - "arrify": { - "version": "2.0.1" - }, - "asap": { - "version": "2.0.6" - }, - "asn1.js": { - "version": "5.4.1", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0" - } - } - }, - "assert": { - "version": "1.5.0", - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1" - }, - "util": { - "version": "0.10.3", - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assign-symbols": { - "version": "1.0.0" - }, - "ast-types-flow": { - "version": "0.0.7" - }, - "astral-regex": { - "version": "2.0.0" - }, - "async": { - "version": "2.6.3", - "requires": { - "lodash": "^4.17.14" - } - }, - "async-each": { - "version": "1.0.3" - }, - "async-limiter": { - "version": "1.0.1" - }, - "asynckit": { - "version": "0.4.0" - }, - "at-least-node": { - "version": "1.0.0" - }, - "atob": { - "version": "2.1.2" - }, - "autoprefixer": { - "version": "9.8.6", - "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "colorette": "^1.2.1", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - } - }, - "axe-core": { - "version": "4.2.3" - }, - "axobject-query": { - "version": "2.2.0" - }, - "babel-eslint": { - "version": "10.1.0", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0" - } - } - }, - "babel-extract-comments": { - "version": "1.0.0", - "requires": { - "babylon": "^6.18.0" - } - }, - "babel-jest": { - "version": "26.6.3", - "requires": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "babel-loader": { - "version": "8.1.0", - "requires": { - "find-cache-dir": "^2.1.0", - "loader-utils": "^1.4.0", - "mkdirp": "^0.5.3", - "pify": "^4.0.1", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-emotion": { - "version": "10.2.2", - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@emotion/hash": "0.8.0", - "@emotion/memoize": "0.7.4", - "@emotion/serialize": "^0.11.16", - "babel-plugin-macros": "^2.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^1.0.5", - "find-root": "^1.1.0", - "source-map": "^0.5.7" - } - }, - "babel-plugin-istanbul": { - "version": "6.0.0", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "26.6.2", - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-plugin-macros": { - "version": "2.8.0", - "requires": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "6.0.0", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - } - } - }, - "babel-plugin-named-asset-import": { - "version": "0.3.7", - "requires": {} - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.2.2", - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.2", - "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0" - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.2.3", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.2.2", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.2" - } - }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0" - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0" - }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.8.0", - "babel-runtime": "^6.26.0" - } - }, - "babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24" - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "26.6.2", - "requires": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "babel-preset-react-app": { - "version": "10.0.0", - "requires": { - "@babel/core": "7.12.3", - "@babel/plugin-proposal-class-properties": "7.12.1", - "@babel/plugin-proposal-decorators": "7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "7.12.1", - "@babel/plugin-proposal-numeric-separator": "7.12.1", - "@babel/plugin-proposal-optional-chaining": "7.12.1", - "@babel/plugin-transform-flow-strip-types": "7.12.1", - "@babel/plugin-transform-react-display-name": "7.12.1", - "@babel/plugin-transform-runtime": "7.12.1", - "@babel/preset-env": "7.12.1", - "@babel/preset-react": "7.12.1", - "@babel/preset-typescript": "7.12.1", - "@babel/runtime": "7.12.1", - "babel-plugin-macros": "2.8.0", - "babel-plugin-transform-react-remove-prop-types": "0.4.24" - }, - "dependencies": { - "@babel/core": { - "version": "7.12.3", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.1", - "@babel/parser": "^7.12.3", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.12.1", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.12.1", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.12.1", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.12.1", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.12.1", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/preset-env": { - "version": "7.12.1", - "requires": { - "@babel/compat-data": "^7.12.1", - "@babel/helper-compilation-targets": "^7.12.1", - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-option": "^7.12.1", - "@babel/plugin-proposal-async-generator-functions": "^7.12.1", - "@babel/plugin-proposal-class-properties": "^7.12.1", - "@babel/plugin-proposal-dynamic-import": "^7.12.1", - "@babel/plugin-proposal-export-namespace-from": "^7.12.1", - "@babel/plugin-proposal-json-strings": "^7.12.1", - "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-numeric-separator": "^7.12.1", - "@babel/plugin-proposal-object-rest-spread": "^7.12.1", - "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.1", - "@babel/plugin-proposal-private-methods": "^7.12.1", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.12.1", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.12.1", - "@babel/plugin-transform-arrow-functions": "^7.12.1", - "@babel/plugin-transform-async-to-generator": "^7.12.1", - "@babel/plugin-transform-block-scoped-functions": "^7.12.1", - "@babel/plugin-transform-block-scoping": "^7.12.1", - "@babel/plugin-transform-classes": "^7.12.1", - "@babel/plugin-transform-computed-properties": "^7.12.1", - "@babel/plugin-transform-destructuring": "^7.12.1", - "@babel/plugin-transform-dotall-regex": "^7.12.1", - "@babel/plugin-transform-duplicate-keys": "^7.12.1", - "@babel/plugin-transform-exponentiation-operator": "^7.12.1", - "@babel/plugin-transform-for-of": "^7.12.1", - "@babel/plugin-transform-function-name": "^7.12.1", - "@babel/plugin-transform-literals": "^7.12.1", - "@babel/plugin-transform-member-expression-literals": "^7.12.1", - "@babel/plugin-transform-modules-amd": "^7.12.1", - "@babel/plugin-transform-modules-commonjs": "^7.12.1", - "@babel/plugin-transform-modules-systemjs": "^7.12.1", - "@babel/plugin-transform-modules-umd": "^7.12.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", - "@babel/plugin-transform-new-target": "^7.12.1", - "@babel/plugin-transform-object-super": "^7.12.1", - "@babel/plugin-transform-parameters": "^7.12.1", - "@babel/plugin-transform-property-literals": "^7.12.1", - "@babel/plugin-transform-regenerator": "^7.12.1", - "@babel/plugin-transform-reserved-words": "^7.12.1", - "@babel/plugin-transform-shorthand-properties": "^7.12.1", - "@babel/plugin-transform-spread": "^7.12.1", - "@babel/plugin-transform-sticky-regex": "^7.12.1", - "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/plugin-transform-typeof-symbol": "^7.12.1", - "@babel/plugin-transform-unicode-escapes": "^7.12.1", - "@babel/plugin-transform-unicode-regex": "^7.12.1", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.12.1", - "core-js-compat": "^3.6.2", - "semver": "^5.5.0" - } - }, - "@babel/preset-react": { - "version": "7.12.1", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-transform-react-display-name": "^7.12.1", - "@babel/plugin-transform-react-jsx": "^7.12.1", - "@babel/plugin-transform-react-jsx-development": "^7.12.1", - "@babel/plugin-transform-react-jsx-self": "^7.12.1", - "@babel/plugin-transform-react-jsx-source": "^7.12.1", - "@babel/plugin-transform-react-pure-annotations": "^7.12.1" - } - }, - "semver": { - "version": "5.7.1" - } - } - }, - "babel-runtime": { - "version": "6.26.0", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "core-js": { - "version": "2.6.12" - }, - "regenerator-runtime": { - "version": "0.11.1" - } - } - }, - "babylon": { - "version": "6.18.0" - }, - "balanced-match": { - "version": "1.0.2" - }, - "base": { - "version": "0.11.2", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "base64-js": { - "version": "1.5.1" - }, - "batch": { - "version": "0.6.1" - }, - "bfj": { - "version": "7.0.2", - "requires": { - "bluebird": "^3.5.5", - "check-types": "^11.1.1", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - } - }, - "big.js": { - "version": "5.2.2" - }, - "binary-extensions": { - "version": "2.2.0", - "optional": true - }, - "bluebird": { - "version": "3.7.2" - }, - "bn.js": { - "version": "5.2.0" - }, - "body-parser": { - "version": "1.19.0", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "bytes": { - "version": "3.1.0" - }, - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } - } - }, - "bonjour": { - "version": "3.5.0", - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "boolbase": { - "version": "1.0.0" - }, - "brace-expansion": { - "version": "1.1.11", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0" - }, - "browser-process-hrtime": { - "version": "1.0.0" - }, - "browserify-aes": { - "version": "1.2.0", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1" - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.16.6", - "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - } - }, - "bser": { - "version": "2.1.1", - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "4.9.2", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-from": { - "version": "1.1.1" - }, - "buffer-indexof": { - "version": "1.1.1" - }, - "buffer-xor": { - "version": "1.0.3" - }, - "builtin-modules": { - "version": "3.2.0" - }, - "builtin-status-codes": { - "version": "3.0.0" - }, - "bytes": { - "version": "3.0.0" - }, - "cacache": { - "version": "15.2.0", - "requires": { - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4" - }, - "rimraf": { - "version": "3.0.2", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "cache-base": { - "version": "1.0.1", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "call-bind": { - "version": "1.0.2", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "caller-callsite": { - "version": "2.0.0", - "requires": { - "callsites": "^2.0.0" - }, - "dependencies": { - "callsites": { - "version": "2.0.0" - } - } - }, - "caller-path": { - "version": "2.0.0", - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsites": { - "version": "3.1.0" - }, - "camel-case": { - "version": "4.1.2", - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "camelcase": { - "version": "6.2.0" - }, - "caniuse-api": { - "version": "3.0.0", - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001241" - }, - "capture-exit": { - "version": "2.0.0", - "requires": { - "rsvp": "^4.8.4" - } - }, - "case-sensitive-paths-webpack-plugin": { - "version": "2.3.0" - }, - "chalk": { - "version": "2.4.2", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "char-regex": { - "version": "1.0.2" - }, - "check-types": { - "version": "11.1.2" - }, - "chokidar": { - "version": "3.5.2", - "optional": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chownr": { - "version": "2.0.0" - }, - "chrome-trace-event": { - "version": "1.0.3" - }, - "ci-info": { - "version": "2.0.0" - }, - "cipher-base": { - "version": "1.0.4", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "cjs-module-lexer": { - "version": "0.6.0" - }, - "class-utils": { - "version": "0.3.6", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0" - } - } - }, - "clean-css": { - "version": "4.2.3", - "requires": { - "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1" - } - } - }, - "clean-stack": { - "version": "2.2.0" - }, - "cliui": { - "version": "6.0.0", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "clsx": { - "version": "1.1.1" - }, - "co": { - "version": "4.6.0" - }, - "coa": { - "version": "2.0.2", - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - } - }, - "collect-v8-coverage": { - "version": "1.0.1" - }, - "collection-visit": { - "version": "1.0.0", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.1.3", - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.4" - } - }, - "color-convert": { - "version": "1.9.3", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3" - }, - "color-string": { - "version": "1.5.5", - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "colorette": { - "version": "1.2.2" - }, - "combined-stream": { - "version": "1.0.8", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "4.1.1" - }, - "common-tags": { - "version": "1.8.0" - }, - "commondir": { - "version": "1.0.1" - }, - "component-emitter": { - "version": "1.3.0" - }, - "compose-function": { - "version": "3.0.3", - "requires": { - "arity-n": "^1.0.4" - } - }, - "compressible": { - "version": "2.0.18", - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } - } - }, - "concat-map": { - "version": "0.0.1" - }, - "concat-stream": { - "version": "1.6.2", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "confusing-browser-globals": { - "version": "1.0.10" - }, - "connect-history-api-fallback": { - "version": "1.6.0" - }, - "console-browserify": { - "version": "1.2.0" - }, - "console-feed": { - "version": "3.2.2", - "requires": { - "@emotion/core": "^10.0.10", - "@emotion/styled": "^10.0.12", - "emotion-theming": "^10.0.10", - "linkifyjs": "^2.1.6", - "react-inspector": "^5.1.0" - }, - "dependencies": { - "@emotion/styled": { - "version": "10.0.27", - "requires": { - "@emotion/styled-base": "^10.0.27", - "babel-plugin-emotion": "^10.0.27" - } - } - } - }, - "constants-browserify": { - "version": "1.0.0" - }, - "content-disposition": { - "version": "0.5.3", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4" - }, - "convert-source-map": { - "version": "1.8.0", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.0" - }, - "cookie-signature": { - "version": "1.0.6" - }, - "copy-concurrently": { - "version": "1.0.5", - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "copy-descriptor": { - "version": "0.1.1" - }, - "core-js": { - "version": "3.15.2" - }, - "core-js-compat": { - "version": "3.15.2", - "requires": { - "browserslist": "^4.16.6", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0" - } - } - }, - "core-js-pure": { - "version": "3.15.2" - }, - "core-util-is": { - "version": "1.0.2" - }, - "cosmiconfig": { - "version": "7.0.0", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "create-ecdh": { - "version": "4.0.4", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0" - } - } - }, - "create-hash": { - "version": "1.2.0", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "7.0.3", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "crypto-random-string": { - "version": "1.0.0" - }, - "css": { - "version": "2.2.4", - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1" - } - } - }, - "css-blank-pseudo": { - "version": "0.1.4", - "requires": { - "postcss": "^7.0.5" - } - }, - "css-color-names": { - "version": "0.0.4" - }, - "css-declaration-sorter": { - "version": "4.0.1", - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - } - }, - "css-has-pseudo": { - "version": "0.10.0", - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^5.0.0-rc.4" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "css-loader": { - "version": "4.3.0", - "requires": { - "camelcase": "^6.0.0", - "cssesc": "^3.0.0", - "icss-utils": "^4.1.1", - "loader-utils": "^2.0.0", - "postcss": "^7.0.32", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^3.0.3", - "postcss-modules-scope": "^2.2.0", - "postcss-modules-values": "^3.0.0", - "postcss-value-parser": "^4.1.0", - "schema-utils": "^2.7.1", - "semver": "^7.3.2" - } - }, - "css-prefers-color-scheme": { - "version": "3.1.1", - "requires": { - "postcss": "^7.0.5" - } - }, - "css-select": { - "version": "4.1.3", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" - } - }, - "css-select-base-adapter": { - "version": "0.1.1" - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1" - } - } - }, - "css-vendor": { - "version": "2.0.8", - "requires": { - "@babel/runtime": "^7.8.3", - "is-in-browser": "^1.0.2" - } - }, - "css-what": { - "version": "5.0.1" - }, - "css.escape": { - "version": "1.5.1" - }, - "cssdb": { - "version": "4.4.0" - }, - "cssesc": { - "version": "3.0.0" - }, - "cssnano": { - "version": "4.1.11", - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.8", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "5.2.1", - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "resolve-from": { - "version": "3.0.0" - } - } - }, - "cssnano-preset-default": { - "version": "4.0.8", - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.3", - "postcss-unique-selectors": "^4.0.1" - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0" - }, - "cssnano-util-get-match": { - "version": "4.0.0" - }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "requires": { - "postcss": "^7.0.0" - } - }, - "cssnano-util-same-parent": { - "version": "4.0.1" - }, - "csso": { - "version": "4.2.0", - "requires": { - "css-tree": "^1.1.2" - }, - "dependencies": { - "css-tree": { - "version": "1.1.3", - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14" - }, - "source-map": { - "version": "0.6.1" - } - } - }, - "cssom": { - "version": "0.4.4" - }, - "cssstyle": { - "version": "2.3.0", - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8" - } - } - }, - "csstype": { - "version": "2.6.17" - }, - "cyclist": { - "version": "1.0.1" - }, - "d": { - "version": "1.0.1", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "damerau-levenshtein": { - "version": "1.0.7" - }, - "data-urls": { - "version": "2.0.0", - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "debug": { - "version": "4.3.1", - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0" - }, - "decimal.js": { - "version": "10.3.1" - }, - "decode-uri-component": { - "version": "0.2.0" - }, - "dedent": { - "version": "0.7.0" - }, - "deep-equal": { - "version": "1.1.1", - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "deep-is": { - "version": "0.1.3" - }, - "deepmerge": { - "version": "4.2.2" - }, - "default-gateway": { - "version": "4.2.0", - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "1.1.0" - }, - "npm-run-path": { - "version": "2.0.2", - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1" - }, - "semver": { - "version": "5.7.1" - }, - "shebang-command": { - "version": "1.2.0", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0" - }, - "which": { - "version": "1.3.1", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "define-properties": { - "version": "1.1.3", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "del": { - "version": "4.1.1", - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "dependencies": { - "array-union": { - "version": "1.0.2", - "requires": { - "array-uniq": "^1.0.1" - } - }, - "globby": { - "version": "6.1.0", - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0" - } - } - }, - "p-map": { - "version": "2.1.0" - }, - "rimraf": { - "version": "2.7.1", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0" - }, - "depd": { - "version": "1.1.2" - }, - "des.js": { - "version": "1.0.1", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4" - }, - "detect-newline": { - "version": "3.1.0" - }, - "detect-node": { - "version": "2.1.0" - }, - "detect-port-alt": { - "version": "1.1.6", - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } - } - }, - "diff-sequences": { - "version": "26.6.2" - }, - "diffie-hellman": { - "version": "5.0.3", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0" - } - } - }, - "dir-glob": { - "version": "3.0.1", - "requires": { - "path-type": "^4.0.0" - } - }, - "dns-equal": { - "version": "1.0.0" - }, - "dns-packet": { - "version": "1.3.4", - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-accessibility-api": { - "version": "0.5.14" - }, - "dom-converter": { - "version": "0.2.0", - "requires": { - "utila": "~0.4" - } - }, - "dom-helpers": { - "version": "5.2.1", - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - }, - "dependencies": { - "csstype": { - "version": "3.0.9" - } - } - }, - "dom-serializer": { - "version": "1.3.2", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domain-browser": { - "version": "1.2.0" - }, - "domelementtype": { - "version": "2.2.0" - }, - "domexception": { - "version": "2.0.1", - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0" - } - } - }, - "domhandler": { - "version": "4.2.0", - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.7.0", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "dot-case": { - "version": "3.0.4", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "dot-prop": { - "version": "5.3.0", - "requires": { - "is-obj": "^2.0.0" - }, - "dependencies": { - "is-obj": { - "version": "2.0.0" - } - } - }, - "dotenv": { - "version": "8.2.0" - }, - "dotenv-expand": { - "version": "5.1.0" - }, - "duplexer": { - "version": "0.1.2" - }, - "duplexify": { - "version": "3.7.1", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ee-first": { - "version": "1.1.1" - }, - "ejs": { - "version": "2.7.4" - }, - "electron-to-chromium": { - "version": "1.3.763" - }, - "elliptic": { - "version": "6.5.4", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0" - } - } - }, - "emittery": { - "version": "0.7.2" - }, - "emoji-regex": { - "version": "9.2.2" - }, - "emojis-list": { - "version": "3.0.0" - }, - "emotion-theming": { - "version": "10.0.27", - "requires": { - "@babel/runtime": "^7.5.5", - "@emotion/weak-memoize": "0.2.5", - "hoist-non-react-statics": "^3.3.0" - } - }, - "encodeurl": { - "version": "1.0.2" - }, - "end-of-stream": { - "version": "1.4.4", - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.5.0", - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, - "enquirer": { - "version": "2.3.6", - "requires": { - "ansi-colors": "^4.1.1" - } - }, - "entities": { - "version": "2.2.0" - }, - "errno": { - "version": "0.1.8", - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "error-stack-parser": { - "version": "2.0.6", - "requires": { - "stackframe": "^1.1.1" - } - }, - "es-abstract": { - "version": "1.18.3", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", - "object-inspect": "^1.10.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.53", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "escalade": { - "version": "3.1.1" - }, - "escape-html": { - "version": "1.0.3" - }, - "escape-string-regexp": { - "version": "1.0.5" - }, - "escodegen": { - "version": "2.0.0", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0" - }, - "levn": { - "version": "0.3.0", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2" - }, - "source-map": { - "version": "0.6.1", - "optional": true - }, - "type-check": { - "version": "0.3.2", - "requires": { - "prelude-ls": "~1.1.2" - } - } - } - }, - "eslint": { - "version": "7.29.0", - "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "escape-string-regexp": { - "version": "4.0.0" - }, - "eslint-utils": { - "version": "2.1.0", - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0" - } - } - }, - "globals": { - "version": "13.9.0", - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.20.2" - } - } - }, - "eslint-config-react-app": { - "version": "6.0.0", - "requires": { - "confusing-browser-globals": "^1.0.10" - } - }, - "eslint-import-resolver-node": { - "version": "0.3.4", - "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } - } - }, - "eslint-module-utils": { - "version": "2.6.1", - "requires": { - "debug": "^3.2.7", - "pkg-dir": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-plugin-flowtype": { - "version": "5.8.0", - "requires": { - "lodash": "^4.17.15", - "string-natural-compare": "^3.0.1" - } - }, - "eslint-plugin-import": { - "version": "2.23.4", - "requires": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.1", - "find-up": "^2.0.0", - "has": "^1.0.3", - "is-core-module": "^2.4.0", - "minimatch": "^3.0.4", - "object.values": "^1.1.3", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.9.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "requires": { - "esutils": "^2.0.2" - } - }, - "find-up": { - "version": "2.1.0", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.0.0" - }, - "p-limit": { - "version": "1.3.0", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0" - }, - "path-exists": { - "version": "3.0.0" - }, - "resolve": { - "version": "1.20.0", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - } - } - }, - "eslint-plugin-jest": { - "version": "24.3.6", - "requires": { - "@typescript-eslint/experimental-utils": "^4.0.1" - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.4.1", - "requires": { - "@babel/runtime": "^7.11.2", - "aria-query": "^4.2.2", - "array-includes": "^3.1.1", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.0.2", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.6", - "emoji-regex": "^9.0.0", - "has": "^1.0.3", - "jsx-ast-utils": "^3.1.0", - "language-tags": "^1.0.5" - } - }, - "eslint-plugin-react": { - "version": "7.24.0", - "requires": { - "array-includes": "^3.1.3", - "array.prototype.flatmap": "^1.2.4", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.0.4", - "object.entries": "^1.1.4", - "object.fromentries": "^2.0.4", - "object.values": "^1.1.4", - "prop-types": "^15.7.2", - "resolve": "^2.0.0-next.3", - "string.prototype.matchall": "^4.0.5" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "requires": { - "esutils": "^2.0.2" - } - }, - "resolve": { - "version": "2.0.0-next.3", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - } - } - }, - "eslint-plugin-react-hooks": { - "version": "4.2.0", - "requires": {} - }, - "eslint-plugin-testing-library": { - "version": "3.10.2", - "requires": { - "@typescript-eslint/experimental-utils": "^3.10.1" - }, - "dependencies": { - "@typescript-eslint/experimental-utils": { - "version": "3.10.1", - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/typescript-estree": "3.10.1", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/types": { - "version": "3.10.1" - }, - "@typescript-eslint/typescript-estree": { - "version": "3.10.1", - "requires": { - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/visitor-keys": "3.10.1", - "debug": "^4.1.1", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "3.10.1", - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-utils": { - "version": "2.1.0", - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0" - } - } - }, - "eslint-scope": { - "version": "5.1.1", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "3.0.0", - "requires": { - "eslint-visitor-keys": "^2.0.0" - } - }, - "eslint-visitor-keys": { - "version": "2.1.0" - }, - "eslint-webpack-plugin": { - "version": "2.5.4", - "requires": { - "@types/eslint": "^7.2.6", - "arrify": "^2.0.1", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "normalize-path": "^3.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "espree": { - "version": "7.3.1", - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0" - } - } - }, - "esprima": { - "version": "4.0.1" - }, - "esquery": { - "version": "1.4.0", - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0" - } - } - }, - "esrecurse": { - "version": "4.3.0", - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0" - } - } - }, - "estraverse": { - "version": "4.3.0" - }, - "estree-walker": { - "version": "1.0.1" - }, - "esutils": { - "version": "2.0.3" - }, - "etag": { - "version": "1.8.1" - }, - "eventemitter3": { - "version": "4.0.7" - }, - "events": { - "version": "3.3.0" - }, - "eventsource": { - "version": "1.1.0", - "requires": { - "original": "^1.0.0" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "exec-sh": { - "version": "0.3.6" - }, - "execa": { - "version": "4.1.0", - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2" - }, - "expand-brackets": { - "version": "2.1.4", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1" - }, - "kind-of": { - "version": "5.1.0" - }, - "ms": { - "version": "2.0.0" - } - } - }, - "expect": { - "version": "26.6.2", - "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - } - } - }, - "express": { - "version": "4.17.1", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1" - }, - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } - } - }, - "ext": { - "version": "1.4.0", - "requires": { - "type": "^2.0.0" - }, - "dependencies": { - "type": { - "version": "2.5.0" - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "extglob": { - "version": "2.0.4", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1" - } - } - }, - "fast-deep-equal": { - "version": "3.1.3" - }, - "fast-glob": { - "version": "3.2.6", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0" - }, - "fast-levenshtein": { - "version": "2.0.6" - }, - "fastq": { - "version": "1.11.0", - "requires": { - "reusify": "^1.0.4" - } - }, - "faye-websocket": { - "version": "0.11.4", - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fb-watchman": { - "version": "2.0.1", - "requires": { - "bser": "2.1.1" - } - }, - "figgy-pudding": { - "version": "3.5.2" - }, - "file-entry-cache": { - "version": "6.0.1", - "requires": { - "flat-cache": "^3.0.4" - } - }, - "file-loader": { - "version": "6.1.1", - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "filesize": { - "version": "6.1.0" - }, - "fill-range": { - "version": "7.0.1", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } - } - }, - "find-cache-dir": { - "version": "2.1.0", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0" - }, - "pkg-dir": { - "version": "3.0.0", - "requires": { - "find-up": "^3.0.0" - } - } - } - }, - "find-root": { - "version": "1.1.0" - }, - "find-up": { - "version": "4.1.0", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "3.1.1" - }, - "flatten": { - "version": "1.0.3" - }, - "flush-write-stream": { - "version": "1.1.1", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "follow-redirects": { - "version": "1.14.1" - }, - "for-in": { - "version": "1.0.2" - }, - "fork-ts-checker-webpack-plugin": { - "version": "4.1.6", - "requires": { - "@babel/code-frame": "^7.5.5", - "chalk": "^2.4.1", - "micromatch": "^3.1.10", - "minimatch": "^3.0.4", - "semver": "^5.6.0", - "tapable": "^1.0.0", - "worker-rpc": "^0.1.0" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-extendable": { - "version": "0.1.1" - }, - "is-number": { - "version": "3.0.0", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "semver": { - "version": "5.7.1" - }, - "to-regex-range": { - "version": "2.1.1", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "form-data": { - "version": "3.0.1", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0" - }, - "fragment-cache": { - "version": "0.2.1", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2" - }, - "from2": { - "version": "2.3.0", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-extra": { - "version": "9.1.0", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "requires": { - "minipass": "^3.0.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0" - }, - "function-bind": { - "version": "1.1.1" - }, - "functional-red-black-tree": { - "version": "1.0.1" - }, - "gensync": { - "version": "1.0.0-beta.2" - }, - "geolib": { - "version": "3.3.1" - }, - "get-caller-file": { - "version": "2.0.5" - }, - "get-intrinsic": { - "version": "1.1.1", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2" - }, - "get-package-type": { - "version": "0.1.0" - }, - "get-stream": { - "version": "5.2.0", - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6" - }, - "glob": { - "version": "7.1.7", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "requires": { - "is-glob": "^4.0.1" - } - }, - "global-modules": { - "version": "2.0.0", - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "globals": { - "version": "11.12.0" - }, - "globby": { - "version": "11.0.4", - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "dependencies": { - "ignore": { - "version": "5.1.8" - } - } - }, - "google-maps": { - "version": "3.3.0" - }, - "graceful-fs": { - "version": "4.2.6" - }, - "growly": { - "version": "1.3.0", - "optional": true - }, - "gzip-size": { - "version": "5.1.1", - "requires": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" - } - }, - "handle-thing": { - "version": "2.0.1" - }, - "harmony-reflect": { - "version": "1.6.2" - }, - "has": { - "version": "1.0.3", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.1" - }, - "has-flag": { - "version": "3.0.0" - }, - "has-symbols": { - "version": "1.0.2" - }, - "has-value": { - "version": "1.0.0", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.1.0", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1" - } - } - }, - "hash.js": { - "version": "1.1.7", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0" - }, - "hex-color-regex": { - "version": "1.1.0" - }, - "history": { - "version": "4.10.1", - "requires": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "requires": { - "react-is": "^16.7.0" - }, - "dependencies": { - "react-is": { - "version": "16.13.1" - } - } - }, - "hoopy": { - "version": "0.1.4" - }, - "hosted-git-info": { - "version": "2.8.9" - }, - "hpack.js": { - "version": "2.1.6", - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "hsl-regex": { - "version": "1.0.0" - }, - "hsla-regex": { - "version": "1.0.0" - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-entities": { - "version": "1.4.0" - }, - "html-escaper": { - "version": "2.0.2" - }, - "html-minifier-terser": { - "version": "5.1.1", - "requires": { - "camel-case": "^4.1.1", - "clean-css": "^4.2.3", - "commander": "^4.1.1", - "he": "^1.2.0", - "param-case": "^3.0.3", - "relateurl": "^0.2.7", - "terser": "^4.6.3" - } - }, - "html-webpack-plugin": { - "version": "4.5.0", - "requires": { - "@types/html-minifier-terser": "^5.0.0", - "@types/tapable": "^1.0.5", - "@types/webpack": "^4.41.8", - "html-minifier-terser": "^5.0.1", - "loader-utils": "^1.2.3", - "lodash": "^4.17.15", - "pretty-error": "^2.1.1", - "tapable": "^1.1.3", - "util.promisify": "1.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "htmlparser2": { - "version": "6.1.0", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "http-deceiver": { - "version": "1.2.7" - }, - "http-errors": { - "version": "1.7.2", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3" - } - } - }, - "http-parser-js": { - "version": "0.5.3" - }, - "http-proxy": { - "version": "1.18.1", - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "http-proxy-middleware": { - "version": "0.19.1", - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-extendable": { - "version": "0.1.1" - }, - "is-number": { - "version": "3.0.0", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "https-browserify": { - "version": "1.0.0" - }, - "https-proxy-agent": { - "version": "5.0.0", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "1.1.1" - }, - "hyphenate-style-name": { - "version": "1.0.4" - }, - "iconv-lite": { - "version": "0.4.24", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-utils": { - "version": "4.1.1", - "requires": { - "postcss": "^7.0.14" - } - }, - "identity-obj-proxy": { - "version": "3.0.0", - "requires": { - "harmony-reflect": "^1.4.6" - } - }, - "ieee754": { - "version": "1.2.1" - }, - "iferr": { - "version": "0.1.5" - }, - "ignore": { - "version": "4.0.6" - }, - "immer": { - "version": "8.0.1" - }, - "import-cwd": { - "version": "2.1.0", - "requires": { - "import-from": "^2.1.0" - } - }, - "import-fresh": { - "version": "3.3.0", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0" - } - } - }, - "import-from": { - "version": "2.1.0", - "requires": { - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0" - } - } - }, - "import-local": { - "version": "3.0.2", - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "dependencies": { - "pkg-dir": { - "version": "4.2.0", - "requires": { - "find-up": "^4.0.0" - } - } - } - }, - "imurmurhash": { - "version": "0.1.4" - }, - "indent-string": { - "version": "4.0.0" - }, - "indexes-of": { - "version": "1.0.1" - }, - "infer-owner": { - "version": "1.0.4" - }, - "inflight": { - "version": "1.0.6", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4" - }, - "ini": { - "version": "1.3.8" - }, - "internal-ip": { - "version": "4.3.0", - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "internal-slot": { - "version": "1.0.3", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "ip": { - "version": "1.1.5" - }, - "ip-regex": { - "version": "2.1.0" - }, - "ipaddr.js": { - "version": "1.9.1" - }, - "is-absolute-url": { - "version": "2.1.0" - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-arguments": { - "version": "1.1.0", - "requires": { - "call-bind": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1" - }, - "is-bigint": { - "version": "1.0.2" - }, - "is-binary-path": { - "version": "2.1.0", - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.1", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-buffer": { - "version": "1.1.6" - }, - "is-callable": { - "version": "1.2.3" - }, - "is-ci": { - "version": "2.0.0", - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-color-stop": { - "version": "1.1.0", - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-core-module": { - "version": "2.4.0", - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-date-object": { - "version": "1.0.4" - }, - "is-descriptor": { - "version": "1.0.2", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-directory": { - "version": "0.3.1" - }, - "is-docker": { - "version": "2.2.1" - }, - "is-dom": { - "version": "1.1.0", - "requires": { - "is-object": "^1.0.1", - "is-window": "^1.0.2" - } - }, - "is-extendable": { - "version": "1.0.1", - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-extglob": { - "version": "2.1.1" - }, - "is-fullwidth-code-point": { - "version": "3.0.0" - }, - "is-generator-fn": { - "version": "2.1.0" - }, - "is-glob": { - "version": "4.0.1", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-in-browser": { - "version": "1.1.3" - }, - "is-module": { - "version": "1.0.0" - }, - "is-negative-zero": { - "version": "2.0.1" - }, - "is-number": { - "version": "7.0.0" - }, - "is-number-object": { - "version": "1.0.5" - }, - "is-obj": { - "version": "1.0.1" - }, - "is-object": { - "version": "1.0.2" - }, - "is-path-cwd": { - "version": "2.2.0" - }, - "is-path-in-cwd": { - "version": "2.1.0", - "requires": { - "is-path-inside": "^2.1.0" - } - }, - "is-path-inside": { - "version": "2.1.0", - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "is-plain-obj": { - "version": "1.1.0" - }, - "is-plain-object": { - "version": "2.0.4", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-potential-custom-element-name": { - "version": "1.0.1" - }, - "is-regex": { - "version": "1.1.3", - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - } - }, - "is-regexp": { - "version": "1.0.0" - }, - "is-resolvable": { - "version": "1.1.0" - }, - "is-root": { - "version": "2.1.0" - }, - "is-stream": { - "version": "2.0.0" - }, - "is-string": { - "version": "1.0.6" - }, - "is-symbol": { - "version": "1.0.4", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typedarray": { - "version": "1.0.0" - }, - "is-window": { - "version": "1.0.2" - }, - "is-windows": { - "version": "1.0.2" - }, - "is-wsl": { - "version": "2.2.0", - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0" - }, - "isexe": { - "version": "2.0.0" - }, - "isobject": { - "version": "3.0.1" - }, - "istanbul-lib-coverage": { - "version": "3.0.0" - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0" - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0" - }, - "make-dir": { - "version": "3.1.0", - "requires": { - "semver": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1" - } - } - }, - "istanbul-reports": { - "version": "3.0.2", - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "26.6.0", - "requires": { - "@jest/core": "^26.6.0", - "import-local": "^3.0.2", - "jest-cli": "^26.6.0" - } - }, - "jest-changed-files": { - "version": "26.6.2", - "requires": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" - } - }, - "jest-circus": { - "version": "26.6.0", - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.0", - "@jest/test-result": "^26.6.0", - "@jest/types": "^26.6.0", - "@types/babel__traverse": "^7.0.4", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^26.6.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.0", - "jest-matcher-utils": "^26.6.0", - "jest-message-util": "^26.6.0", - "jest-runner": "^26.6.0", - "jest-runtime": "^26.6.0", - "jest-snapshot": "^26.6.0", - "jest-util": "^26.6.0", - "pretty-format": "^26.6.0", - "stack-utils": "^2.0.2", - "throat": "^5.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-cli": { - "version": "26.6.3", - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-config": { - "version": "26.6.3", - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "jest-resolve": { - "version": "26.6.2", - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "read-pkg": { - "version": "5.2.0", - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0" - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.8.1" - } - } - }, - "jest-diff": { - "version": "26.6.2", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-docblock": { - "version": "26.0.0", - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "26.6.2", - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-environment-jsdom": { - "version": "26.6.2", - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - } - }, - "jest-environment-node": { - "version": "26.6.2", - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "jest-get-type": { - "version": "26.3.0" - }, - "jest-haste-map": { - "version": "26.6.2", - "requires": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "26.6.3", - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-leak-detector": { - "version": "26.6.2", - "requires": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-matcher-utils": { - "version": "26.6.2", - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-message-util": { - "version": "26.6.2", - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-mock": { - "version": "26.6.2", - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "requires": {} - }, - "jest-regex-util": { - "version": "26.0.0" - }, - "jest-resolve": { - "version": "26.6.0", - "requires": { - "@jest/types": "^26.6.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.0", - "read-pkg-up": "^7.0.1", - "resolve": "^1.17.0", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "read-pkg": { - "version": "5.2.0", - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0" - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.8.1" - } - } - }, - "jest-resolve-dependencies": { - "version": "26.6.3", - "requires": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" - } - }, - "jest-runner": { - "version": "26.6.3", - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "jest-resolve": { - "version": "26.6.2", - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "read-pkg": { - "version": "5.2.0", - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0" - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.8.1" - } - } - }, - "jest-runtime": { - "version": "26.6.3", - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "jest-resolve": { - "version": "26.6.2", - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "read-pkg": { - "version": "5.2.0", - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0" - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.8.1" - } - } - }, - "jest-serializer": { - "version": "26.6.2", - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "26.6.2", - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "jest-resolve": { - "version": "26.6.2", - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "read-pkg": { - "version": "5.2.0", - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0" - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.8.1" - } - } - }, - "jest-util": { - "version": "26.6.2", - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-validate": { - "version": "26.6.2", - "requires": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "leven": "^3.1.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-watch-typeahead": { - "version": "0.6.1", - "requires": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "jest-regex-util": "^26.0.0", - "jest-watcher": "^26.3.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-watcher": { - "version": "26.6.2", - "requires": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-worker": { - "version": "26.6.2", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jquery": { - "version": "3.6.0", - "peer": true - }, - "js-tokens": { - "version": "4.0.0" - }, - "js-yaml": { - "version": "3.14.1", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsdom": { - "version": "16.6.0", - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.5", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "8.4.1" - } - } - }, - "jsesc": { - "version": "2.5.2" - }, - "json-parse-better-errors": { - "version": "1.0.2" - }, - "json-parse-even-better-errors": { - "version": "2.3.1" - }, - "json-ref-lite": { - "version": "1.1.0", - "requires": { - "property-expr": "^1.3.1" - } - }, - "json-schema-traverse": { - "version": "0.4.1" - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1" - }, - "json3": { - "version": "3.3.3" - }, - "json5": { - "version": "2.2.0", - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "6.1.0", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jss": { - "version": "10.8.0", - "requires": { - "@babel/runtime": "^7.3.1", - "csstype": "^3.0.2", - "is-in-browser": "^1.1.3", - "tiny-warning": "^1.0.2" - }, - "dependencies": { - "csstype": { - "version": "3.0.9" - } - } - }, - "jss-plugin-camel-case": { - "version": "10.8.0", - "requires": { - "@babel/runtime": "^7.3.1", - "hyphenate-style-name": "^1.0.3", - "jss": "10.8.0" - } - }, - "jss-plugin-default-unit": { - "version": "10.8.0", - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.8.0" - } - }, - "jss-plugin-global": { - "version": "10.8.0", - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.8.0" - } - }, - "jss-plugin-nested": { - "version": "10.8.0", - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.8.0", - "tiny-warning": "^1.0.2" - } - }, - "jss-plugin-props-sort": { - "version": "10.8.0", - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.8.0" - } - }, - "jss-plugin-rule-value-function": { - "version": "10.8.0", - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.8.0", - "tiny-warning": "^1.0.2" - } - }, - "jss-plugin-vendor-prefixer": { - "version": "10.8.0", - "requires": { - "@babel/runtime": "^7.3.1", - "css-vendor": "^2.0.8", - "jss": "10.8.0" - } - }, - "jsx-ast-utils": { - "version": "3.2.0", - "requires": { - "array-includes": "^3.1.2", - "object.assign": "^4.1.2" - } - }, - "killable": { - "version": "1.0.1" - }, - "kind-of": { - "version": "6.0.3" - }, - "kleur": { - "version": "3.0.3" - }, - "klona": { - "version": "2.0.4" - }, - "language-subtag-registry": { - "version": "0.3.21" - }, - "language-tags": { - "version": "1.0.5", - "requires": { - "language-subtag-registry": "~0.3.2" - } - }, - "last-call-webpack-plugin": { - "version": "3.0.0", - "requires": { - "lodash": "^4.17.5", - "webpack-sources": "^1.1.0" - } - }, - "leaflet": { - "version": "1.7.1" - }, - "leaflet-easybutton": { - "version": "2.4.0", - "requires": { - "leaflet": "^1.0.1" - } - }, - "leaflet-marker-rotation": { - "version": "0.4.0" - }, - "leaflet.marker.slideto": { - "version": "0.2.0" - }, - "leven": { - "version": "3.1.0" - }, - "levn": { - "version": "0.4.1", - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lines-and-columns": { - "version": "1.1.6" - }, - "linkifyjs": { - "version": "2.1.9", - "requires": {} - }, - "load-json-file": { - "version": "4.0.0", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "pify": { - "version": "3.0.0" - }, - "strip-bom": { - "version": "3.0.0" - } - } - }, - "loader-runner": { - "version": "2.4.0" - }, - "loader-utils": { - "version": "2.0.0", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "locate-path": { - "version": "5.0.0", - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21" - }, - "lodash._reinterpolate": { - "version": "3.0.0" - }, - "lodash.clonedeep": { - "version": "4.5.0" - }, - "lodash.debounce": { - "version": "4.0.8" - }, - "lodash.memoize": { - "version": "4.1.2" - }, - "lodash.merge": { - "version": "4.6.2" - }, - "lodash.template": { - "version": "4.5.0", - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.2.0", - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "lodash.truncate": { - "version": "4.4.2" - }, - "lodash.uniq": { - "version": "4.5.0" - }, - "loglevel": { - "version": "1.7.1" - }, - "loose-envify": { - "version": "1.4.0", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lower-case": { - "version": "2.0.2", - "requires": { - "tslib": "^2.0.3" - } - }, - "lru-cache": { - "version": "6.0.0", - "requires": { - "yallist": "^4.0.0" - } - }, - "lz-string": { - "version": "1.4.4" - }, - "magic-string": { - "version": "0.25.7", - "requires": { - "sourcemap-codec": "^1.4.4" - } - }, - "make-dir": { - "version": "2.1.0", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1" - } - } - }, - "makeerror": { - "version": "1.0.11", - "requires": { - "tmpl": "1.0.x" - } - }, - "map-cache": { - "version": "0.2.2" - }, - "map-visit": { - "version": "1.0.0", - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5.js": { - "version": "1.3.5", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdn-data": { - "version": "2.0.4" - }, - "media-typer": { - "version": "0.3.0" - }, - "memory-fs": { - "version": "0.4.1", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "merge-descriptors": { - "version": "1.0.1" - }, - "merge-stream": { - "version": "2.0.0" - }, - "merge2": { - "version": "1.4.1" - }, - "methods": { - "version": "1.1.2" - }, - "microevent.ts": { - "version": "0.1.1" - }, - "micromatch": { - "version": "4.0.4", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "miller-rabin": { - "version": "4.0.1", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0" - } - } - }, - "mime": { - "version": "1.6.0" - }, - "mime-db": { - "version": "1.48.0" - }, - "mime-types": { - "version": "2.1.31", - "requires": { - "mime-db": "1.48.0" - } - }, - "mimic-fn": { - "version": "2.1.0" - }, - "min-indent": { - "version": "1.0.1" - }, - "mini-create-react-context": { - "version": "0.4.1", - "requires": { - "@babel/runtime": "^7.12.1", - "tiny-warning": "^1.0.3" - } - }, - "mini-css-extract-plugin": { - "version": "0.11.3", - "requires": { - "loader-utils": "^1.1.0", - "normalize-url": "1.9.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "schema-utils": { - "version": "1.0.0", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "minimalistic-assert": { - "version": "1.0.1" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1" - }, - "minimatch": { - "version": "3.0.4", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5" - }, - "minipass": { - "version": "3.1.3", - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mississippi": { - "version": "3.0.0", - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.2", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - } - }, - "mkdirp": { - "version": "0.5.5", - "requires": { - "minimist": "^1.2.5" - } - }, - "move-concurrently": { - "version": "1.0.1", - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "ms": { - "version": "2.1.2" - }, - "multicast-dns": { - "version": "6.2.3", - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0" - }, - "nanoid": { - "version": "3.1.23" - }, - "nanomatch": { - "version": "1.2.13", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "native-url": { - "version": "0.2.6", - "requires": { - "querystring": "^0.2.0" - } - }, - "natural-compare": { - "version": "1.4.0" - }, - "negotiator": { - "version": "0.6.2" - }, - "neo-async": { - "version": "2.6.2" - }, - "next-tick": { - "version": "1.0.0" - }, - "nice-try": { - "version": "1.0.5" - }, - "no-case": { - "version": "3.0.4", - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node-forge": { - "version": "0.10.0" - }, - "node-int64": { - "version": "0.4.0" - }, - "node-libs-browser": { - "version": "2.2.1", - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1" - } - } - }, - "node-modules-regexp": { - "version": "1.0.0" - }, - "node-notifier": { - "version": "8.0.2", - "optional": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - } - }, - "node-releases": { - "version": "1.1.73" - }, - "normalize-package-data": { - "version": "2.5.0", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1" - } - } - }, - "normalize-path": { - "version": "3.0.0" - }, - "normalize-range": { - "version": "0.1.2" - }, - "normalize-url": { - "version": "1.9.1", - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - } - }, - "npm-run-path": { - "version": "4.0.1", - "requires": { - "path-key": "^3.0.0" - } - }, - "nth-check": { - "version": "2.0.0", - "requires": { - "boolbase": "^1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2" - }, - "nwsapi": { - "version": "2.2.0" - }, - "object-assign": { - "version": "4.1.1" - }, - "object-copy": { - "version": "0.1.0", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0" - } - } - }, - "kind-of": { - "version": "3.2.2", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.10.3" - }, - "object-is": { - "version": "1.1.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1" - }, - "object-visit": { - "version": "1.0.1", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.entries": { - "version": "1.1.4", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - } - }, - "object.fromentries": { - "version": "2.0.4", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.2", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" - } - }, - "object.pick": { - "version": "1.3.0", - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.4", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - } - }, - "obuf": { - "version": "1.1.2" - }, - "on-finished": { - "version": "2.3.0", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2" - }, - "once": { - "version": "1.4.0", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "7.4.2", - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - } - }, - "opn": { - "version": "5.5.0", - "requires": { - "is-wsl": "^1.1.0" - }, - "dependencies": { - "is-wsl": { - "version": "1.1.0" - } - } - }, - "optimize-css-assets-webpack-plugin": { - "version": "5.0.4", - "requires": { - "cssnano": "^4.1.10", - "last-call-webpack-plugin": "^3.0.0" - } - }, - "optionator": { - "version": "0.9.1", - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "original": { - "version": "1.0.2", - "requires": { - "url-parse": "^1.4.3" - } - }, - "os-browserify": { - "version": "0.3.0" - }, - "p-each-series": { - "version": "2.2.0" - }, - "p-finally": { - "version": "1.0.0" - }, - "p-limit": { - "version": "2.3.0", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "4.0.0", - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-retry": { - "version": "3.0.1", - "requires": { - "retry": "^0.12.0" - } - }, - "p-try": { - "version": "2.2.0" - }, - "pako": { - "version": "1.0.11" - }, - "parallel-transform": { - "version": "1.2.0", - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "param-case": { - "version": "3.0.4", - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "parent-module": { - "version": "1.0.1", - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-asn1": { - "version": "5.1.6", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-json": { - "version": "5.2.0", - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse5": { - "version": "6.0.1" - }, - "parseurl": { - "version": "1.3.3" - }, - "pascal-case": { - "version": "3.1.2", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "pascalcase": { - "version": "0.1.1" - }, - "path-browserify": { - "version": "0.0.1" - }, - "path-dirname": { - "version": "1.0.2" - }, - "path-exists": { - "version": "4.0.0" - }, - "path-is-absolute": { - "version": "1.0.1" - }, - "path-is-inside": { - "version": "1.0.2" - }, - "path-key": { - "version": "3.1.1" - }, - "path-parse": { - "version": "1.0.7" - }, - "path-to-regexp": { - "version": "0.1.7" - }, - "path-type": { - "version": "4.0.0" - }, - "pbkdf2": { - "version": "3.1.2", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0" - }, - "picomatch": { - "version": "2.3.0" - }, - "pify": { - "version": "4.0.1" - }, - "pinkie": { - "version": "2.0.4" - }, - "pinkie-promise": { - "version": "2.0.1", - "requires": { - "pinkie": "^2.0.0" - } - }, - "pirates": { - "version": "4.0.1", - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "pkg-dir": { - "version": "2.0.0", - "requires": { - "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0" - }, - "path-exists": { - "version": "3.0.0" - } - } - }, - "pkg-up": { - "version": "2.0.0", - "requires": { - "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0" - }, - "path-exists": { - "version": "3.0.0" - } - } - }, - "pnp-webpack-plugin": { - "version": "1.6.4", - "requires": { - "ts-pnp": "^1.1.6" - } - }, - "portfinder": { - "version": "1.0.28", - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1" - }, - "postcss": { - "version": "7.0.36", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1" - }, - "supports-color": { - "version": "6.1.0", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-attribute-case-insensitive": { - "version": "4.0.2", - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^6.0.2" - } - }, - "postcss-browser-comments": { - "version": "3.0.0", - "requires": { - "postcss": "^7" - } - }, - "postcss-calc": { - "version": "7.0.5", - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "postcss-color-functional-notation": { - "version": "2.0.1", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-color-gray": { - "version": "5.0.0", - "requires": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.5", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-color-hex-alpha": { - "version": "5.0.3", - "requires": { - "postcss": "^7.0.14", - "postcss-values-parser": "^2.0.1" - } - }, - "postcss-color-mod-function": { - "version": "3.0.3", - "requires": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-color-rebeccapurple": { - "version": "4.0.1", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-colormin": { - "version": "4.0.3", - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1" - } - } - }, - "postcss-convert-values": { - "version": "4.0.1", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1" - } - } - }, - "postcss-custom-media": { - "version": "7.0.8", - "requires": { - "postcss": "^7.0.14" - } - }, - "postcss-custom-properties": { - "version": "8.0.11", - "requires": { - "postcss": "^7.0.17", - "postcss-values-parser": "^2.0.1" - } - }, - "postcss-custom-selectors": { - "version": "5.1.2", - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-dir-pseudo-class": { - "version": "5.0.0", - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-discard-comments": { - "version": "4.0.2", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-empty": { - "version": "4.0.1", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-overridden": { - "version": "4.0.1", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-double-position-gradients": { - "version": "1.0.0", - "requires": { - "postcss": "^7.0.5", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-env-function": { - "version": "2.0.2", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-flexbugs-fixes": { - "version": "4.2.1", - "requires": { - "postcss": "^7.0.26" - } - }, - "postcss-focus-visible": { - "version": "4.0.0", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-focus-within": { - "version": "3.0.0", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-font-variant": { - "version": "4.0.1", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-gap-properties": { - "version": "2.0.0", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-image-set-function": { - "version": "3.0.1", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-initial": { - "version": "3.0.4", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-lab-function": { - "version": "2.0.1", - "requires": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-load-config": { - "version": "2.1.2", - "requires": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "5.2.1", - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "resolve-from": { - "version": "3.0.0" - } - } - }, - "postcss-loader": { - "version": "3.0.0", - "requires": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "schema-utils": { - "version": "1.0.0", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "postcss-logical": { - "version": "3.0.0", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-media-minmax": { - "version": "4.0.0", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-merge-longhand": { - "version": "4.0.11", - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1" - } - } - }, - "postcss-merge-rules": { - "version": "4.0.3", - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1" - } - } - }, - "postcss-minify-gradients": { - "version": "4.0.2", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1" - } - } - }, - "postcss-minify-params": { - "version": "4.0.2", - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1" - } - } - }, - "postcss-minify-selectors": { - "version": "4.0.2", - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "2.0.0", - "requires": { - "postcss": "^7.0.5" - } - }, - "postcss-modules-local-by-default": { - "version": "3.0.3", - "requires": { - "icss-utils": "^4.1.1", - "postcss": "^7.0.32", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-modules-scope": { - "version": "2.2.0", - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - } - }, - "postcss-modules-values": { - "version": "3.0.0", - "requires": { - "icss-utils": "^4.0.0", - "postcss": "^7.0.6" - } - }, - "postcss-nesting": { - "version": "7.0.1", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-normalize": { - "version": "8.0.1", - "requires": { - "@csstools/normalize.css": "^10.1.0", - "browserslist": "^4.6.2", - "postcss": "^7.0.17", - "postcss-browser-comments": "^3.0.0", - "sanitize.css": "^10.0.0" - } - }, - "postcss-normalize-charset": { - "version": "4.0.1", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1" - } - } - }, - "postcss-normalize-positions": { - "version": "4.0.2", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1" - } - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1" - } - } - }, - "postcss-normalize-string": { - "version": "4.0.2", - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1" - } - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1" - } - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1" - } - } - }, - "postcss-normalize-url": { - "version": "4.0.1", - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "normalize-url": { - "version": "3.3.0" - }, - "postcss-value-parser": { - "version": "3.3.1" - } - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1" - } - } - }, - "postcss-ordered-values": { - "version": "4.1.2", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1" - } - } - }, - "postcss-overflow-shorthand": { - "version": "2.0.0", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-page-break": { - "version": "2.0.0", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-place": { - "version": "4.0.1", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-preset-env": { - "version": "6.7.0", - "requires": { - "autoprefixer": "^9.6.1", - "browserslist": "^4.6.4", - "caniuse-lite": "^1.0.30000981", - "css-blank-pseudo": "^0.1.4", - "css-has-pseudo": "^0.10.0", - "css-prefers-color-scheme": "^3.1.1", - "cssdb": "^4.4.0", - "postcss": "^7.0.17", - "postcss-attribute-case-insensitive": "^4.0.1", - "postcss-color-functional-notation": "^2.0.1", - "postcss-color-gray": "^5.0.0", - "postcss-color-hex-alpha": "^5.0.3", - "postcss-color-mod-function": "^3.0.3", - "postcss-color-rebeccapurple": "^4.0.1", - "postcss-custom-media": "^7.0.8", - "postcss-custom-properties": "^8.0.11", - "postcss-custom-selectors": "^5.1.2", - "postcss-dir-pseudo-class": "^5.0.0", - "postcss-double-position-gradients": "^1.0.0", - "postcss-env-function": "^2.0.2", - "postcss-focus-visible": "^4.0.0", - "postcss-focus-within": "^3.0.0", - "postcss-font-variant": "^4.0.0", - "postcss-gap-properties": "^2.0.0", - "postcss-image-set-function": "^3.0.1", - "postcss-initial": "^3.0.0", - "postcss-lab-function": "^2.0.1", - "postcss-logical": "^3.0.0", - "postcss-media-minmax": "^4.0.0", - "postcss-nesting": "^7.0.0", - "postcss-overflow-shorthand": "^2.0.0", - "postcss-page-break": "^2.0.0", - "postcss-place": "^4.0.1", - "postcss-pseudo-class-any-link": "^6.0.0", - "postcss-replace-overflow-wrap": "^3.0.0", - "postcss-selector-matches": "^4.0.0", - "postcss-selector-not": "^4.0.0" - } - }, - "postcss-pseudo-class-any-link": { - "version": "6.0.0", - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-reduce-initial": { - "version": "4.0.3", - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1" - } - } - }, - "postcss-replace-overflow-wrap": { - "version": "3.0.0", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-safe-parser": { - "version": "5.0.2", - "requires": { - "postcss": "^8.1.0" - }, - "dependencies": { - "postcss": { - "version": "8.3.5", - "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", - "source-map-js": "^0.6.2" - } - } - } - }, - "postcss-selector-matches": { - "version": "4.0.0", - "requires": { - "balanced-match": "^1.0.0", - "postcss": "^7.0.2" - } - }, - "postcss-selector-not": { - "version": "4.0.1", - "requires": { - "balanced-match": "^1.0.0", - "postcss": "^7.0.2" - } - }, - "postcss-selector-parser": { - "version": "6.0.6", - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "4.0.3", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1" - } - } - }, - "postcss-unique-selectors": { - "version": "4.0.1", - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - } - }, - "postcss-value-parser": { - "version": "4.1.0" - }, - "postcss-values-parser": { - "version": "2.0.1", - "requires": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "prelude-ls": { - "version": "1.2.1" - }, - "prepend-http": { - "version": "1.0.4" - }, - "pretty-bytes": { - "version": "5.6.0" - }, - "pretty-error": { - "version": "2.1.2", - "requires": { - "lodash": "^4.17.20", - "renderkid": "^2.0.4" - } - }, - "pretty-format": { - "version": "26.6.2", - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - } - } - }, - "process": { - "version": "0.11.10" - }, - "process-nextick-args": { - "version": "2.0.1" - }, - "progress": { - "version": "2.0.3" - }, - "promise": { - "version": "8.1.0", - "requires": { - "asap": "~2.0.6" - } - }, - "promise-inflight": { - "version": "1.0.1" - }, - "prompts": { - "version": "2.4.0", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "prop-types": { - "version": "15.7.2", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - }, - "dependencies": { - "react-is": { - "version": "16.13.1" - } - } - }, - "property-expr": { - "version": "1.5.1" - }, - "proxy-addr": { - "version": "2.0.7", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "prr": { - "version": "1.0.1" - }, - "psl": { - "version": "1.8.0" - }, - "public-encrypt": { - "version": "4.0.3", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0" - } - } - }, - "pump": { - "version": "3.0.0", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1" - }, - "q": { - "version": "1.5.1" - }, - "qs": { - "version": "6.7.0" - }, - "query-string": { - "version": "4.3.4", - "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.1" - }, - "querystring-es3": { - "version": "0.2.1" - }, - "querystringify": { - "version": "2.2.0" - }, - "queue-microtask": { - "version": "1.2.3" - }, - "raf": { - "version": "3.4.1", - "requires": { - "performance-now": "^2.1.0" - } - }, - "randombytes": { - "version": "2.1.0", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1" - }, - "raw-body": { - "version": "2.4.0", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.0" - } - } - }, - "react": { - "version": "17.0.2", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "react-app-polyfill": { - "version": "2.0.0", - "requires": { - "core-js": "^3.6.5", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.7", - "whatwg-fetch": "^3.4.1" - } - }, - "react-dev-utils": { - "version": "11.0.4", - "requires": { - "@babel/code-frame": "7.10.4", - "address": "1.1.2", - "browserslist": "4.14.2", - "chalk": "2.4.2", - "cross-spawn": "7.0.3", - "detect-port-alt": "1.1.6", - "escape-string-regexp": "2.0.0", - "filesize": "6.1.0", - "find-up": "4.1.0", - "fork-ts-checker-webpack-plugin": "4.1.6", - "global-modules": "2.0.0", - "globby": "11.0.1", - "gzip-size": "5.1.1", - "immer": "8.0.1", - "is-root": "2.1.0", - "loader-utils": "2.0.0", - "open": "^7.0.2", - "pkg-up": "3.1.0", - "prompts": "2.4.0", - "react-error-overlay": "^6.0.9", - "recursive-readdir": "2.2.2", - "shell-quote": "1.7.2", - "strip-ansi": "6.0.0", - "text-table": "0.2.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "browserslist": { - "version": "4.14.2", - "requires": { - "caniuse-lite": "^1.0.30001125", - "electron-to-chromium": "^1.3.564", - "escalade": "^3.0.2", - "node-releases": "^1.1.61" - } - }, - "escape-string-regexp": { - "version": "2.0.0" - }, - "globby": { - "version": "11.0.1", - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "ignore": { - "version": "5.1.8" - }, - "locate-path": { - "version": "3.0.0", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0" - }, - "pkg-up": { - "version": "3.1.0", - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "requires": { - "locate-path": "^3.0.0" - } - } - } - } - } - }, - "react-dial-knob": { - "version": "1.3.0", - "requires": {} - }, - "react-dom": { - "version": "17.0.2", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - } - }, - "react-error-overlay": { - "version": "6.0.9" - }, - "react-inspector": { - "version": "5.1.1", - "requires": { - "@babel/runtime": "^7.0.0", - "is-dom": "^1.0.0", - "prop-types": "^15.0.0" - } - }, - "react-is": { - "version": "17.0.2" - }, - "react-leaflet": { - "version": "3.2.1", - "requires": { - "@react-leaflet/core": "^1.1.0" - } - }, - "react-leaflet-bing-v2": { - "version": "5.2.3", - "requires": { - "react-leaflet-google-v2": "^5.1.3" - } - }, - "react-leaflet-google-v2": { - "version": "5.2.0", - "requires": { - "@react-leaflet/core": "^1.1.0", - "google-maps": "^3.3.0", - "react-leaflet": "^3.0.5" - } - }, - "react-lineto": { - "version": "3.2.1", - "requires": { - "prop-types": "15.7.2", - "react": "17.0.2" - } - }, - "react-refresh": { - "version": "0.8.3" - }, - "react-router": { - "version": "5.2.1", - "requires": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.15.4", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "isarray": { - "version": "0.0.1" - }, - "path-to-regexp": { - "version": "1.8.0", - "requires": { - "isarray": "0.0.1" - } - }, - "react-is": { - "version": "16.13.1" - } - } - }, - "react-router-dom": { - "version": "5.3.0", - "requires": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.2.1", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.15.4", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } - } - }, - "react-scripts": { - "version": "4.0.3", - "requires": { - "@babel/core": "7.12.3", - "@pmmmwh/react-refresh-webpack-plugin": "0.4.3", - "@svgr/webpack": "5.5.0", - "@typescript-eslint/eslint-plugin": "^4.5.0", - "@typescript-eslint/parser": "^4.5.0", - "babel-eslint": "^10.1.0", - "babel-jest": "^26.6.0", - "babel-loader": "8.1.0", - "babel-plugin-named-asset-import": "^0.3.7", - "babel-preset-react-app": "^10.0.0", - "bfj": "^7.0.2", - "camelcase": "^6.1.0", - "case-sensitive-paths-webpack-plugin": "2.3.0", - "css-loader": "4.3.0", - "dotenv": "8.2.0", - "dotenv-expand": "5.1.0", - "eslint": "^7.11.0", - "eslint-config-react-app": "^6.0.0", - "eslint-plugin-flowtype": "^5.2.0", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jest": "^24.1.0", - "eslint-plugin-jsx-a11y": "^6.3.1", - "eslint-plugin-react": "^7.21.5", - "eslint-plugin-react-hooks": "^4.2.0", - "eslint-plugin-testing-library": "^3.9.2", - "eslint-webpack-plugin": "^2.5.2", - "file-loader": "6.1.1", - "fs-extra": "^9.0.1", - "fsevents": "^2.1.3", - "html-webpack-plugin": "4.5.0", - "identity-obj-proxy": "3.0.0", - "jest": "26.6.0", - "jest-circus": "26.6.0", - "jest-resolve": "26.6.0", - "jest-watch-typeahead": "0.6.1", - "mini-css-extract-plugin": "0.11.3", - "optimize-css-assets-webpack-plugin": "5.0.4", - "pnp-webpack-plugin": "1.6.4", - "postcss-flexbugs-fixes": "4.2.1", - "postcss-loader": "3.0.0", - "postcss-normalize": "8.0.1", - "postcss-preset-env": "6.7.0", - "postcss-safe-parser": "5.0.2", - "prompts": "2.4.0", - "react-app-polyfill": "^2.0.0", - "react-dev-utils": "^11.0.3", - "react-refresh": "^0.8.3", - "resolve": "1.18.1", - "resolve-url-loader": "^3.1.2", - "sass-loader": "^10.0.5", - "semver": "7.3.2", - "style-loader": "1.3.0", - "terser-webpack-plugin": "4.2.3", - "ts-pnp": "1.2.0", - "url-loader": "4.1.1", - "webpack": "4.44.2", - "webpack-dev-server": "3.11.1", - "webpack-manifest-plugin": "2.2.0", - "workbox-webpack-plugin": "5.1.4" - }, - "dependencies": { - "@babel/core": { - "version": "7.12.3", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.1", - "@babel/parser": "^7.12.3", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1" - } - } - } - } - }, - "react-transition-group": { - "version": "4.4.2", - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - } - }, - "read-pkg": { - "version": "3.0.0", - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0" - } - } - }, - "read-pkg-up": { - "version": "3.0.0", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0" - }, - "path-exists": { - "version": "3.0.0" - } - } - }, - "readable-stream": { - "version": "2.3.7", - "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" - }, - "dependencies": { - "string_decoder": { - "version": "1.1.1", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "readdirp": { - "version": "3.6.0", - "optional": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "recursive-readdir": { - "version": "2.2.2", - "requires": { - "minimatch": "3.0.4" - } - }, - "redent": { - "version": "3.0.0", - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "regenerate": { - "version": "1.4.2" - }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.13.7" - }, - "regenerator-transform": { - "version": "0.14.5", - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-not": { - "version": "1.0.2", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regex-parser": { - "version": "2.2.11" - }, - "regexp.prototype.flags": { - "version": "1.3.1", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "regexpp": { - "version": "3.2.0" - }, - "regexpu-core": { - "version": "4.7.1", - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - } - }, - "regjsgen": { - "version": "0.5.2" - }, - "regjsparser": { - "version": "0.6.9", - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0" - } - } - }, - "relateurl": { - "version": "0.2.7" - }, - "remove-trailing-separator": { - "version": "1.1.0" - }, - "renderkid": { - "version": "2.0.7", - "requires": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1" - }, - "strip-ansi": { - "version": "3.0.1", - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "repeat-element": { - "version": "1.1.4" - }, - "repeat-string": { - "version": "1.6.1" - }, - "require-directory": { - "version": "2.1.1" - }, - "require-from-string": { - "version": "2.0.2" - }, - "require-main-filename": { - "version": "2.0.0" - }, - "requires-port": { - "version": "1.0.0" - }, - "resolve": { - "version": "1.18.1", - "requires": { - "is-core-module": "^2.0.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0" - }, - "resolve-pathname": { - "version": "3.0.0" - }, - "resolve-url": { - "version": "0.2.1" - }, - "resolve-url-loader": { - "version": "3.1.4", - "requires": { - "adjust-sourcemap-loader": "3.0.0", - "camelcase": "5.3.1", - "compose-function": "3.0.3", - "convert-source-map": "1.7.0", - "es6-iterator": "2.0.3", - "loader-utils": "1.2.3", - "postcss": "7.0.36", - "rework": "1.0.1", - "rework-visit": "1.0.0", - "source-map": "0.6.1" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1" - }, - "convert-source-map": { - "version": "1.7.0", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "emojis-list": { - "version": "2.1.0" - }, - "json5": { - "version": "1.0.1", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.2.3", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - } - }, - "source-map": { - "version": "0.6.1" - } - } - }, - "ret": { - "version": "0.1.15" - }, - "retry": { - "version": "0.12.0" - }, - "reusify": { - "version": "1.0.4" - }, - "rework": { - "version": "1.0.1", - "requires": { - "convert-source-map": "^0.3.3", - "css": "^2.0.0" - }, - "dependencies": { - "convert-source-map": { - "version": "0.3.5" - } - } - }, - "rework-visit": { - "version": "1.0.0" - }, - "rgb-regex": { - "version": "1.0.1" - }, - "rgba-regex": { - "version": "1.0.0" - }, - "rimraf": { - "version": "2.7.1", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rollup": { - "version": "1.32.1", - "requires": { - "@types/estree": "*", - "@types/node": "*", - "acorn": "^7.1.0" - } - }, - "rollup-plugin-babel": { - "version": "4.4.0", - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "rollup-pluginutils": "^2.8.1" - } - }, - "rollup-plugin-terser": { - "version": "5.3.1", - "requires": { - "@babel/code-frame": "^7.5.5", - "jest-worker": "^24.9.0", - "rollup-pluginutils": "^2.8.2", - "serialize-javascript": "^4.0.0", - "terser": "^4.6.2" - }, - "dependencies": { - "jest-worker": { - "version": "24.9.0", - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - } - }, - "serialize-javascript": { - "version": "4.0.0", - "requires": { - "randombytes": "^2.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "rollup-pluginutils": { - "version": "2.8.2", - "requires": { - "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1" - } - } - }, - "rsvp": { - "version": "4.8.5" - }, - "run-parallel": { - "version": "1.2.0", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "run-queue": { - "version": "1.0.3", - "requires": { - "aproba": "^1.1.1" - } - }, - "safe-buffer": { - "version": "5.1.2" - }, - "safe-regex": { - "version": "1.1.0", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2" - }, - "sane": { - "version": "4.1.0", - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "braces": { - "version": "2.3.2", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "cross-spawn": { - "version": "6.0.5", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "fill-range": { - "version": "4.0.0", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "get-stream": { - "version": "4.1.0", - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1" - }, - "is-number": { - "version": "3.0.0", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-stream": { - "version": "1.1.0" - }, - "micromatch": { - "version": "3.1.10", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1" - }, - "semver": { - "version": "5.7.1" - }, - "shebang-command": { - "version": "1.2.0", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0" - }, - "to-regex-range": { - "version": "2.1.1", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "which": { - "version": "1.3.1", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "sanitize.css": { - "version": "10.0.0" - }, - "sass-loader": { - "version": "10.2.0", - "requires": { - "klona": "^2.0.4", - "loader-utils": "^2.0.0", - "neo-async": "^2.6.2", - "schema-utils": "^3.0.0", - "semver": "^7.3.2" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "sax": { - "version": "1.2.4" - }, - "saxes": { - "version": "5.0.1", - "requires": { - "xmlchars": "^2.2.0" - } - }, - "scheduler": { - "version": "0.20.2", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "2.7.1", - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "select-hose": { - "version": "2.0.0" - }, - "selfsigned": { - "version": "1.10.11", - "requires": { - "node-forge": "^0.10.0" - } - }, - "semver": { - "version": "7.3.2" - }, - "send": { - "version": "0.17.1", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0" - } - } - }, - "ms": { - "version": "2.1.1" - } - } - }, - "serialize-javascript": { - "version": "5.0.1", - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3" - }, - "ms": { - "version": "2.0.0" - }, - "setprototypeof": { - "version": "1.1.0" - } - } - }, - "serve-static": { - "version": "1.14.1", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0" - }, - "set-value": { - "version": "2.0.1", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1" - } - } - }, - "setimmediate": { - "version": "1.0.5" - }, - "setprototypeof": { - "version": "1.1.1" - }, - "sha.js": { - "version": "2.4.11", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "2.0.0", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0" - }, - "shell-quote": { - "version": "1.7.2" - }, - "shellwords": { - "version": "0.1.1", - "optional": true - }, - "side-channel": { - "version": "1.0.4", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.3" - }, - "simple-swizzle": { - "version": "0.2.2", - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2" - } - } - }, - "sisteransi": { - "version": "1.0.5" - }, - "slash": { - "version": "3.0.0" - }, - "slice-ansi": { - "version": "4.0.0", - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - } - } - }, - "snapdragon": { - "version": "0.8.2", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1" - }, - "kind-of": { - "version": "5.1.0" - }, - "ms": { - "version": "2.0.0" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "sockjs": { - "version": "0.3.21", - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", - "websocket-driver": "^0.7.4" - }, - "dependencies": { - "uuid": { - "version": "3.4.0" - } - } - }, - "sockjs-client": { - "version": "1.5.1", - "requires": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", - "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.5.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "sort-keys": { - "version": "1.1.2", - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "source-list-map": { - "version": "2.0.1" - }, - "source-map": { - "version": "0.5.7" - }, - "source-map-js": { - "version": "0.6.2" - }, - "source-map-resolve": { - "version": "0.5.3", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.19", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1" - } - } - }, - "source-map-url": { - "version": "0.4.1" - }, - "sourcemap-codec": { - "version": "1.4.8" - }, - "spdx-correct": { - "version": "3.1.1", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.9" - }, - "spdy": { - "version": "4.0.2", - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "split-string": { - "version": "3.1.0", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3" - }, - "ssri": { - "version": "8.0.1", - "requires": { - "minipass": "^3.1.1" - } - }, - "stable": { - "version": "0.1.8" - }, - "stack-utils": { - "version": "2.0.3", - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0" - } - } - }, - "stackframe": { - "version": "1.2.0" - }, - "static-extend": { - "version": "0.1.2", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0" - } - } - }, - "statuses": { - "version": "1.5.0" - }, - "stream-browserify": { - "version": "2.0.2", - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.3", - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.1" - }, - "strict-uri-encode": { - "version": "1.1.0" - }, - "string_decoder": { - "version": "1.3.0", - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1" - } - } - }, - "string-length": { - "version": "4.0.2", - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-natural-compare": { - "version": "3.0.1" - }, - "string-width": { - "version": "4.2.2", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0" - } - } - }, - "string.prototype.matchall": { - "version": "4.0.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", - "side-channel": "^1.0.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "stringify-object": { - "version": "3.3.0", - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-bom": { - "version": "4.0.0" - }, - "strip-comments": { - "version": "1.0.2", - "requires": { - "babel-extract-comments": "^1.0.0", - "babel-plugin-transform-object-rest-spread": "^6.26.0" - } - }, - "strip-eof": { - "version": "1.0.0" - }, - "strip-final-newline": { - "version": "2.0.0" - }, - "strip-indent": { - "version": "3.0.0", - "requires": { - "min-indent": "^1.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1" - }, - "style-loader": { - "version": "1.3.0", - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^2.7.0" - } - }, - "stylehacks": { - "version": "4.0.3", - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "stylis": { - "version": "4.0.10" - }, - "supports-color": { - "version": "5.5.0", - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "svg-parser": { - "version": "2.0.4" - }, - "svgo": { - "version": "1.3.2", - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "dependencies": { - "css-select": { - "version": "2.1.0", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-what": { - "version": "3.4.2" - }, - "dom-serializer": { - "version": "0.2.2", - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "domutils": { - "version": "1.7.0", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - }, - "dependencies": { - "domelementtype": { - "version": "1.3.1" - } - } - }, - "nth-check": { - "version": "1.0.2", - "requires": { - "boolbase": "~1.0.0" - } - } - } - }, - "symbol-tree": { - "version": "3.2.4" - }, - "table": { - "version": "6.7.1", - "requires": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.6.0", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0" - } - } - }, - "tapable": { - "version": "1.1.3" - }, - "tar": { - "version": "6.1.0", - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4" - } - } - }, - "temp-dir": { - "version": "1.0.0" - }, - "tempy": { - "version": "0.3.0", - "requires": { - "temp-dir": "^1.0.0", - "type-fest": "^0.3.1", - "unique-string": "^1.0.0" - }, - "dependencies": { - "type-fest": { - "version": "0.3.1" - } - } - }, - "terminal-link": { - "version": "2.1.1", - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "terser": { - "version": "4.8.0", - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "commander": { - "version": "2.20.3" - }, - "source-map": { - "version": "0.6.1" - } - } - }, - "terser-webpack-plugin": { - "version": "4.2.3", - "requires": { - "cacache": "^15.0.5", - "find-cache-dir": "^3.3.1", - "jest-worker": "^26.5.0", - "p-limit": "^3.0.2", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "source-map": "^0.6.1", - "terser": "^5.3.4", - "webpack-sources": "^1.4.3" - }, - "dependencies": { - "commander": { - "version": "2.20.3" - }, - "find-cache-dir": { - "version": "3.3.1", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "make-dir": { - "version": "3.1.0", - "requires": { - "semver": "^6.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "requires": { - "find-up": "^4.0.0" - } - }, - "schema-utils": { - "version": "3.0.0", - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "semver": { - "version": "6.3.0" - }, - "source-map": { - "version": "0.6.1" - }, - "terser": { - "version": "5.7.1", - "requires": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" - }, - "dependencies": { - "source-map": { - "version": "0.7.3" - } - } - } - } - }, - "test-exclude": { - "version": "6.0.0", - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-table": { - "version": "0.2.0" - }, - "throat": { - "version": "5.0.0" - }, - "through2": { - "version": "2.0.5", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "thunky": { - "version": "1.1.0" - }, - "timers-browserify": { - "version": "2.0.12", - "requires": { - "setimmediate": "^1.0.4" - } - }, - "timsort": { - "version": "0.3.0" - }, - "tiny-invariant": { - "version": "1.1.0" - }, - "tiny-warning": { - "version": "1.0.3" - }, - "tmpl": { - "version": "1.0.4" - }, - "to-arraybuffer": { - "version": "1.0.1" - }, - "to-fast-properties": { - "version": "2.0.0" - }, - "to-object-path": { - "version": "0.3.0", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.0" - }, - "tough-cookie": { - "version": "4.0.0", - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "dependencies": { - "universalify": { - "version": "0.1.2" - } - } - }, - "tr46": { - "version": "2.1.0", - "requires": { - "punycode": "^2.1.1" - } - }, - "tryer": { - "version": "1.0.1" - }, - "ts-pnp": { - "version": "1.2.0" - }, - "tsconfig-paths": { - "version": "3.9.0", - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "requires": { - "minimist": "^1.2.0" - } - }, - "strip-bom": { - "version": "3.0.0" - } - } - }, - "tslib": { - "version": "2.3.0" - }, - "tsutils": { - "version": "3.21.0", - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1" - } - } - }, - "tty-browserify": { - "version": "0.0.0" - }, - "type": { - "version": "1.2.0" - }, - "type-check": { - "version": "0.4.0", - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8" - }, - "type-fest": { - "version": "0.13.1", - "optional": true, - "peer": true - }, - "type-is": { - "version": "1.6.18", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6" - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.7.4", - "peer": true - }, - "unbox-primitive": { - "version": "1.0.1", - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4" - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0" - }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0" - }, - "union-value": { - "version": "1.0.1", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1" - } - } - }, - "uniq": { - "version": "1.0.1" - }, - "uniqs": { - "version": "2.0.0" - }, - "unique-filename": { - "version": "1.1.1", - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unique-string": { - "version": "1.0.0", - "requires": { - "crypto-random-string": "^1.0.0" - } - }, - "universalify": { - "version": "2.0.0" - }, - "unpipe": { - "version": "1.0.0" - }, - "unquote": { - "version": "1.1.1" - }, - "unset-value": { - "version": "1.0.0", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4" - } - } - }, - "upath": { - "version": "1.2.0" - }, - "uri-js": { - "version": "4.4.1", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0" - }, - "url": { - "version": "0.11.0", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2" - }, - "querystring": { - "version": "0.2.0" - } - } - }, - "url-loader": { - "version": "4.1.1", - "requires": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.27", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "url-parse": { - "version": "1.5.1", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "use": { - "version": "3.1.1" - }, - "util": { - "version": "0.11.1", - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3" - } - } - }, - "util-deprecate": { - "version": "1.0.2" - }, - "util.promisify": { - "version": "1.0.0", - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "utila": { - "version": "0.4.0" - }, - "utils-merge": { - "version": "1.0.1" - }, - "uuid": { - "version": "8.3.2", - "optional": true - }, - "v8-compile-cache": { - "version": "2.3.0" - }, - "v8-to-istanbul": { - "version": "7.1.2", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3" - } - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "value-equal": { - "version": "1.0.1" - }, - "vary": { - "version": "1.1.2" - }, - "vendors": { - "version": "1.0.4" - }, - "vm-browserify": { - "version": "1.1.2" - }, - "w3c-hr-time": { - "version": "1.0.2", - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.7", - "requires": { - "makeerror": "1.0.x" - } - }, - "watchpack": { - "version": "1.7.5", - "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" - } - }, - "watchpack-chokidar2": { - "version": "2.0.1", - "optional": true, - "requires": { - "chokidar": "^2.1.8" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "optional": true - }, - "braces": { - "version": "2.3.2", - "optional": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "fill-range": { - "version": "4.0.0", - "optional": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "optional": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "optional": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "optional": true - }, - "is-number": { - "version": "3.0.0", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "optional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "readdirp": { - "version": "2.2.1", - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "wbuf": { - "version": "1.7.3", - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "webidl-conversions": { - "version": "6.1.0" - }, - "webpack": { - "version": "4.44.2", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.3.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.2" - }, - "braces": { - "version": "2.3.2", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "cacache": { - "version": "12.0.4", - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "chownr": { - "version": "1.1.4" - }, - "eslint-scope": { - "version": "4.0.3", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "fill-range": { - "version": "4.0.0", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-extendable": { - "version": "0.1.1" - }, - "is-number": { - "version": "3.0.0", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-wsl": { - "version": "1.1.0" - }, - "json5": { - "version": "1.0.1", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "lru-cache": { - "version": "5.1.1", - "requires": { - "yallist": "^3.0.2" - } - }, - "micromatch": { - "version": "3.1.10", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "rimraf": { - "version": "2.7.1", - "requires": { - "glob": "^7.1.3" - } - }, - "schema-utils": { - "version": "1.0.0", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "serialize-javascript": { - "version": "4.0.0", - "requires": { - "randombytes": "^2.1.0" - } - }, - "source-map": { - "version": "0.6.1" - }, - "ssri": { - "version": "6.0.2", - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "terser-webpack-plugin": { - "version": "1.4.5", - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "yallist": { - "version": "3.1.1" - } - } - }, - "webpack-dev-middleware": { - "version": "3.7.3", - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "mime": { - "version": "2.5.2" - } - } - }, - "webpack-dev-server": { - "version": "3.11.1", - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.8", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "sockjs-client": "^1.5.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1" - }, - "anymatch": { - "version": "2.0.0", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1" - }, - "braces": { - "version": "2.3.2", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "camelcase": { - "version": "5.3.1" - }, - "chokidar": { - "version": "2.1.8", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "cliui": { - "version": "5.0.0", - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0" - }, - "strip-ansi": { - "version": "5.2.0", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "emoji-regex": { - "version": "7.0.3" - }, - "fill-range": { - "version": "4.0.0", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-up": { - "version": "3.0.0", - "requires": { - "locate-path": "^3.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "import-local": { - "version": "2.0.0", - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "is-absolute-url": { - "version": "3.0.3" - }, - "is-binary-path": { - "version": "1.0.1", - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-extendable": { - "version": "0.1.1" - }, - "is-fullwidth-code-point": { - "version": "2.0.0" - }, - "is-number": { - "version": "3.0.0", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "locate-path": { - "version": "3.0.0", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "micromatch": { - "version": "3.1.10", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "p-locate": { - "version": "3.0.0", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0" - }, - "pkg-dir": { - "version": "3.0.0", - "requires": { - "find-up": "^3.0.0" - } - }, - "readdirp": { - "version": "2.2.1", - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0" - }, - "schema-utils": { - "version": "1.0.0", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "6.3.0" - }, - "string-width": { - "version": "3.1.0", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0" - }, - "strip-ansi": { - "version": "5.2.0", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "6.1.0", - "requires": { - "has-flag": "^3.0.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0" - }, - "strip-ansi": { - "version": "5.2.0", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "ws": { - "version": "6.2.2", - "requires": { - "async-limiter": "~1.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "yargs-parser": { - "version": "13.1.2", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "webpack-log": { - "version": "2.0.0", - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "ansi-colors": { - "version": "3.2.4" - }, - "uuid": { - "version": "3.4.0" - } - } - }, - "webpack-manifest-plugin": { - "version": "2.2.0", - "requires": { - "fs-extra": "^7.0.0", - "lodash": ">=3.5 <5", - "object.entries": "^1.1.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "universalify": { - "version": "0.1.2" - } - } - }, - "webpack-sources": { - "version": "1.4.3", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1" - } - } - }, - "websocket-driver": { - "version": "0.7.4", - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4" - }, - "whatwg-encoding": { - "version": "1.0.5", - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-fetch": { - "version": "3.6.2" - }, - "whatwg-mimetype": { - "version": "2.3.0" - }, - "whatwg-url": { - "version": "8.7.0", - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "2.0.2", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-module": { - "version": "2.0.0" - }, - "word-wrap": { - "version": "1.2.3" - }, - "workbox-background-sync": { - "version": "5.1.4", - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-broadcast-update": { - "version": "5.1.4", - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-build": { - "version": "5.1.4", - "requires": { - "@babel/core": "^7.8.4", - "@babel/preset-env": "^7.8.4", - "@babel/runtime": "^7.8.4", - "@hapi/joi": "^15.1.0", - "@rollup/plugin-node-resolve": "^7.1.1", - "@rollup/plugin-replace": "^2.3.1", - "@surma/rollup-plugin-off-main-thread": "^1.1.1", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^8.1.0", - "glob": "^7.1.6", - "lodash.template": "^4.5.0", - "pretty-bytes": "^5.3.0", - "rollup": "^1.31.1", - "rollup-plugin-babel": "^4.3.3", - "rollup-plugin-terser": "^5.3.1", - "source-map": "^0.7.3", - "source-map-url": "^0.4.0", - "stringify-object": "^3.3.0", - "strip-comments": "^1.0.2", - "tempy": "^0.3.0", - "upath": "^1.2.0", - "workbox-background-sync": "^5.1.4", - "workbox-broadcast-update": "^5.1.4", - "workbox-cacheable-response": "^5.1.4", - "workbox-core": "^5.1.4", - "workbox-expiration": "^5.1.4", - "workbox-google-analytics": "^5.1.4", - "workbox-navigation-preload": "^5.1.4", - "workbox-precaching": "^5.1.4", - "workbox-range-requests": "^5.1.4", - "workbox-routing": "^5.1.4", - "workbox-strategies": "^5.1.4", - "workbox-streams": "^5.1.4", - "workbox-sw": "^5.1.4", - "workbox-window": "^5.1.4" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "source-map": { - "version": "0.7.3" - }, - "universalify": { - "version": "0.1.2" - } - } - }, - "workbox-cacheable-response": { - "version": "5.1.4", - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-core": { - "version": "5.1.4" - }, - "workbox-expiration": { - "version": "5.1.4", - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-google-analytics": { - "version": "5.1.4", - "requires": { - "workbox-background-sync": "^5.1.4", - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4", - "workbox-strategies": "^5.1.4" - } - }, - "workbox-navigation-preload": { - "version": "5.1.4", - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-precaching": { - "version": "5.1.4", - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-range-requests": { - "version": "5.1.4", - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-routing": { - "version": "5.1.4", - "requires": { - "workbox-core": "^5.1.4" - } - }, - "workbox-strategies": { - "version": "5.1.4", - "requires": { - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4" - } - }, - "workbox-streams": { - "version": "5.1.4", - "requires": { - "workbox-core": "^5.1.4", - "workbox-routing": "^5.1.4" - } - }, - "workbox-sw": { - "version": "5.1.4" - }, - "workbox-webpack-plugin": { - "version": "5.1.4", - "requires": { - "@babel/runtime": "^7.5.5", - "fast-json-stable-stringify": "^2.0.0", - "source-map-url": "^0.4.0", - "upath": "^1.1.2", - "webpack-sources": "^1.3.0", - "workbox-build": "^5.1.4" - } - }, - "workbox-window": { - "version": "5.1.4", - "requires": { - "workbox-core": "^5.1.4" - } - }, - "worker-farm": { - "version": "1.7.0", - "requires": { - "errno": "~0.1.7" - } - }, - "worker-rpc": { - "version": "0.1.1", - "requires": { - "microevent.ts": "~0.1.1" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - } - } - }, - "wrappy": { - "version": "1.0.2" - }, - "write-file-atomic": { - "version": "3.0.3", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.1", - "requires": {} - }, - "xml-name-validator": { - "version": "3.0.0" - }, - "xmlchars": { - "version": "2.2.0" - }, - "xtend": { - "version": "4.0.2" - }, - "y18n": { - "version": "4.0.3" - }, - "yallist": { - "version": "4.0.0" - }, - "yaml": { - "version": "1.10.2" - }, - "yargs": { - "version": "15.4.1", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1" - } - } - }, - "yocto-queue": { - "version": "0.1.0" - } - } -} diff --git a/ReactClient/package.json b/ReactClient/package.json deleted file mode 100644 index 2daa58f..0000000 --- a/ReactClient/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "pwa", - "version": "0.1.0", - "private": true, - "dependencies": { - "@elfalem/leaflet-curve": "^0.8.2", - "@emotion/react": "^11.4.1", - "@emotion/styled": "^11.3.0", - "@mui/icons-material": "^5.0.1", - "@mui/material": "^5.0.1", - "@mui/styles": "^5.0.1", - "@testing-library/jest-dom": "^5.14.1", - "@testing-library/react": "^11.2.7", - "@testing-library/user-event": "^12.8.3", - "console-feed": "^3.2.2", - "geolib": "^3.3.1", - "json-ref-lite": "^1.1.0", - "leaflet": "^1.7.1", - "leaflet-easybutton": "^2.4.0", - "leaflet-marker-rotation": "^0.4.0", - "leaflet.marker.slideto": "^0.2.0", - "react": "^17.0.2", - "react-dial-knob": "^1.3.0", - "react-dom": "^17.0.2", - "react-leaflet": "^3.2.1", - "react-leaflet-bing-v2": "^5.2.3", - "react-lineto": "^3.2.1", - "react-router-dom": "^5.3.0", - "react-scripts": "4.0.3", - "rimraf": "^2.7.1" - }, - "scripts": { - "start": "rimraf ./build && react-scripts start", - "build": "rimraf ./build && react-scripts build", - "test": "react-scripts test", - "eject": "react-scripts eject", - "serve": "http-server build -p 27010", - "buildserve": "rimraf ./build && react-scripts build && http-server build -p 27010" - }, - "eslintConfig": { - "extends": [ - "react-app", - "react-app/jest" - ] - }, - "browserslist": [ - ">0.2%", - "not dead", - "not op_mini all" - ] -} diff --git a/ReactClient/public/config/PlanePanelProfile.json b/ReactClient/public/config/PlanePanelProfile.json deleted file mode 100644 index 7908aa9..0000000 --- a/ReactClient/public/config/PlanePanelProfile.json +++ /dev/null @@ -1,431 +0,0 @@ -[ - { - "planeId": "kodiak", - "name": "Kodiak 100", - "panels": [ - { - "panelId": "kodiak", - "name": "Kodiak Full Instrumentation", - "rootPath": "kodiak", - "panelSize": { - "width": 2458, - "height": 1280 - }, - "showMenuBar": true, - "enableMap": true, - "subPanels": [ - { - "panelId": "pfd-mfd", - "name": "PFD MFD", - "definitions": "KODIAK_PFD_MFD_DEF", - "rootPath": "pfdmfd", - "left": 0, - "top": 0, - "scale": 1 - }, - { - "panelId": "electrical", - "name": "Electrical", - "definitions": "KODIAK_ELECTRICAL_DEF", - "rootPath": "electrical", - "left": 0, - "top": 910, - "scale": 1 - }, - { - "panelId": "lights", - "name": "Lights", - "definitions": "KODIAK_LIGHTS_DEF", - "rootPath": "lights", - "left": 830, - "top": 910, - "scale": 1 - }, - { - "panelId": "fuel", - "name": "Fuel", - "definitions": "KODIAK_FUEL_DEF", - "rootPath": "fuel", - "left": 1765, - "top": 980, - "scale": 1 - }, - { - "panelId": "oxygen", - "name": "Oxygen", - "definitions": "KODIAK_OXYGEN_DEF", - "rootPath": "oxygen", - "left": 2215, - "top": 985, - "scale": 1 - } - ] - }, - { - "panelId": "kodiak-wo-pfd-mfd", - "name": "Kodiak Full Instrumentation without PFD/MFD", - "rootPath": "kodiak", - "panelSize": { - "width": 2458, - "height": 380 - }, - "showMenuBar": false, - "enableMap": false, - "subPanels": [ - { - "panelId": "electrical", - "name": "Electrical", - "definitions": "KODIAK_ELECTRICAL_DEF", - "rootPath": "electrical", - "left": 0, - "top": 0, - "scale": 0.8 - }, - { - "panelId": "lights", - "name": "Lights", - "definitions": "KODIAK_LIGHTS_DEF", - "rootPath": "lights", - "left": 850, - "top": 0, - "scale": 0.8 - }, - { - "panelId": "fuel", - "name": "Fuel", - "definitions": "KODIAK_FUEL_DEF", - "rootPath": "fuel", - "left": 1825, - "top": 75, - "scale": 0.8 - }, - { - "panelId": "oxygen", - "name": "Oxygen", - "definitions": "KODIAK_OXYGEN_DEF", - "rootPath": "oxygen", - "left": 2350, - "top": 75, - "scale": 0.8 - } - ] - }, - { - "panelId": "kodiak-pfd", - "name": "Kodiak PFD", - "rootPath": "kodiak", - "panelSize": { - "width": 1408, - "height": 914 - }, - "showMenuBar": true, - "enableMap": true, - "subPanels": [ - { - "panelId": "pfd", - "name": "PFD", - "definitions": "KODIAK_PFD_ONLY_DEF", - "rootPath": "pfdmfd", - "left": 0, - "top": 0, - "scale": 1 - } - ] - }, - { - "panelId": "kodiak-mfd", - "name": "Kodiak MFD", - "rootPath": "kodiak", - "panelSize": { - "width": 1408, - "height": 914 - }, - "showMenuBar": false, - "enableMap": false, - "subPanels": [ - { - "panelId": "mfd", - "name": "MFD", - "definitions": "KODIAK_MFD_ONLY_DEF", - "rootPath": "pfdmfd", - "left": 0, - "top": 0, - "scale": 1 - } - ] - }, - { - "panelId": "kodiak-electrical", - "name": "Kodiak Electrical", - "rootPath": "kodiak", - "panelSize": { - "width": 812, - "height": 377 - }, - "showMenuBar": false, - "enableMap": false, - "subPanels": [ - { - "panelId": "electrical", - "name": "Electrical", - "definitions": "KODIAK_ELECTRICAL_DEF", - "rootPath": "electrical", - "left": 0, - "top": 0, - "scale": 1 - } - - ] - }, - { - "panelId": "kodiak-lights", - "name": "Kodiak Lights", - "rootPath": "kodiak", - "panelSize": { - "width": 929, - "height": 380 - }, - "showMenuBar": false, - "enableMap": false, - "subPanels": [ - { - "panelId": "lights", - "name": "Lights", - "definitions": "KODIAK_LIGHTS_DEF", - "rootPath": "lights", - "left": 0, - "top": 0, - "scale": 1 - } - ] - }, - { - "panelId": "kodiak-fuel", - "name": "Kodiak Fuel Switch", - "rootPath": "kodiak", - "panelSize": { - "width": 440, - "height": 226 - }, - "showMenuBar": false, - "enableMap": false, - "subPanels": [ - { - "panelId": "fuel", - "name": "Fuel", - "definitions": "KODIAK_FUEL_DEF", - "rootPath": "fuel", - "left": 0, - "top": 0, - "scale": 1 - } - ] - }, - { - "panelId": "kodiak-oxygen", - "name": "Kodiak Oxygen Switch", - "rootPath": "kodiak", - "panelSize": { - "width": 215, - "height": 215 - }, - "showMenuBar": false, - "enableMap": false, - "subPanels": [ - { - "panelId": "oxygen", - "name": "Oxygen", - "definitions": "KODIAK_OXYGEN_DEF", - "rootPath": "oxygen", - "left": 0, - "top": 0, - "scale": 1 - } - ] - } - ] - }, - { - "planeId": "pmdg-737-700", - "name": "PMDG 737-700", - "panels": [ - { - "panelId": "pmdg-737-700-full-instrumentation", - "name": "PMDG 737 Full Instrumentation", - "rootPath": "pmdg-737-700", - "panelSize": { - "width": 1920, - "height": 1010 - }, - "showMenuBar": true, - "enableMap": true, - "subPanels": [ - { - "panelId": "mcp", - "name": "MCP", - "rootPath": "mcp", - "definitions": "PMDG_737_700_MCP_DEF", - "left": 0, - "top": 0, - "scale": 1 - }, - { - "panelId": "efis-cpt", - "name": "EFIS-CPT", - "rootPath": "efis-cpt", - "definitions": "PMDG_737_700_EFIS_CPT_DEF", - "left": 90, - "top": 335, - "scale": 1 - }, - { - "panelId": "xpndr", - "name": "XPNDR", - "rootPath": "xpndr", - "definitions": "PMDG_737_700_XPNDR_DEF", - "left": 210, - "top": 735, - "scale": 1 - }, - { - "panelId": "radio", - "name": "Radio", - "rootPath": "radio", - "definitions": "PMDG_737_700_RADIO_DEF", - "left": 850, - "top": 335, - "scale": 1 - } - ] - }, - { - "panelId": "pmdg-737-700-full-instrumentation-no-mcp", - "name": "PMDG 737 Full Instrumentation without MCP", - "rootPath": "pmdg-737-700", - "panelSize": { - "width": 1920, - "height": 900 - }, - "showMenuBar": false, - "enableMap": false, - "subPanels": [ - { - "panelId": "radio", - "name": "Radio", - "rootPath": "radio", - "definitions": "PMDG_737_700_RADIO_DEF", - "left": 200, - "top": 25, - "scale": 1.4 - }, - { - "panelId": "efis-cpt", - "name": "EFIS-CPT", - "rootPath": "efis-cpt", - "definitions": "PMDG_737_700_EFIS_CPT_DEF", - "left": 100, - "top": 525, - "scale": 1.2 - }, - { - "panelId": "xpndr", - "name": "XPNDR", - "rootPath": "xpndr", - "definitions": "PMDG_737_700_XPNDR_DEF", - "left": 750, - "top": 550, - "scale": 1.4 - } - ] - }, - { - "panelId": "pmdg-737-700-mcp", - "name": "PMDG 737 MCP", - "rootPath": "pmdg-737-700", - "panelSize": { - "width": 1920, - "height": 329 - }, - "showMenuBar": true, - "enableMap": false, - "subPanels": [ - { - "panelId": "mcp", - "name": "MCP", - "rootPath": "mcp", - "definitions": "PMDG_737_700_MCP_DEF", - "left": 0, - "top": 0, - "scale": 1 - } - ] - }, - { - "panelId": "pmdg-737-700-radio", - "name": "PMDG 737 Radio", - "rootPath": "pmdg-737-700", - "panelSize": { - "width": 995, - "height": 485 - }, - "showMenuBar": false, - "enableMap": false, - "subPanels": [ - { - "panelId": "radio", - "name": "Radio", - "rootPath": "radio", - "definitions": "PMDG_737_700_RADIO_DEF", - "left": 0, - "top": 0, - "scale": 1 - } - ] - }, - { - "panelId": "pmdg-737-700-xpndr", - "name": "PMDG 737 Transponder", - "rootPath": "pmdg-737-700", - "panelSize": { - "width": 498, - "height": 259 - }, - "showMenuBar": false, - "enableMap": false, - "subPanels": [ - { - "panelId": "xpndr", - "name": "XPNDR", - "rootPath": "xpndr", - "definitions": "PMDG_737_700_XPNDR_DEF", - "left": 0, - "top": 0, - "scale": 1 - } - ] - }, - { - "panelId": "pmdg-737-700-efis-cpt", - "name": "PMDG 737 EFIS (Captain)", - "rootPath": "pmdg-737-700", - "panelSize": { - "width": 724, - "height": 394 - }, - "showMenuBar": false, - "enableMap": false, - "subPanels": [ - { - "panelId": "efis-cpt", - "name": "EFIS-CPT", - "rootPath": "efis-cpt", - "definitions": "PMDG_737_700_EFIS_CPT_DEF", - "left": 0, - "top": 0, - "scale": 1 - } - ] - } - ] - } -] \ No newline at end of file diff --git a/ReactClient/public/config/mobiFlightPresets/msfs2020_eventids.cip b/ReactClient/public/config/mobiFlightPresets/msfs2020_eventids.cip deleted file mode 100644 index cf5b791..0000000 --- a/ReactClient/public/config/mobiFlightPresets/msfs2020_eventids.cip +++ /dev/null @@ -1,4666 +0,0 @@ -Aerosoft/CRJ 550-700-1000/Air Condition / Pressurization:GROUP -ASCRJ_AIRC_AFT_CARGO_AIRCOND_SWITCH -ASCRJ_AIRC_PACK_L_SWITCH -ASCRJ_AIRC_PACK_R_SWITCH -ASCRJ_AIRC_RECIC_FAN_SWCH_OFF -ASCRJ_AIRC_RECIC_FAN_SWCH_ON -ASCRJ_AIRC_RECIRC_FAN_SWITCH -ASCRJ_AIRC_RECIRC_FAN_SWITCH_OFF -ASCRJ_AIRC_RECIRC_FAN_SWITCH_ON -ASCRJ_AIRC_TEMPCTRL_CABIN_DEC -ASCRJ_AIRC_TEMPCTRL_CABIN_INC -ASCRJ_AIRC_TEMPCTRL_CKPT_DEC -ASCRJ_AIRC_TEMPCTRL_CKPT_INC -ASCRJ_OVHD_OXY_BUTTON_ON_PRESS -ASCRJ_OVHD_OXY_BUTTON_ON_RELEASE -ASCRJ_PRESS_EMER_DEPRESS_BTN_REL -ASCRJ_PRESS_EMER_DEPRESS_PRESS -ASCRJ_PRESS_LDG_ELEV_KNOB_DEC -ASCRJ_PRESS_LDG_ELEV_KNOB_INC -ASCRJ_PRESS_PRESS_CONT_BTN_PRESS -ASCRJ_PRESS_PRESS_CONT_BTN_REL -ASCRJ_ROT_LDG_ELEV_KNOB_DEC_FAST -ASCRJ_ROT_LDG_ELEV_KNOB_INC_FAST -Aerosoft/CRJ 550-700-1000/Anti-Ice:GROUP -ASCRJ_AICE_COWL_L_SWITCH -ASCRJ_AICE_COWL_L_SWITCH_OFF -ASCRJ_AICE_COWL_L_SWITCH_ON -ASCRJ_AICE_COWL_R_SWITCH -ASCRJ_AICE_COWL_R_SWITCH_OFF -ASCRJ_AICE_COWL_R_SWITCH_ON -ASCRJ_AICE_PHEAT_L_SWITCH -ASCRJ_AICE_PHEAT_L_SWITCH_OFF -ASCRJ_AICE_PHEAT_L_SWITCH_ON -ASCRJ_AICE_PHEAT_R_SWITCH -ASCRJ_AICE_PHEAT_R_SWITCH_OFF -ASCRJ_AICE_PHEAT_R_SWITCH_ON -ASCRJ_AICE_WING_SWITCH -ASCRJ_AICE_WING_SWITCH_OFF -ASCRJ_AICE_WING_SWITCH_ON -ASCRJ_AICE_WSHLD_L_SWITCH -ASCRJ_AICE_WSHLD_L_SWITCH_HIGH -ASCRJ_AICE_WSHLD_L_SWITCH_LOW -ASCRJ_AICE_WSHLD_L_SWITCH_OFF -ASCRJ_AICE_WSHLD_R_SWITCH -ASCRJ_AICE_WSHLD_R_SWITCH_HIGH -ASCRJ_AICE_WSHLD_R_SWITCH_LOW -ASCRJ_AICE_WSHLD_R_SWITCH_OFF -ASCRJ_AICE_WSHLD_TEST_BTN_PRESS -ASCRJ_AICE_WSHLD_TEST_BTN_REL -Aerosoft/CRJ 550-700-1000/Autopilot:GROUP -ASCRJ_AP_TOGGLE -ASCRJ_FCP_12BANK_PRESS -ASCRJ_FCP_12BANK_RELEASE -ASCRJ_FCP_ALT_CANCEL_PRESS -ASCRJ_FCP_ALT_CANCEL_RELEASE -ASCRJ_FCP_ALT_PRESS -ASCRJ_FCP_ALT_RELEASE -ASCRJ_FCP_ALT_SEL_DEC -ASCRJ_FCP_ALT_SEL_INC -ASCRJ_FCP_APPR_PRESS -ASCRJ_FCP_APPR_RELEASE -ASCRJ_FCP_AP_DISC_PRESS -ASCRJ_FCP_AP_DISC_RELEASE -ASCRJ_FCP_AP_ENG_PRESS -ASCRJ_FCP_AP_ENG_RELEASE -ASCRJ_FCP_BC_PRESS -ASCRJ_FCP_BC_RELEASE -ASCRJ_FCP_CRS1_DIRECT_PRESS -ASCRJ_FCP_CRS1_DIRECT_RELEASE -ASCRJ_FCP_CRS1_SEL_DEC -ASCRJ_FCP_CRS1_SEL_INC -ASCRJ_FCP_CRS2_DIRECT_PRESS -ASCRJ_FCP_CRS2_DIRECT_RELEASE -ASCRJ_FCP_CRS2_SEL_DEC -ASCRJ_FCP_CRS2_SEL_INC -ASCRJ_FCP_FD1_PRESS -ASCRJ_FCP_FD1_RELEASE -ASCRJ_FCP_FD2_PRESS -ASCRJ_FCP_FD2_RELEASE -ASCRJ_FCP_HDG_PRESS -ASCRJ_FCP_HDG_RELEASE -ASCRJ_FCP_HDG_SEL_DEC -ASCRJ_FCP_HDG_SEL_INC -ASCRJ_FCP_HDG_SYNC_PRESS -ASCRJ_FCP_HDG_SYNC_RELEASE -ASCRJ_FCP_IAS_MACH_PRESS -ASCRJ_FCP_IAS_MACH_RELEASE -ASCRJ_FCP_NAV_PRESS -ASCRJ_FCP_NAV_RELEASE -ASCRJ_FCP_SPEED_MODE_PRESS -ASCRJ_FCP_SPEED_MODE_RELEASE -ASCRJ_FCP_SPEED_PRESS -ASCRJ_FCP_SPEED_RELEASE -ASCRJ_FCP_SPEED_SEL_DEC -ASCRJ_FCP_SPEED_SEL_INC -ASCRJ_FCP_TURB_PRESS -ASCRJ_FCP_TURB_RELEASE -ASCRJ_FCP_VNAV_PRESS -ASCRJ_FCP_VNAV_RELEASE -ASCRJ_FCP_VS_PRESS -ASCRJ_FCP_VS_RELEASE -ASCRJ_FCP_WHEEL_SEL_DEC -ASCRJ_FCP_WHEEL_SEL_INC -ASCRJ_FCP_XFR_PRESS -ASCRJ_FCP_XFR_RELEASE -ASCRJ_TQ_TOGA_SWITCH -Aerosoft/CRJ 550-700-1000/Avionics:GROUP -ASCRJ_ECAM_AICE_PRESS -ASCRJ_ECAM_AICE_RELEASE -ASCRJ_ECAM_CAS_PRESS -ASCRJ_ECAM_CAS_RELEASE -ASCRJ_ECAM_DOORS_PRESS -ASCRJ_ECAM_DOORS_RELEASE -ASCRJ_ECAM_DOWN_PRESS -ASCRJ_ECAM_DOWN_RELEASE -ASCRJ_ECAM_ECS -ASCRJ_ECAM_ELEC_PRESS -ASCRJ_ECAM_ELEC_RELEASE -ASCRJ_ECAM_FCTL_PRESS -ASCRJ_ECAM_FCTL_RELEASE -ASCRJ_ECAM_FUEL_PRESS -ASCRJ_ECAM_FUEL_RELEASE -ASCRJ_ECAM_HYD_PRESS -ASCRJ_ECAM_HYD_RELEASE -ASCRJ_ECAM_MENU_PRESS -ASCRJ_ECAM_MENU_RELEASE -ASCRJ_ECAM_PRI_PRESS -ASCRJ_ECAM_SEL_PRESS -ASCRJ_ECAM_SEL_RELEASE -ASCRJ_ECAM_STAT_PRESS -ASCRJ_ECAM_STAT_RELEASE -ASCRJ_ECAM_STEP_PRESS -ASCRJ_ECAM_UP_PRESS -ASCRJ_ECAM_UP_RELEASE -ASCRJ_LSP_CLCK_CHR_BTN_PRESS -ASCRJ_LSP_CLCK_CHR_BTN_RELEASE -Aerosoft/CRJ 550-700-1000/Electrical:GROUP -ASCRJ_APU_PWRFUEL_PRESS -ASCRJ_APU_PWRFUEL_RELEASE -ASCRJ_APU_STARTSTOP_PRESS -ASCRJ_APU_STARTSTOP_RELEASE -ASCRJ_APU_STARTSTOP_TOGGLE -ASCRJ_ELEC_ACESSXFER -ASCRJ_ELEC_APUGEN -ASCRJ_ELEC_APUGEN_OFF -ASCRJ_ELEC_APUGEN_RESET -ASCRJ_ELEC_AUTOXFER1 -ASCRJ_ELEC_AUTOXFER2 -ASCRJ_ELEC_BATTMASTER_SWITCH -ASCRJ_ELEC_BATTMASTER_SWITCH_OFF -ASCRJ_ELEC_BATTMASTER_SWITCH_ON -ASCRJ_ELEC_DCSERVICE -ASCRJ_ELEC_DCSERVICE_OFF -ASCRJ_ELEC_DCSERVICE_ON -ASCRJ_ELEC_GEN1 -ASCRJ_ELEC_GEN1_OFF -ASCRJ_ELEC_GEN1_RESET -ASCRJ_ELEC_GEN2 -ASCRJ_ELEC_GEN2_OFF -ASCRJ_ELEC_GEN2_RESET -ASCRJ_ELEC_GPU_INUSE_SWITCH -ASCRJ_ELEC_IDG1 -ASCRJ_ELEC_IDG2 -ASCRJ_FIRE_TEST_BTN_PRESS -ASCRJ_FIRE_TEST_BTN_RELEASE -ASCRJ_HYDRO_SOV_L_PRESS -ASCRJ_HYDRO_SOV_L_REL -ASCRJ_HYDRO_SOV_R_PRESS -ASCRJ_HYDRO_SOV_R_REL -ASCRJ_IRS1_KNOB_SWITCH -ASCRJ_IRS2_KNOB_SWITCH -ASCRJ_LAMP_TEST_SWITCH -ASCRJ_MASTER_CAUT_PRESS -ASCRJ_MASTER_CAUT_RELEASE -ASCRJ_MASTER_WARN_PRESS -ASCRJ_MASTER_WARN_RELEASE -Aerosoft/CRJ 550-700-1000/Engines:GROUP -ASCRJ_CONT_IGN_BTN -ASCRJ_CONT_IGN_BTN_PRESS -ASCRJ_CONT_IGN_BTN_REL -ASCRJ_ENGS_START_L_PRESS -ASCRJ_ENGS_START_L_RELEASE -ASCRJ_ENGS_START_R_PRESS -ASCRJ_ENGS_START_R_RELEASE -ASCRJ_ENGS_STOP_L_PRESS -ASCRJ_ENGS_STOP_L_RELEASE -ASCRJ_ENGS_STOP_R_PRESS -ASCRJ_ENGS_STOP_R_RELEASE -ASCRJ_FUEL_PUMP_L_SWITCH -ASCRJ_FUEL_PUMP_R_SWITCH -ASCRJ_REV_1_ARM_SWITCH_TOGGLE -ASCRJ_REV_2_ARM_SWITCH_TOGGLE -ASCRJ_TQ_CUTOFF_1_LEVER -ASCRJ_TQ_CUTOFF_2_LEVER -ASCRJ_TQ_THROTTLE_1_POS_IDLE -ASCRJ_TQ_THROTTLE_1_POS_SHUTOFF -ASCRJ_TQ_THROTTLE_2_POS_IDLE -ASCRJ_TQ_THROTTLE_2_POS_SHUTOFF -Aerosoft/CRJ 550-700-1000/Flight Controls:GROUP -ASCRJ_FLAPS_DECR -ASCRJ_FLAPS_INCR -ASCRJ_GLD_MODE_SWITCH3_PRESS -ASCRJ_GLD_MODE_SWITCH3_RELEASE -ASCRJ_MACH_TRIM_SWITCH -ASCRJ_STAB_TRIM_CH_1_SWITCH -ASCRJ_STAB_TRIM_CH_2_SWITCH -ASCRJ_YD1_SWITCH -ASCRJ_YD2_SWITCH -ASCRJ_YD_DISC_SWITCH -Aerosoft/CRJ 550-700-1000/Flight Instrumentation:GROUP -ASCRJ_LSP_BRG1_PRESS -ASCRJ_LSP_BRG1_RELEASE -ASCRJ_LSP_BRG2_PRESS -ASCRJ_LSP_BRG2_RELEASE -ASCRJ_LSP_HEIGHT_MODE_DA -ASCRJ_LSP_HEIGHT_MODE_MDA -ASCRJ_LSP_HEIGHT_SEL_DEC -ASCRJ_LSP_HEIGHT_SEL_INC -ASCRJ_LSP_RDR_PRESS -ASCRJ_LSP_RDR_RELEASE -ASCRJ_LSP_SEL_PRESS -ASCRJ_LSP_SEL_RELEASE -ASCRJ_LSP_SPEED_MODE_DEC -ASCRJ_LSP_SPEED_MODE_INC -ASCRJ_LSP_SPEED_SEL -ASCRJ_LSP_SPEED_SEL -ASCRJ_LSP_SPEED_SEL_DEC -ASCRJ_LSP_SPEED_SEL_INC -Aerosoft/CRJ 550-700-1000/Fuel:GROUP -ASCRJ_FUEL_GRAVITY_FLOW_PRESS -ASCRJ_FUEL_GRAVITY_FLOW_REL -ASCRJ_FUEL_XFLOW_L_PRESS -ASCRJ_FUEL_XFLOW_L_REL -ASCRJ_FUEL_XFLOW_OVRD_PRESS -ASCRJ_FUEL_XFLOW_OVRD_REL -ASCRJ_FUEL_XFLOW_R_PRESS -ASCRJ_FUEL_XFLOW_R_REL -ASCRJ_L_FUEL_PUMP_PRESS -ASCRJ_L_FUEL_PUMP_REL -ASCRJ_R_FUEL_PUMP_PRESS -ASCRJ_R_FUEL_PUMP_REL -Aerosoft/CRJ 550-700-1000/Gear:GROUP -ASCRJ_GEAR_GEAR_LEVER_SWITCH_OFF -ASCRJ_GEAR_GEAR_LEVER_SWITCH_ON -ASCRJ_PARK_BRAKE_SWITCH_OFF -ASCRJ_PARK_BRAKE_SWITCH_ON -Aerosoft/CRJ 550-700-1000/Hydraulic:GROUP -ASCRJ_HYDRAULIC_L_HYD_SOV_GUARD_COUNT_TIMER -ASCRJ_HYDRAULIC_L_HYD_SOV_GUARD_SW -ASCRJ_HYDRAULIC_L_HYD_SOV_SW -ASCRJ_HYDRAULIC_R_HYD_SOV_GUARD_COUNT_TIMER -ASCRJ_HYDRAULIC_R_HYD_SOV_GUARD_SW -ASCRJ_HYDRAULIC_R_HYD_SOV_SW -ASCRJ_HYDR_PUMP_1_AUTO_SWITCH -ASCRJ_HYDR_PUMP_1_BUTTON -ASCRJ_HYDR_PUMP_1_OFF_SWITCH -ASCRJ_HYDR_PUMP_1_ON_SWITCH -ASCRJ_HYDR_PUMP_2_AUTO_SWITCH -ASCRJ_HYDR_PUMP_2_BUTTON -ASCRJ_HYDR_PUMP_2_OFF_SWITCH -ASCRJ_HYDR_PUMP_2_ON_SWITCH -ASCRJ_HYDR_PUMP_3A_BUTTON -ASCRJ_HYDR_PUMP_3A_ON-OFF_SWITCH -ASCRJ_HYDR_PUMP_3A_SWITCH_OFF -ASCRJ_HYDR_PUMP_3A_SWITCH_ON -ASCRJ_HYDR_PUMP_3B_AUTO_SWITCH -ASCRJ_HYDR_PUMP_3B_BUTTON -ASCRJ_HYDR_PUMP_3B_OFF_SWITCH -ASCRJ_HYDR_PUMP_3B_ON_SWITCH -Aerosoft/CRJ 550-700-1000/Lights:GROUP -ASCRJ_DM_LT_CPT_DEC -ASCRJ_DM_LT_CPT_INC -ASCRJ_DM_LT_FO_DEC -ASCRJ_DM_LT_FO_INC -ASCRJ_EXTL_BEACON_SWITCH -ASCRJ_EXTL_BEACON_SWITCH_OFF -ASCRJ_EXTL_BEACON_SWITCH_ON -ASCRJ_EXTL_LOGO_SWITCH -ASCRJ_EXTL_LOGO_SWITCH_OFF -ASCRJ_EXTL_LOGO_SWITCH_ON -ASCRJ_EXTL_NAV_SWITCH -ASCRJ_EXTL_NAV_SWITCH_OFF -ASCRJ_EXTL_NAV_SWITCH_ON -ASCRJ_EXTL_STROBE_SWITCH -ASCRJ_EXTL_STROBE_SWITCH_OFF -ASCRJ_EXTL_STROBE_SWITCH_ON -ASCRJ_EXTL_WING_SWITCH -ASCRJ_EXTL_WING_SWITCH_OFF -ASCRJ_EXTL_WING_SWITCH_ON -ASCRJ_INTL_CB_PNL_BRT_DEC -ASCRJ_INTL_CB_PNL_BRT_INC -ASCRJ_INTL_COMP_SWITCH_ON -ASCRJ_INTL_COMP_SWITCH_DIM -ASCRJ_INTL_COMP_SWITCH_OFF -ASCRJ_INTL_DOME_SWITCH_OFF -ASCRJ_INTL_DOME_SWITCH_ON -ASCRJ_INTL_DSPL_BRT_DEC -ASCRJ_INTL_DSPL_BRT_INC -ASCRJ_INTL_FLOOD_BRT_DEC -ASCRJ_INTL_FLOOD_BRT_INC -ASCRJ_INTL_INTEG_BRT_DEC -ASCRJ_INTL_INTEG_BRT_INC -ASCRJ_INTL_OVHD_DEC -ASCRJ_INTL_OVHD_INC -ASCRJ_LSP_DSPL_DEC -ASCRJ_LSP_DSPL_INC -ASCRJ_LSP_FLOOD_DEC -ASCRJ_LSP_FLOOD_INC -ASCRJ_LSP_INTEG_DEC -ASCRJ_LSP_INTEG_INC -ASCRJ_OVHD_ELT_SWITCH_OFF -ASCRJ_OVHD_ELT_SWITCH_ON -ASCRJ_OVHD_ELT_SWITCH_XXX -ASCRJ_OVHD_EMER_LTS_SWITCH -ASCRJ_OVHD_EMER_LTS_SWITCH_ARM -ASCRJ_OVHD_EMER_LTS_SWITCH_OFF -ASCRJ_OVHD_EMER_LTS_SWITCH_ON -ASCRJ_OVHD_LDG_LEFT_SWITCH -ASCRJ_OVHD_LDG_LTS_LEFT_SWITCH_OFF -ASCRJ_OVHD_LDG_LTS_LEFT_SWITCH_ON -ASCRJ_OVHD_LDG_LTS_NOSE_SWITCH_OFF -ASCRJ_OVHD_LDG_LTS_NOSE_SWITCH_ON -ASCRJ_OVHD_LDG_LTS_RIGHT_SWITCH_OFF -ASCRJ_OVHD_LDG_LTS_RIGHT_SWITCH_ON -ASCRJ_OVHD_LDG_NOSE_SWITCH -ASCRJ_OVHD_LDG_RIGHT_SWITCH -ASCRJ_OVHD_TAXI_LTS_SWITCH_OFF -ASCRJ_OVHD_TAXI_LTS_SWITCH_ON -ASCRJ_OVHD_TAXI_SWITCH -ASCRJ_RSP_DSPL_DEC -ASCRJ_RSP_DSPL_INC -ASCRJ_RSP_FLOOD_DEC -ASCRJ_RSP_FLOOD_INC -ASCRJ_RSP_INTEG_DEC -ASCRJ_RSP_INTEG_INC -Aerosoft/CRJ 550-700-1000/Navigation:GROUP -ASCRJ_LSP_BARO_CHANGE_DEC -ASCRJ_LSP_BARO_CHANGE_INC -ASCRJ_LSP_BARO_STD_PRESS -ASCRJ_LSP_BARO_STD_RELEASE -ASCRJ_LSP_FORMAT_CHANGE_ENCOD_DEC -ASCRJ_LSP_FORMAT_CHANGE_ENCOD_INC -ASCRJ_LSP_NAV_SOURCE_CHANGE_DEC -ASCRJ_LSP_NAV_SOURCE_CHANGE_INC -ASCRJ_LSP_NAV_SOURCE_XSIDE_PRESS -ASCRJ_LSP_NAV_SOURCE_XSIDE_RELEASE -ASCRJ_LSP_ZOOM_RANGE_CHANGE_DEC -ASCRJ_LSP_ZOOM_RANGE_CHANGE_INC -ASCRJ_MCDU1_BRT_DEC -ASCRJ_MCDU1_BRT_INC -ASCRJ_MCDU2_BRT_DEC -ASCRJ_MCDU2_BRT_INC -BARO_Hpa_In -Aerosoft/CRJ 550-700-1000/Passengers/Crew:GROUP -ASCRJ_OVHD_NO_SMOKING_SWITCH -ASCRJ_OVHD_NO_SMOKING_SWITCH_AUTO -ASCRJ_OVHD_NO_SMOKING_SWITCH_OFF -ASCRJ_OVHD_NO_SMOKING_SWITCH_ON -ASCRJ_OVHD_SEATBELTS_SWITCH_AUTO -ASCRJ_OVHD_SEATBELTS_SWITCH_OFF -ASCRJ_OVHD_SEATBELTS_SWITCH_ON -ASCRJ_OVHD_SEAT_BELTS_SWITCH -Aerosoft/CRJ 550-700-1000/Radio:GROUP -ASCRJ_RTU1_IDENT_PRESS -ASCRJ_RTU1_KNOB_INNER_DEC -ASCRJ_RTU1_KNOB_INNER_INC -ASCRJ_RTU1_KNOB_OUTER_DEC -ASCRJ_RTU1_KNOB_OUTER_INC -ASCRJ_RTU1_LSK1L_SWITCH_PRESS -ASCRJ_RTU1_LSK1R_SWITCH_PRESS -ASCRJ_RTU1_LSK2L_SWITCH_PRESS -ASCRJ_RTU1_LSK2R_SWITCH_PRESS -ASCRJ_RTU1_LSK3L_SWITCH_PRESS -ASCRJ_RTU1_LSK3R_SWITCH_PRESS -ASCRJ_RTU1_LSK4L_SWITCH_PRESS -ASCRJ_RTU1_LSK4R_SWITCH_PRESS -ASCRJ_XPDR_ATC_SEL_PRESS_PRESS -ASCRJ_XPDR_ATC_SEL_PRESS_RELEASE -ASCRJ_XPDR_ATC_SEL_SWITCH -Aerosoft/CRJ 550-700-1000/Warning System:GROUP -FIRE_DETECTION_FIREX_MONITOR_TEST_SWITCH -Asobo/DA40NG/Anti-Ice:GROUP -DA40NG_PITOT_OFF -DA40NG_PITOT_ON -Asobo/Baron G58/Anti-Ice:GROUP -G58_PROP_DEICE_OFF -G58_PROP_DEICE_ON -Asobo/DA40NG/Controls:GROUP -DA40NG_FLAPS_DECR -DA40NG_FLAPS_INCR -Asobo/Baron G58/Electrical:GROUP -G58_MAGNETO1_BOTH -G58_MAGNETO1_LEFT -G58_MAGNETO1_OFF -G58_MAGNETO1_RIGHT -G58_MAGNETO1_START -G58_MAGNETO2_BOTH -G58_MAGNETO2_LEFT -G58_MAGNETO2_OFF -G58_MAGNETO2_RIGHT -G58_MAGNETO2_START -G58_MASTER_BATTERY_1_OFF -G58_MASTER_BATTERY_1_ON -G58_MASTER_BATTERY_2_OFF -G58_MASTER_BATTERY_2_ON -Asobo/DA40NG/Fuel:GROUP -DA40NG_FUEL_TRANSFER_OFF -DA40NG_FUEL_TRANSFER_ON -Asobo/DA40NG/Gear:GROUP -DA40NG_PARKING_BRAKE_OFF -DA40NG_PARKING_BRAKE_ON -Asobo/DA40NG/Lights:GROUP -DA40NG_LANDING_OFF -DA40NG_LANDING_ON -DA40NG_POSITION_OFF -DA40NG_POSITION_ON -DA40NG_STROBE_OFF -DA40NG_STROBE_ON -DA40NG_TAXI_OFF -DA40NG_TAXI_ON -Asobo/330 Extra/Avionics:GROUP -AS3X_1_CLR_Push -AS3X_1_DIRECTTO -AS3X_1_ENT_Push -AS3X_1_FPL_Push -AS3X_1_JOYSTICK_DOWN -AS3X_1_JOYSTICK_LEFT -AS3X_1_JOYSTICK_PUSH -AS3X_1_JOYSTICK_RIGHT -AS3X_1_JOYSTICK_UP -AS3X_1_MENU_Push -AS3X_1_NRST_Push -AS3X_1_RNG_Dezoom -AS3X_1_RNG_Zoom -AS3X_1_SOFTKEYS_1 -AS3X_1_SOFTKEYS_2 -AS3X_1_SOFTKEYS_3 -AS3X_1_SOFTKEYS_4 -AS3X_1_SOFTKEYS_5 -AS3X_1_TURN_DEC -AS3X_1_TURN_INC -AS3X_2_CLR_Push -AS3X_2_DIRECTTO -AS3X_2_ENT_Push -AS3X_2_FPL_Push -AS3X_2_JOYSTICK_DOWN -AS3X_2_JOYSTICK_LEFT -AS3X_2_JOYSTICK_PUSH -AS3X_2_JOYSTICK_RIGHT -AS3X_2_JOYSTICK_UP -AS3X_2_MENU_Push -AS3X_2_NRST_Push -AS3X_2_RNG_Dezoom -AS3X_2_RNG_Zoom -AS3X_2_SOFTKEYS_1 -AS3X_2_SOFTKEYS_2 -AS3X_2_SOFTKEYS_3 -AS3X_2_SOFTKEYS_4 -AS3X_2_SOFTKEYS_5 -AS3X_2_TURN_DEC -AS3X_2_TURN_INC -Asobo/747-8i/EFIS:GROUP -B747_8_BARO_DEC -B747_8_BARO_INC -B747_8_BTN_ARPT -B747_8_BTN_DATA -B747_8_BTN_POS -B747_8_BTN_STA -B747_8_BTN_TERR -B747_8_BTN_WPT -B747_8_BTN_WXR -B747_8_MFD_NAV_MODE_APP -B747_8_MFD_NAV_MODE_DEC -B747_8_MFD_NAV_MODE_INC -B747_8_MFD_NAV_MODE_MAP -B747_8_MFD_NAV_MODE_PLN -B747_8_MFD_NAV_MODE_VOR -B747_8_MFD_Range_0_25 -B747_8_MFD_Range_0_5 -B747_8_MFD_Range_1 -B747_8_MFD_Range_10 -B747_8_MFD_Range_160 -B747_8_MFD_Range_2 -B747_8_MFD_Range_20 -B747_8_MFD_Range_320 -B747_8_MFD_Range_40 -B747_8_MFD_Range_5 -B747_8_MFD_Range_640 -B747_8_MFD_Range_80 -B747_8_MFD_Range_DEC -B747_8_MFD_Range_INC -B747_8_PFD_FPV -B747_8_PFD_MTRS -B747_8_PFD_Mins_DEC -B747_8_PFD_Mins_INC -B747_8_PFD_Mins_Press -B747_8_XMLVAR_Baro_Selector_HPA_1_HPA -B747_8_XMLVAR_Baro_Selector_HPA_1_IN -B747_8_XMLVAR_Mins_Selector_Baro_BARO -B747_8_XMLVAR_Mins_Selector_Baro_RADIO -B747_8_XMLVAR_NAV_AID_SWITCH_L1_State_ADF -B747_8_XMLVAR_NAV_AID_SWITCH_L1_State_OFF -B747_8_XMLVAR_NAV_AID_SWITCH_L1_State_VOR -B747_8_XMLVAR_NAV_AID_SWITCH_L2_State_ADF -B747_8_XMLVAR_NAV_AID_SWITCH_L2_State_OFF -B747_8_XMLVAR_NAV_AID_SWITCH_L2_State_VOR -XMLVAR_Baro1_ForcedToSTD -Asobo/747-8i/EICAS:GROUP -B747_8_EICAS_CHANGE_PAGE_chkl -B747_8_EICAS_CHANGE_PAGE_drs -B747_8_EICAS_CHANGE_PAGE_ecs -B747_8_EICAS_CHANGE_PAGE_elec -B747_8_EICAS_CHANGE_PAGE_eng -B747_8_EICAS_CHANGE_PAGE_ftcl -B747_8_EICAS_CHANGE_PAGE_fuel -B747_8_EICAS_CHANGE_PAGE_gear -B747_8_EICAS_CHANGE_PAGE_hyd -B747_8_EICAS_CHANGE_PAGE_info -B747_8_EICAS_CHANGE_PAGE_nav -B747_8_EICAS_CHANGE_PAGE_stat -Asobo/747-8i/Navigation:GROUP -B747_8_FMC_1_BTN_0 -B747_8_FMC_1_BTN_1 -B747_8_FMC_1_BTN_2 -B747_8_FMC_1_BTN_3 -B747_8_FMC_1_BTN_4 -B747_8_FMC_1_BTN_5 -B747_8_FMC_1_BTN_6 -B747_8_FMC_1_BTN_7 -B747_8_FMC_1_BTN_8 -B747_8_FMC_1_BTN_9 -B747_8_FMC_1_BTN_A -B747_8_FMC_1_BTN_ATC -B747_8_FMC_1_BTN_B -B747_8_FMC_1_BTN_BRT_DIM -B747_8_FMC_1_BTN_C -B747_8_FMC_1_BTN_CLR -B747_8_FMC_1_BTN_D -B747_8_FMC_1_BTN_DEL -B747_8_FMC_1_BTN_DEPARR -B747_8_FMC_1_BTN_DIV -B747_8_FMC_1_BTN_DOT -B747_8_FMC_1_BTN_E -B747_8_FMC_1_BTN_EXEC -B747_8_FMC_1_BTN_F -B747_8_FMC_1_BTN_FIX -B747_8_FMC_1_BTN_FMCCOMM -B747_8_FMC_1_BTN_G -B747_8_FMC_1_BTN_H -B747_8_FMC_1_BTN_HOLD -B747_8_FMC_1_BTN_I -B747_8_FMC_1_BTN_INIT -B747_8_FMC_1_BTN_J -B747_8_FMC_1_BTN_K -B747_8_FMC_1_BTN_L -B747_8_FMC_1_BTN_L1 -B747_8_FMC_1_BTN_L2 -B747_8_FMC_1_BTN_L3 -B747_8_FMC_1_BTN_L4 -B747_8_FMC_1_BTN_L5 -B747_8_FMC_1_BTN_L6 -B747_8_FMC_1_BTN_LEGS -B747_8_FMC_1_BTN_M -B747_8_FMC_1_BTN_MENU -B747_8_FMC_1_BTN_N -B747_8_FMC_1_BTN_NAVRAD -B747_8_FMC_1_BTN_NEXTPAGE -B747_8_FMC_1_BTN_O -B747_8_FMC_1_BTN_P -B747_8_FMC_1_BTN_PLUSMINUS -B747_8_FMC_1_BTN_PREVPAGE -B747_8_FMC_1_BTN_PROG -B747_8_FMC_1_BTN_Q -B747_8_FMC_1_BTN_R -B747_8_FMC_1_BTN_R1 -B747_8_FMC_1_BTN_R2 -B747_8_FMC_1_BTN_R3 -B747_8_FMC_1_BTN_R4 -B747_8_FMC_1_BTN_R5 -B747_8_FMC_1_BTN_R6 -B747_8_FMC_1_BTN_RTE -B747_8_FMC_1_BTN_S -B747_8_FMC_1_BTN_SP -B747_8_FMC_1_BTN_T -B747_8_FMC_1_BTN_U -B747_8_FMC_1_BTN_V -B747_8_FMC_1_BTN_VNAV -B747_8_FMC_1_BTN_W -B747_8_FMC_1_BTN_X -B747_8_FMC_1_BTN_Y -B747_8_FMC_1_BTN_Z -Asobo/A320/Electrical:GROUP -ASOA320_MASTER_BATTERY_1_OFF -ASOA320_MASTER_BATTERY_1_ON -Asobo/A320/Lights:GROUP -ASOA320_OH_EXTLT_RWY_OFF -ASOA320_OH_EXTLT_RWY_ON -ASOA320_OH_EXTLT_RWY_TOG -ASOA320_OH_STROBES_TOG_AUTO -ASOA320_OH_STROBES_TOG_OFF -ASOA320_OH_STROBES_TOG_ON -Asobo/Baron G58/Controls:GROUP -G58_COWL_FLAP_CLOSE -G58_COWL_FLAP_OPEN -Asobo/Baron G58/Lights:GROUP -G58_LEFT_LANDING_LIGHT_OFF -G58_LEFT_LANDING_LIGHT_ON -G58_RIGHT_LANDING_LIGHT_OFF -G58_RIGHT_LANDING_LIGHT_ON -Asobo/Baron G58/Safety:GROUP -G58_ELT_ARM -G58_ELT_ON -Asobo/Bonanza G36/Avionics:GROUP -G36_AVIONICS_OFF -G36_AVIONICS_ON -Asobo/Bonanza G36/Electrical:GROUP -G36_ALTERNATOR_1_OFF -G36_ALTERNATOR_1_ON -G36_ALTERNATOR_2_OFF -G36_ALTERNATOR_2_ON -G36_BATTERY_1_OFF -G36_BATTERY_1_ON -G36_BATTERY_2_OFF -G36_BATTERY_2_ON -Asobo/Bonanza G36/Fuel:GROUP -G36_FUEL_PUMP_HIGH -G36_FUEL_PUMP_OFF -G36_FUEL_PUMP_ON -Asobo/Bonanza G36/Lights:GROUP -G36_LIGHTING_KNOB_FLOOD_DEC -G36_LIGHTING_KNOB_FLOOD_INC -G36_LIGHTING_SWITCH_FLOOD -G36_LIGHT_FLOOD_OFF -G36_LIGHT_FLOOD_ON -G36_LIGHT_KNOB_AVIONICS_DEC -G36_LIGHT_KNOB_AVIONICS_INC -G36_LIGHT_KNOB_GLARESHIELD_DEC -G36_LIGHT_KNOB_GLARESHIELD_INC -G36_LIGHT_KNOB_PANEL_DEC -G36_LIGHT_KNOB_PANEL_INC -G36_LIGHT_KNOB_SUBPANEL_DEC -G36_LIGHT_KNOB_SUBPANEL_INC -G36_LIGHT_PANEL_OFF -G36_LIGHT_PANEL_ON -Asobo/C208 Caravan/Electrical:GROUP -C208_AVIONICS1_OFF -C208_AVIONICS1_ON -C208_AVIONICS2_OFF -C208_AVIONICS2_ON -Asobo/C208 Caravan/Lights:GROUP -C208_LEFT_LANDING_LIGHT_OFF -C208_LEFT_LANDING_LIGHT_ON -C208_RIGHT_LANDING_LIGHT_OFF -C208_RIGHT_LANDING_LIGHT_ON -Asobo/Cessna 172/Anti-Ice:GROUP -C_172_Pitot_Heat_Toggle_ -C_172_PITOT_HEAT_OFF -C_172_PITOT_HEAT_ON -Asobo/Cessna 172/Autopilot:GROUP -C_172_AP -C_172_AP_ALT -C_172_AP_APR -C_172_AP_FLC -C_172_AP_HDG -C_172_AP_NAV -C_172_AP_NOSE_DN -C_172_AP_NOSE_UP -C_172_AP_VS -C_172_FD -Asobo/Cessna 172/Avionics:GROUP -C_172_AVIONICS_BUS_1_OFF -C_172_AVIONICS_BUS_1_ON -C_172_AVIONICS_BUS_2_OFF -C_172_AVIONICS_BUS_2_ON -C_172_XPNDR_VFR -Asobo/Cessna 172/Electrical:GROUP -C172_ALTERNATOR_OFF -C172_ALTERNATOR_ON -C172_BATTERY_OFF -C172_BATTERY_ON -C_172_STBYBATTERY_OFF -C_172_STBYBATTERY_ON -C_172_STBYBATTERY_TEST_OFF -C_172_STBYBATTERY_TEST_ON -Asobo/Cessna 172/Environment:GROUP -TOGGLE_ALTERNATE_AIR -Asobo/Cessna 172/Fuel:GROUP -C_172_BOTH_FUEL_TANKS -C_172_FUEL_PUMP_OFF -C_172_FUEL_PUMP_ON -C_172_FUEL_SHUTOFF_VALVE_CLOSE -C_172_FUEL_SHUTOFF_VALVE_OPEN -C_172_LEFT_FUEL_TANK -C_172_RIGHT_FUEL_TANK -Asobo/Cessna 172/Lights:GROUP -C_172_AVIONICS_LIGHT_DEC -C_172_AVIONICS_LIGHT_INC -C_172_COPILOT_CABIN_LIGHT_DEC -C_172_COPILOT_CABIN_LIGHT_INC -C_172_LIGHTS_LANDING_OFF -C_172_LIGHTS_LANDING_ON -C_172_PANEL_LIGHT_DEC -C_172_PANEL_LIGHT_INC -C_172_PEDESTRAL_LIGHT_DEC -C_172_PEDESTRAL_LIGHT_INC -C_172_PILOT_CABIN_LIGHT_DEC -C_172_PILOT_CABIN_LIGHT_INC -C_172_STBY_INSTRUMENTS_LIGHT_DEC -C_172_STBY_INSTRUMENTS_LIGHT_INC -Asobo/Cessna 172/Safety:GROUP -C172_SAFETY_Light_Test_On -C172_SAFETY_Lights_Test_Off -Asobo/DA62/Anti-Ice:GROUP -DA62_DE-ICE_High -DA62_DE-ICE_Normal -DA62_DE-ICE_OFF -Asobo/DA62/Engine and FADEC System:GROUP -DA62_LH_ECU_A -DA62_LH_ECU_AUTO -DA62_LH_ECU_B -DA62_LH_ECU_TEST_OFF -DA62_LH_ECU_TEST_ON -DA62_RH_ECU_A -DA62_RH_ECU_AUTO -DA62_RH_ECU_B -DA62_RH_ECU_TEST_OFF -DA62_RH_ECU_TEST_ON -Asobo/DA62/Engine:GROUP -DA62_LEFT_ENGINE_MASTER_TOGGLE -DA62_RIGHT_ENGINE_MASTER_TOGGLE -Asobo/DA62/Fuel:GROUP -DA62_LH_AUX_FUEL_PUMP_TOGGLE -DA62_LH_Fuel_Control_Crossfeed -DA62_LH_Fuel_Control_Off -DA62_LH_Fuel_Control_On -DA62_RH_AUX_FUEL_PUMP_TOGGLE -DA62_RH_Fuel_Control_Crossfeed -DA62_RH_Fuel_Control_Off -DA62_RH_Fuel_Control_On -Asobo/King Air 350i/Autopilot:GROUP -KA_ALT -KA_ALT_DEC -KA_ALT_FAST_DEC -KA_ALT_FAST_INC -KA_ALT_INC -KA_ALT_SET -KA_AP -KA_APPR -KA_BANK -KA_CRS_DEC -KA_CRS_INC -KA_CRS_SET -KA_FD1 -KA_FLC -KA_HDG -KA_HDG_DEC -KA_HDG_FAST_DEC -KA_HDG_FAST_INC -KA_HDG_INC -KA_NAV -KA_PUSHDISCO -KA_Push_Heading -KA_SPD_DEC -KA_SPD_INC -KA_VNAV -KA_VS -KA_VS_DEC -KA_VS_INC -KA_YD -Asobo/King Air 350i/Engines:GROUP -KA_ENG1_START_TOGGLE -KA_ENG2_START_TOGGLE -Asobo/King Air 350i/Lights:GROUP -KA_LEFT_LANDING_LIGHT_OFF -KA_LEFT_LANDING_LIGHT_ON -KA_RECOGNITION_LIGHTS_OFF -KA_RECOGNITION_LIGHTS_ON -KA_RIGHT_LANDING_LIGHT_OFF -KA_RIGHT_LANDING_LIGHT_ON -Asobo/Longitude/Avionics:GROUP -AS3000_TSC_Vertical_BottomKnob_Large_DEC -AS3000_TSC_Vertical_BottomKnob_Large_INC -AS3000_TSC_Vertical_BottomKnob_Push -AS3000_TSC_Vertical_BottomKnob_Push_Long -AS3000_TSC_Vertical_BottomKnob_Small_DEC -AS3000_TSC_Vertical_BottomKnob_Small_INC -AS3000_TSC_Vertical_TopKnob_Large_DEC -AS3000_TSC_Vertical_TopKnob_Large_INC -AS3000_TSC_Vertical_TopKnob_Small_DEC -AS3000_TSC_Vertical_TopKnob_Small_INC -Asobo/Longitude/Electrical:GROUP -LONGITUDE_TOGGLE_ALTERNATOR_1_SWITCH_1 -LONGITUDE_TOGGLE_ALTERNATOR_2_SWITCH_2 -LONGITUDE_TOGGLE_EXTERNAL_POWER_SWITCH -LONGITUDE_TOGGLE_MASTER_BATTERY_SWITCH_1 -LONGITUDE_TOGGLE_MASTER_BATTERY_SWITCH_2 -Asobo/Longitude/Lights:GROUP -LONGITUDE_LANDING_LIGHTS_L_TOGGLE -LONGITUDE_LANDING_LIGHTS_R_TOGGLE -LONGITUDE_PULSE_LIGHTS_TOGGLE -LONGITUDE_RECOG_LIGHTS_TOGGLE -LONGITUDE_TAIL_FLOOD_LIGHTS_TOGGLE -LONGITUDE_TAXI_LIGHTS_TOGGLE -LONGITUDE_WING_INSP_LIGHTS_TOGGLE -Asobo/TBM 580/Avionics:GROUP -AS3000_TSC_Horizontal_BottomKnob_Push -AS3000_TSC_Horizontal_BottomKnob_Small_DEC -AS3000_TSC_Horizontal_BottomKnob_Small_INC -AS3000_TSC_Horizontal_SoftKey_1 -AS3000_TSC_Horizontal_SoftKey_2 -AS3000_TSC_Horizontal_SoftKey_3 -AS3000_TSC_Horizontal_TopKnob_Large_DEC -AS3000_TSC_Horizontal_TopKnob_Large_INC -AS3000_TSC_Horizontal_TopKnob_Push -AS3000_TSC_Horizontal_TopKnob_Push_Long -AS3000_TSC_Horizontal_TopKnob_Small_DEC -AS3000_TSC_Horizontal_TopKnob_Small_INC -Asobo/TBM 930/Air Condition / Pressurization:GROUP -TBM930_BLEED_AIR_AUTO -TBM930_BLEED_AIR_MAX -TBM930_BLEED_AIR_OFF -Asobo/TBM 930/Anti-Ice:GROUP -TBM930_AIRFRAME_DE_ICE_OFF -TBM930_AIRFRAME_DE_ICE_ON -TBM930_ICE_LIGHT_OFF -TBM930_ICE_LIGHT_ON -TBM930_INERT_SEP_OFF -TBM930_INERT_SEP_ON -TBM930_LTS_TEST_OFF -TBM930_LTS_TEST_ON -TBM930_LTS_TEST_TOGGLE -TBM930_PITOT_L_OFF -TBM930_PITOT_L_ON -TBM930_PITOT_R_OFF -TBM930_PITOT_R_ON -TBM930_PROP_DE_ICE_OFF -TBM930_PROP_DE_ICE_ON -TBM930_Pitot_L_TOG -TBM930_Pitot_R_TOG -TBM930_WINDSHIELD_OFF -TBM930_WINDSHIELD_ON -Asobo/TBM 930/Autopilot:GROUP -TBM930_AP_BARO_3_DEC -TBM930_AP_BARO_3_INC -TBM930_AP_CRS1_INC -TBM930_AP_CRS1_SYNC -TBM930_AP_CRS2_DEC -TBM930_AP_VNV_OFF -TBM930_AUTOPILOT_ALT_ON -TBM930_AUTOPILOT_ALT_TOGGLE -TBM930_AUTOPILOT_APR_OFF -TBM930_AUTOPILOT_APR_TOGGLE -TBM930_AUTOPILOT_BC_OFF -TBM930_AUTOPILOT_CRS1_DEC -TBM930_AUTOPILOT_CRS2_INC -TBM930_AUTOPILOT_CRS2_SYNC -TBM930_AUTOPILOT_FD_ON -TBM930_AUTOPILOT_FD_TOGGLE -TBM930_AUTOPILOT_FLC_OFF -TBM930_AUTOPILOT_FLC_TOGGLE -TBM930_AUTOPILOT_HDG_ON -TBM930_AUTOPILOT_HDG_TOGGLE -TBM930_AUTOPILOT_Heading_Sync -TBM930_AUTOPILOT_IAS_DEC -TBM930_AUTOPILOT_IAS_INC -TBM930_AUTOPILOT_LVL_OFF -TBM930_AUTOPILOT_MASTER_OFF -TBM930_AUTOPILOT_MASTER_ON -TBM930_AUTOPILOT_MASTER_TOGGLE -TBM930_AUTOPILOT_MASTER_TRIM_ONLY -TBM930_AUTOPILOT_MAX_BANK_ON -TBM930_AUTOPILOT_MAX_BANK_TOGGLE -TBM930_AUTOPILOT_NAV_TOGGLE -TBM930_AUTOPILOT_SPD_KTS -TBM930_AUTOPILOT_SPD_MACH -TBM930_AUTOPILOT_SPD_TOGGLE -TBM930_AUTOPILOT_TOGGLE -TBM930_AUTOPILOT_VNV_ON -TBM930_AUTOPILOT_VNV_TOGGLE -TBM930_AUTOPILOT_VS_OFF -TBM930_AUTOPILOT_VS_TOGGLE -TBM930_AUTOPILOT_YD_OFF -TBM930_BARO_DEC -TBM930_BARO_INC -TBM930_BARO_SYNC -Asobo/TBM 930/Avionics:GROUP -G3000_TSC_Bottom_Knob_Inc -G3000_TSC_Bottom_Knob_Push -TBM930_PFD_1_SOFTKEYS_1 -TBM930_PFD_1_SOFTKEYS_10 -TBM930_PFD_1_SOFTKEYS_11 -TBM930_PFD_1_SOFTKEYS_12 -TBM930_PFD_1_SOFTKEYS_2 -TBM930_PFD_1_SOFTKEYS_3 -TBM930_PFD_1_SOFTKEYS_4 -TBM930_PFD_1_SOFTKEYS_5 -TBM930_PFD_1_SOFTKEYS_6 -TBM930_PFD_1_SOFTKEYS_7 -TBM930_PFD_1_SOFTKEYS_8 -TBM930_PFD_1_SOFTKEYS_9 -TBM930_PFD_2_SOFTKEYS_1 -TBM930_PFD_2_SOFTKEYS_10 -TBM930_PFD_2_SOFTKEYS_11 -TBM930_PFD_2_SOFTKEYS_12 -TBM930_PFD_2_SOFTKEYS_2 -TBM930_PFD_2_SOFTKEYS_3 -TBM930_PFD_2_SOFTKEYS_4 -TBM930_PFD_2_SOFTKEYS_5 -TBM930_PFD_2_SOFTKEYS_6 -TBM930_PFD_2_SOFTKEYS_7 -TBM930_PFD_2_SOFTKEYS_8 -TBM930_PFD_2_SOFTKEYS_9 -TBM930_PFD_3_SOFTKEYS_1 -TBM930_PFD_3_SOFTKEYS_10 -TBM930_PFD_3_SOFTKEYS_11 -TBM930_PFD_3_SOFTKEYS_12 -TBM930_PFD_3_SOFTKEYS_2 -TBM930_PFD_3_SOFTKEYS_3 -TBM930_PFD_3_SOFTKEYS_4 -TBM930_PFD_3_SOFTKEYS_5 -TBM930_PFD_3_SOFTKEYS_6 -TBM930_PFD_3_SOFTKEYS_7 -TBM930_PFD_3_SOFTKEYS_8 -TBM930_PFD_3_SOFTKEYS_9 -TSC_1_Softkey_1 -TSC_1_Softkey_2 -TSC_1_Softkey_3 -TSC_Bottom_Knob_DEC -TSC_1_TOP_BUTTON_PUSH -Asobo/TBM 930/Electrical:GROUP -TBM930_ELECTRICAL_SOURCE_BATT -TBM930_ELECTRICAL_SOURCE_GPU -TBM930_ELECTRICAL_SOURCE_OFF -TBM930_GENERATOR_MAIN -TBM930_GENERATOR_OFF -TBM930_GENERATOR_STANDBY -Asobo/TBM 930/Engines:GROUP -TBM930_IGNITION_AUTO -TBM930_IGNITION_OFF -TBM930_IGNITION_ON -TBM930_STARTER_ABORT -TBM930_STARTER_ON -Asobo/TBM 930/Fuel:GROUP -TBM930_AUX_BP_AUTO -TBM930_AUX_BP_OFF -TBM930_AUX_BP_ON -TBM930_FUEL_SELECTOR_AUTO -TBM930_FUEL_SELECTOR_MANUAL -TBM930_SHIFT_FUEL_TANK -Asobo/TBM 930/Gear:GROUP -TBM930_LANDING_GEAR_DOWN -TBM930_LANDING_GEAR_UP -Asobo/TBM 930/Lights:GROUP -TBM930_DIMMER_OFF -TBM930_DIMMER_ON -TBM930_DIMMER_TOGGLE -TBM930_LANDING_TAXI_OFF_State_0 -TBM930_LANDING_TAXI_OFF_State_1 -TBM930_LANDING_TAXI_OFF_State_2 -TBM930_NAV_LIGHT_OFF -TBM930_NAV_LIGHT_ON -TBM930_NAV_LIGHT_TOGGLE -TBM930_PANEL_LIGHT_DEC -TBM930_PANEL_LIGHT_INC -TBM930_STROBE_LIGHT_OFF -TBM930_STROBE_LIGHT_ON -TBM930_STROBE_LIGHT_TOGGLE -TBM_ACCESS_LIGHT_ON -TBM_CABIN_LIGHT_ON -Asobo/TBM 930/Miscellaneous:GROUP -TBM930_BACK_DOOR_LEVER_SWITCH -TBM930_BACK_DOOR_LOCK_SWITCH -TBM930_CARGO_DOOR_LEVER_SWITCH -TBM930_COPILOT_VISOR_LEFT-RIGHT_DEC -TBM930_COPILOT_VISOR_LEFT-RIGHT_INC -TBM930_COPILOT_VISOR_UP-DOWN_DEC -TBM930_COPILOT_VISOR_UP-DOWN_INC -TBM930_CRASH_BAR_DOWN -TBM930_CRASH_BAR_UP -TBM930_FRONT_DOOR_LEVER_SWITCH -TBM930_FRONT_DOOR_LOCK_SWITCH -TBM930_PILOT_VISOR_LEFT-RIGHT_DEC -TBM930_PILOT_VISOR_LEFT-RIGHT_INC -TBM930_PILOT_VISOR_UP-DOWN_DEC -TBM930_PILOT_VISOR_UP-DOWN_INC -TBM930_SHOW-HIDE_COPILOT_SWITCH -TBM930_SHOW-HIDE_PILOT_SWITCH -TBM930_SWAP_ACTION_LEFT-RIGHT_UP-DOWN_ENCODER_SWITCH -Asobo/TBM 930/Warning System:GROUP -TBM930_ELT_ARM -TBM930_ELT_ON -TBM930_ELT_TEST -TBM930_MASTER_CAUTION_PUSH -TBM930_MASTER_WARNING_PUSH -Asobo/XCub/Anti-Ice:GROUP -XCUB_CARB_HEAT_TOGGLE -Asobo/XCub/Autopilot:GROUP -XCUB_ALT_DEC_100 -XCUB_ALT_DEC_1000 -XCUB_ALT_INC_1000 -XCUB_AP_ALT_INC_100 -XCUB_AP_ALT_PUSH -XCUB_AP_ALT_TOGGLE -XCUB_AP_APR_TOGGLE -XCUB_AP_FD_TOGGLE -XCUB_AP_FLC_DEC_1 -XCUB_AP_FLC_DEC_10 -XCUB_AP_FLC_INC_1 -XCUB_AP_FLC_INC_10 -XCUB_AP_FLC_TOGGLE -XCUB_AP_HDG_DEC_1 -XCUB_AP_HDG_DEC_5 -XCUB_AP_HDG_INC_1 -XCUB_AP_HDG_INC_5 -XCUB_AP_HDG_TOGGLE -XCUB_AP_NAV_TOGGLE -XCUB_AP_VS_DEC -XCUB_AP_VS_INC -XCUB_AP_VS_TOGGLE -Asobo/XCub/Electrical:GROUP -XCUB_ALT_FIELD_OFF -XCUB_ALT_FIELD_ON -XCUB_ELECTRICAL_AVIONICS_OFF -XCUB_ELECTRICAL_AVIONICS_ON -XCUB_ELECTRICAL_STARTER_OFF -XCUB_ELECTRICAL_STARTER_ON -XCUB_MASTER_BATTERY_OFF -XCUB_MASTER_BATTERY_ON -Asobo/XCub/Engine:GROUP -XCUB_ENGINE_IGN_LH_OFF -XCUB_ENGINE_IGN_LH_ON -XCUB_ENGINE_IGN_RH_OFF -XCUB_ENGINE_IGN_RH_ON -XCUB_ENGINE_LH_OFF_RH_ON -XCUB_ENGINE_LH_ON_RH_OFF -XCUB_ENGINE_LH_ON_RH_ON -Asobo/XCub/Fuel:GROUP -XCUB_FUEL_PUMP_OFF -XCUB_FUEL_PUMP_ON -XCUB_FUEL_SELECTOR_LEFT -XCUB_FUEL_SELECTOR_OFF -XCUB_FUEL_SELECTOR_RIGHT -XCUB_FUEL_SELECTOR_TOGGLE -Asobo/XCub/Gear:GROUP -XCUB_PARKING_BRAKE_OFF -XCUB_PARKING_BRAKE_ON -Asobo/XCub/Lights:GROUP -XCUB_AUX_DIMMER -XCUB_NAV_OFF -XCUB_NAV_ON -XCUB_PULSE_ON -XCUB_PULSE_STANDBY -XCUB_STROBE_OFF -XCUB_STROBE_ON -Bredok3d/737-MAX/EFIS:GROUP -XMLVAR_Mins_Selector_Baro_RADIO -Carenado/M20R OVATION/Autopilot:GROUP -KAS297_ALT_ARM_PUSH -KAS297_ALT_DEC_100 -KAS297_ALT_DEC_1000 -KAS297_ALT_INC_100 -KAS297_ALT_INC_1000 -KAS297_AP_SELECT_ALT_OR_VS -Fly By Wire/A320-Dev/Air Condition / Pressurization:GROUP -AIRCOND_AFT_CABIN_KNOB_DEC -AIRCOND_AFT_CABIN_KNOB_INC -AIRCOND_APU_BLEED_TOGGLE -AIRCOND_COCKPIT_KNOB_DEC -AIRCOND_COCKPIT_KNOB_INC -AIRCOND_ENG1_BLEED_TOGGLE -AIRCOND_ENG2_BLEED_TOGGLE -AIRCOND_FWD_CABIN_KNOB_DEC -AIRCOND_FWD_CABIN_KNOB_INC -AIRCOND_HOTAIR_TOGGLE -AIRCOND_PACK_FLOW_KNOB_HI -AIRCOND_PACK_FLOW_KNOB_LO -AIRCOND_PACK_FLOW_KNOB_NORM -AIRCOND_PACK1_TOGGLE -AIRCOND_PACK2_TOGGLE -AIRCOND_RAMAIR_LOCK_TOGGLE -AIRCOND_RAMAIR_TOGGLE -CABIN_PRESS_DITCHING_LOCK_TOGGLE -CABIN_PRESS_DITCHING_TOGGLE -CABIN_PRESS_LDGELEV_AUTO_DEC -CABIN_PRESS_LDGELEV_AUTO_INC -CABIN_PRESS_MAN_VS_CTL_DN -CABIN_PRESS_MAN_VS_CTL_MID -CABIN_PRESS_MAN_VS_CTL_UP -CABIN_PRESS_MODE_SEL_MAN -Fly By Wire/A320-Dev/Anti-Ice:GROUP -ANTIICE_ENG1_TOGGLE -ANTIICE_ENG2_TOGGLE -ANTIICE_PROBE_WINDOW_TOGGLE -ANTIICE_WING_TOGGLE -Fly By Wire/A320-Dev/Autopilot:GROUP -A32NX_FCU_ALT_DEC -A32NX_FCU_ALT_INC -A32NX_FCU_ALT_INCREMENT_SET -A32NX_FCU_ALT_INCREMENT_TOGGLE -A32NX_FCU_ALT_PULL -A32NX_FCU_ALT_PUSH -A32NX_FCU_ALT_SET -A32NX_FCU_APPR_PUSH -A32NX_FCU_EXPED_PUSH -A32NX_FCU_LOC_PUSH -A32NX_FCU_VS_DEC -A32NX_FCU_VS_INC -A32NX_FCU_VS_PULL -A32NX_FCU_VS_PUSH -A32NX_FCU_VS_SET -Fly By Wire/A320-Dev/ECAM:GROUP -A32NX_ECAM_KNOB_LOWER_DEC -A32NX_ECAM_KNOB_UPPER_DEC -A32NX_ECAM_KNOB_UPPER_INC -Fly By Wire/A320-Dev/EFIS:GROUP -A32NX_BARO1_KNOB_PULL -A32NX_BARO1_KNOB_PUSH -A32NX_EFIS_LS_1_PUSH -A32NX_EFIS_L_ARPT_PUSH -A32NX_EFIS_L_CHRONO_PUSH -A32NX_EFIS_L_CSTR_PUSH -A32NX_EFIS_L_NAVAID_1_MODE_ADF -A32NX_EFIS_L_NAVAID_1_MODE_OFF -A32NX_EFIS_L_NAVAID_1_MODE_VOR -A32NX_EFIS_L_NAVAID_2_MODE_ADF -A32NX_EFIS_L_NAVAID_2_MODE_OFF -A32NX_EFIS_L_NAVAID_2_MODE_VOR -A32NX_EFIS_L_NDB_PUSH -A32NX_EFIS_L_ND_MODE_ARC -A32NX_EFIS_L_ND_MODE_DEC -A32NX_EFIS_L_ND_MODE_INC -A32NX_EFIS_L_ND_MODE_LS -A32NX_EFIS_L_ND_MODE_NAV -A32NX_EFIS_L_ND_MODE_PLAN -A32NX_EFIS_L_ND_MODE_VOR -A32NX_EFIS_L_ND_RANGE_10 -A32NX_EFIS_L_ND_RANGE_160 -A32NX_EFIS_L_ND_RANGE_20 -A32NX_EFIS_L_ND_RANGE_320 -A32NX_EFIS_L_ND_RANGE_40 -A32NX_EFIS_L_ND_RANGE_80 -A32NX_EFIS_L_ND_RANGE_DEC -A32NX_EFIS_L_ND_RANGE_INC -A32NX_EFIS_L_VORD_PUSH -A32NX_EFIS_L_WPT_PUSH -A32NX_EFIS_R_ARPT_PUSH -A32NX_EFIS_R_CHRONO_PUSH -A32NX_EFIS_R_CSTR_PUSH -A32NX_EFIS_R_NAVAID_1_MODE_ADF -A32NX_EFIS_R_NAVAID_1_MODE_OFF -A32NX_EFIS_R_NAVAID_1_MODE_VOR -A32NX_EFIS_R_NAVAID_2_MODE_ADF -A32NX_EFIS_R_NAVAID_2_MODE_OFF -A32NX_EFIS_R_NAVAID_2_MODE_VOR -A32NX_EFIS_R_NDB_PUSH -A32NX_EFIS_R_ND_MODE_ARC -A32NX_EFIS_R_ND_MODE_LS -A32NX_EFIS_R_ND_MODE_NAV -A32NX_EFIS_R_ND_MODE_PLAN -A32NX_EFIS_R_ND_MODE_VOR -A32NX_EFIS_R_ND_RANGE_10 -A32NX_EFIS_R_ND_RANGE_160 -A32NX_EFIS_R_ND_RANGE_20 -A32NX_EFIS_R_ND_RANGE_320 -A32NX_EFIS_R_ND_RANGE_40 -A32NX_EFIS_R_ND_RANGE_80 -A32NX_EFIS_R_ND_RANGE_INC -A32NX_EFIS_R_VORD_PUSH -A32NX_EFIS_R_WPT_PUSH -AUTOPILOT_BARO_DEC -AUTOPILOT_BARO_INC -Fly By Wire/A320-Dev/EICAS:GROUP -A32NX_ECAM_KNOB_LOWER_INC -Fly By Wire/A320-Dev/Electrical:GROUP -FORCE_OVHD_ELEC_BATTERTY_1_OFF -FORCE_OVHD_ELEC_BATTERTY_1_ON -FORCE_OVHD_ELEC_BATTERTY_2_OFF -FORCE_OVHD_ELEC_BATTERTY_2_ON -OVHD_ELEC_AC_ESS_FEED_TOGGLE -OVHD_ELEC_APU_GEN_TOGGLE -OVHD_ELEC_BATTERY_1_TOGGLE -OVHD_ELEC_BATTERY_2_TOGGLE -OVHD_ELEC_COMMERCIAL_TOGGLE -OVHD_ELEC_EXT_PWR_TOGGLE -OVHD_ELEC_GALY_AND_CAB_TOGGLE -OVHD_ELEC_GEN1_TOGGLE -OVHD_ELEC_GEN2_TOGGLE -Fly By Wire/A320-Dev/Engine:GROUP -A32NX_ENG1_MASTER_SWITCH_OFF -A32NX_ENG1_MASTER_SWITCH_ON -A32NX_ENG2_MASTER_SWITCH_OFF -A32NX_ENG2_MASTER_SWITCH_ON -Fly By Wire/A320-Dev/Fire:GROUP -FIRE_APU_AGENT1_DISCHARGE -FIRE_BUTTON_APU_ON -FIRE_BUTTON_ENG1_ON -FIRE_BUTTON_ENG2_ON -FIRE_ENG1_AGENT1_DISCHARGE -FIRE_ENG1_AGENT2_DISCHARGE -FIRE_ENG2_AGENT1_DISCHARGE -FIRE_ENG2_AGENT2_DISCHARGE -FIRE_GUARD_APU_TOGGLE -FIRE_GUARD_ENG1_TOGGLE -FIRE_GUARD_ENG2_TOGGLE -FIRE_TEST_APU_OFF -FIRE_TEST_APU_ON -FIRE_TEST_ENG1_OFF -FIRE_TEST_ENG1_ON -FIRE_TEST_ENG2_OFF -FIRE_TEST_ENG2_ON -Fly By Wire/A320-Dev/Fuel:GROUP -FUEL_CTK_PUMP1_ -FUEL_CTK_PUMP2 -FUEL_LTK_PUMP1 -FUEL_LTK_PUMP2 -FUEL_RTK_PUMP1 -FUEL_RTK_PUMP2 -FUEL_XFEED_VALVE_ON -HYD_ENG1_PUMP_TOGGLE -HYD_ENG2_PUMP_TOGGLE -HYD_EPUMP_BLUE_LOCK_TOGGLE -HYD_EPUMPB_IS_AUTO_TOGGLE -HYD_EPUMPY_IS_AUTO_TOGGLE -HYD_PTU_IS_AUTO_TOGGLE -HYD_RAT_MAN_ON_PRESSED -HYD_RAT_MAN_ON_RELEASED -Fly By Wire/A320-Dev/Gear:GROUP -ANTISKID_OFF -ANTISKID_ON -AUTOBRAKE_LOW_HARD-TOGGLE -AUTOBRAKE_MAX_HARD-TOGGLE -AUTOBRAKE_MED_HARD-TOGGLE -Fly By Wire/A320-Dev/Lights:GROUP -A32NX_LIGHTS_GLARESHIELD2_DEC -A32NX_LIGHTS_GLARESHIELD2_INC -A32NX_LIGHTS_GLARESHIELD3_DEC -A32NX_LIGHTS_GLARESHIELD3_INC -A32NX_OH_DOME_LIGHT_BRT -A32NX_OH_DOME_LIGHT_DIM -A32NX_OH_DOME_LIGHT_OFF -A32NX_OH_INTEG_LIGHT_DEC -A32NX_OH_INTEG_LIGHT_INC -BEACON_LIGHTS_OFF -BEACON_LIGHTS_ON -LANDING_LIGHTS_L_OFF -LANDING_LIGHTS_L_ON -LANDING_LIGHTS_L_RETRACT -LANDING_LIGHTS_R_OFF -LANDING_LIGHTS_R_ON -LANDING_LIGHTS_R_RETRACT -NAV_LOGO_LIGHTS_OFF -NAV_LOGO_LIGHTS_ON -NAV_LOGO_LIGHTS_TOGGLE -NOSE_LIGHTS_OFF -NOSE_LIGHTS_TAXI -NOSE_LIGHTS_TO -RUNWAY_TURNOFF_LIGHTS_OFF -RUNWAY_TURNOFF_LIGHTS_ON -STROBE_LIGHTS_AUTO -STROBE_LIGHTS_OFF -STROBE_LIGHTS_ON -WING_LIGHTS_OFF -WING_LIGHTS_ON -WING_LIGHTS_TOGGLE -Fly By Wire/A320-Dev/MCDU:GROUP -A320_Neo_CDU_1_BTN_INIT -A320_Neo_CDU_1_BTN_PERF -A320_Neo_CDU_1_BTN_PROG -Fly By Wire/A320-Dev/Miscellaneous:GROUP -A32NX_CHRONO_RST -A32NX_CHRONO_TOGGLE -A32NX_OVHD_RCDR_GND_CTL_TOGGLE -A32NX_OVHD_WIPER_L_FAST -A32NX_OVHD_WIPER_L_OFF -A32NX_OVHD_WIPER_L_SLOW -A32NX_OVHD_WIPER_R_FAST -A32NX_OVHD_WIPER_R_OFF -A32NX_OVHD_WIPER_R_SLOW -A32NX_SWITCH_RADAR_PWS_POSITION_AUTO -A32NX_SWITCH_RADAR_PWS_POSITION_OFF -COCKPIT_DOOR_LOCK -COCKPIT_DOOR_UNLOCK -PUSH_DOORPANEL_VIDEO_TOGGLE -Fly By Wire/A320-Dev/Navigation:GROUP -A32NX_OVHD_ADIRS_KNOB1_MODES_TOGGLE -A32NX_OVHD_ADIRS_KNOB2_MODES_TOGGLE -A32NX_OVHD_ADIRS_KNOB3_MODES_TOGGLE -A32NX_TCAS_TRAFFIC_POSITION_ABV -A32NX_TCAS_TRAFFIC_POSITION_ALL -A32NX_TCAS_TRAFFIC_POSITION_BLW -A32NX_TCAS_TRAFFIC_POSITION_THRT -ATC_Custom_Btn_0 -ATC_Custom_Btn_1 -ATC_Custom_Btn_2 -ATC_Custom_Btn_3 -ATC_Custom_Btn_4 -ATC_Custom_Btn_5 -ATC_Custom_Btn_6 -ATC_Custom_Btn_7 -ATC_Custom_Btn_CLR -OVHD_ADIRS_ADR_1_TOGGLE -OVHD_ADIRS_ADR_2_TOGGLE -OVHD_ADIRS_ADR_3_TOGGLE -OVHD_ADIRS_IR_1_TOGGLE -OVHD_ADIRS_IR_2_TOGGLE -OVHD_ADIRS_IR_3_TOGGLE -OVHD_ADIRS_KNOB1_ATT -OVHD_ADIRS_KNOB1_NAV -OVHD_ADIRS_KNOB1_OFF -OVHD_ADIRS_KNOB2_ATT -OVHD_ADIRS_KNOB2_NAV -OVHD_ADIRS_KNOB2_OFF -OVHD_ADIRS_KNOB3_ATT -OVHD_ADIRS_KNOB3_NAV -OVHD_ADIRS_KNOB3_OFF -TCAS_TRAFFIC_POSITION_ -Fly By Wire/A320-Dev/Passengers/Crew:GROUP -CABIN_EMERGENCY_LIGHT_ARM -CABIN_EMERGENCY_LIGHT_OFF -CABIN_EMERGENCY_LIGHT_ON -CABIN_NO_SMOKING_AUTO -CABIN_NO_SMOKING_OFF -CABIN_NO_SMOKING_ON -CABIN_SEATBELTS_ALERT_TOGGLE -Fly By Wire/A320-Dev/Radio:GROUP -A32NX_AIR_DATA_SWITCHING_CAPT -A32NX_AIR_DATA_SWITCHING_F_O -A32NX_AIR_DATA_SWITCHING_NORM -A32NX_ATT_HDG_SWITCHING_CAPT -A32NX_ATT_HDG_SWITCHING_F_O -A32NX_ATT_HDG_SWITCHING_NORM -A32NX_ECAM_ND_XFR_SWITCHING_CAPT -A32NX_ECAM_ND_XFR_SWITCHING_F_O -A32NX_ECAM_ND_XFR_SWITCHING_NORM -A32NX_EIS_DMC_SWITCHING_CAPT -A32NX_EIS_DMC_SWITCHING_F_O -A32NX_EIS_DMC_SWITCHING_NORM -A32NX_RMP_L_VHF2_BUTTON_PRESSED -Fly By Wire/A320-Dev/Safety:GROUP -A32NX_CABIN_SEATBELTS_ALERT_OFF -A32NX_CABIN_SEATBELTS_ALERT_ON -Fly By Wire/A320/Air Condition / Pressurization:GROUP -A320_Neo_AIRCOND_LVL_1_100 -A320_Neo_AIRCOND_LVL_1_25 -A320_Neo_AIRCOND_LVL_1_50 -A320_Neo_AIRCOND_LVL_1_75 -A320_Neo_AIRCOND_LVL_1_OFF -A320_Neo_AIRCOND_LVL_2_100 -A320_Neo_AIRCOND_LVL_2_25 -A320_Neo_AIRCOND_LVL_2_50 -A320_Neo_AIRCOND_LVL_2_75 -A320_Neo_AIRCOND_LVL_2_OFF -A320_Neo_AIRCOND_LVL_3_100 -A320_Neo_AIRCOND_LVL_3_25 -A320_Neo_AIRCOND_LVL_3_50 -A320_Neo_AIRCOND_LVL_3_75 -A320_Neo_AIRCOND_LVL_3_OFF -A32NX_AIRCOND_HOTAIR_TOGGLE_OFF -A32NX_AIRCOND_HOTAIR_TOGGLE_ON -A32NX_AIRCOND_PACK1_TOGGLE_OFF -A32NX_AIRCOND_PACK1_TOGGLE_ON -A32NX_AIRCOND_PACK2_TOGGLE_OFF -A32NX_AIRCOND_PACK2_TOGGLE_ON -A32NX_AIRCOND_RAMAIR_TOGGLE_OFF -A32NX_AIRCOND_RAMAIR_TOGGLE_ON -A32NX_APU_BLEED_OFF_OFF -A32NX_APU_BLEED_ON_ON -A32NX_KNOB_OVHD_AIRCOND_PACKFLOW_Position_HIGH -A32NX_KNOB_OVHD_AIRCOND_PACKFLOW_Position_LOW -A32NX_KNOB_OVHD_AIRCOND_PACKFLOW_Position_MED -A32NX_KNOB_OVHD_AIRCOND_XBLEED_Position_AUTO -A32NX_KNOB_OVHD_AIRCOND_XBLEED_Position_OPEN -A32NX_KNOB_OVHD_AIRCOND_XBLEED_Position_SHUT -A32NX_OH_AC_ENG1BLEED_TOG -A32NX_OH_AC_ENG2BLEED_TOG -A32NX_OH_APU_BLEED_TOG -PUSH_OVHD_OXYGEN_CREW_OFF -PUSH_OVHD_OXYGEN_CREW_ON -XMLVAR_Momentary_PUSH_OVHD_AIRCOND_ENG1BLEED_Pressed_PRESSED -XMLVAR_Momentary_PUSH_OVHD_AIRCOND_ENG1BLEED_Released_RELEASED -XMLVAR_Momentary_PUSH_OVHD_AIRCOND_ENG2BLEED_Pressed_PRESSED -XMLVAR_Momentary_PUSH_OVHD_AIRCOND_ENG2BLEED_Released_RELEASED -Fly By Wire/A320/Anti-Ice:GROUP -A32NX_MAN_PITOT_HEAT_OFF -A32NX_MAN_PITOT_HEAT_ON -A32NX_OH_ANTIICE_ENG1_TOG -A32NX_OH_ANTIICE_ENG2_TOG -XMLVAR_Momentary_PUSH_OVHD_ANTIICE_ENG1_Pressed_PRESSED -XMLVAR_Momentary_PUSH_OVHD_ANTIICE_ENG1_Pressed_RELEASED -XMLVAR_Momentary_PUSH_OVHD_ANTIICE_ENG2_Pressed_PRESSED -XMLVAR_Momentary_PUSH_OVHD_ANTIICE_ENG2_Pressed_RELEASED -XMLVAR_Momentary_PUSH_OVHD_ANTIICE_WING_Pressed_PRESSED -XMLVAR_Momentary_PUSH_OVHD_ANTIICE_WING_Pressed_RELEASED -Fly By Wire/A320/Autopilot:GROUP -A320NX_APPR -A320NX_LOC -A320NX_METRIC_ALT_TOGGLE -A320_Neo_CDU_MODE_MANAGED_SPEED -A320_Neo_CDU_MODE_SELECTED_SPEED -A320_Neo_EXPEDITE_MODE -A320_Neo_FCU_ALT_PULL -A320_Neo_FCU_ALT_PUSH -A320_Neo_FCU_ALT_PUSH_PULL_TOG -A320_Neo_FCU_MODE_MANAGED_SPEED -A320_Neo_FCU_SPEED_DEC -A320_Neo_FCU_SPEED_INC -A320_Neo_FCU_SPEED_PULL -A320_Neo_FCU_SPEED_PUSH -A320_Neo_FCU_SPEED_PUSH_PULL_TOG -A320_Neo_FCU_SPEED_TOGGLE_SPEED_MACH -A320_Neo_FCU_VS_DEC -A320_Neo_FCU_VS_INC -A320_Neo_FCU_VS_PULL -A320_Neo_FCU_VS_PUSH -A320_Neo_FCU_VS_PUSH_PULL_TOG -A32NX_AP_MANAGED_SPEED_IN_MACH_TOGGLE -A32NX_FCU_ALT_DEC -A32NX_FCU_ALT_DEC100 -A32NX_FCU_ALT_DEC1000 -A32NX_FCU_ALT_INC -A32NX_FCU_ALT_INC100 -A32NX_FCU_ALT_INC1000 -ATHR_Disconnect_Push -ATHR_Push -Autopilot_1_Push -Autopilot_2_Push -Autopilot_Disconnect_Push -Autopilot_Altitude_Increment_TOGGLE -HDG_Decrease -HDG_Increase -HDG_Pull -HDG_Push -HDG_Push_Pull_Toggle -HDG_Set -SPD_Decrease -SPD_Increase -SPD_MACH_Toggle -SPD_Pull -SPD_Push -SPD_Set -TRK_FPA_Mode_Toggle -XMLVAR_Autopilot_Altitude_Increment_1000Feet -XMLVAR_Autopilot_Altitude_Increment_100Feet -Fly By Wire/A320/Avionics:GROUP -PUSH_AUTOPILOT_CHRONO_L -Fly By Wire/A320/ECAM:GROUP -A320_Neo_EICAS_2_ECAM_CHANGE_PAGE_APU -A320_Neo_EICAS_2_ECAM_CHANGE_PAGE_BLEED -A320_Neo_EICAS_2_ECAM_CHANGE_PAGE_COND -A320_Neo_EICAS_2_ECAM_CHANGE_PAGE_DOOR -A320_Neo_EICAS_2_ECAM_CHANGE_PAGE_ELEC -A320_Neo_EICAS_2_ECAM_CHANGE_PAGE_ENG -A320_Neo_EICAS_2_ECAM_CHANGE_PAGE_FTCL -A320_Neo_EICAS_2_ECAM_CHANGE_PAGE_FUEL -A320_Neo_EICAS_2_ECAM_CHANGE_PAGE_HYD -A320_Neo_EICAS_2_ECAM_CHANGE_PAGE_PRESS -A320_Neo_EICAS_2_ECAM_CHANGE_PAGE_STS -A320_Neo_EICAS_2_ECAM_CHANGE_PAGE_WHEEL -A32NX_BTN_CLR2_PRESSED -A32NX_BTN_CLR2_RELEASED -A32NX_BTN_CLR_PRESSED -A32NX_BTN_CLR_RELEASED -A32NX_BTN_EMERCANC_PRESSED -A32NX_BTN_EMERCANC_RELEASED -A32NX_BTN_RCL_PRESSED -A32NX_BTN_RCL_RELEASED -A32NX_BTN_TOCONFIG_PRESSED -A32NX_BTN_TOCONFIG_RELEASED -A32NX_ECAM_ALL_Push_IsDown_PRESSED -A32NX_ECAM_ALL_Push_IsDown_RELEASED -A32NX_ECAM_BTN_TOCONFIG_Push -Fly By Wire/A320/EFIS:GROUP -A320_Neo_MFD_BTN_ARPT_1 -A320_Neo_MFD_BTN_ARPT_2 -A320_Neo_MFD_BTN_CSTR_1 -A320_Neo_MFD_BTN_CSTR_2 -A320_Neo_MFD_BTN_NDB_1 -A320_Neo_MFD_BTN_NDB_2 -A320_Neo_MFD_BTN_VORD_1 -A320_Neo_MFD_BTN_VORD_2 -A320_Neo_MFD_BTN_WPT_1 -A320_Neo_MFD_BTN_WPT_2 -A320_Neo_MFD_NAV_MODE_1_ARC -A320_Neo_MFD_NAV_MODE_1_DEC -A320_Neo_MFD_NAV_MODE_1_INC -A320_Neo_MFD_NAV_MODE_1_LS -A320_Neo_MFD_NAV_MODE_1_NAV -A320_Neo_MFD_NAV_MODE_1_PLAN -A320_Neo_MFD_NAV_MODE_1_VOR -A320_Neo_MFD_NAV_MODE_2_ARC -A320_Neo_MFD_NAV_MODE_2_DEC -A320_Neo_MFD_NAV_MODE_2_INC -A320_Neo_MFD_NAV_MODE_2_LS -A320_Neo_MFD_NAV_MODE_2_NAV -A320_Neo_MFD_NAV_MODE_2_PLAN -A320_Neo_MFD_NAV_MODE_2_VOR -A320_Neo_MFD_Range_1_10 -A320_Neo_MFD_Range_1_160 -A320_Neo_MFD_Range_1_20 -A320_Neo_MFD_Range_1_320 -A320_Neo_MFD_Range_1_40 -A320_Neo_MFD_Range_1_80 -A320_Neo_MFD_Range_1_DEC -A320_Neo_MFD_Range_1_INC -A320_Neo_MFD_Range_2_10 -A320_Neo_MFD_Range_2_160 -A320_Neo_MFD_Range_2_20 -A320_Neo_MFD_Range_2_320 -A320_Neo_MFD_Range_2_40 -A320_Neo_MFD_Range_2_80 -A320_Neo_MFD_Range_2_DEC -A320_Neo_MFD_Range_2_INC -A320_Neo_PFD_BTN_LS_1 -A320_Neo_PFD_BTN_LS_2 -A32NX_BARO_MODE_TOG3 -A32NX_BARO_SELECT_HPA -A32NX_BARO_SELECT_INHG -A32NX_BARO_SELECT_TOG -A32NX_EFIS_FD_PUSH -Baro_decrease -Baro_increase -Toggle_Flight_Director -XMLVAR_Baro1_Mode_QFE -XMLVAR_Baro1_Mode_QNH -XMLVAR_Baro1_Mode_STD -XMLVAR_Baro2_Mode_QFE -XMLVAR_Baro2_Mode_QNH -XMLVAR_Baro2_Mode_STD -XMLVAR_NAV_AID_SWITCH_L1_State_ADF -XMLVAR_NAV_AID_SWITCH_L1_State_Off -XMLVAR_NAV_AID_SWITCH_L1_State_VOR -XMLVAR_NAV_AID_SWITCH_L2_State_ADF -XMLVAR_NAV_AID_SWITCH_L2_State_Off -XMLVAR_NAV_AID_SWITCH_L2_State_VOR -XMLVAR_NAV_AID_SWITCH_R1_State_ADF -XMLVAR_NAV_AID_SWITCH_R1_State_Off -XMLVAR_NAV_AID_SWITCH_R1_State_VOR -XMLVAR_NAV_AID_SWITCH_R2_State_ADF -XMLVAR_NAV_AID_SWITCH_R2_State_Off -XMLVAR_NAV_AID_SWITCH_R2_State_VOR -Fly By Wire/A320/Electrical:GROUP -A32NX_APU_MASTER_SW -A32NX_APU_START -A32NX_ELEC_ACESSFEED_TOGGLE_ALTN -A32NX_ELEC_ACESSFEED_TOGGLE_ON -A32NX_ELEC_BUSTIE_TOGGLE_AUTO -A32NX_ELEC_BUSTIE_TOGGLE_OFF -A32NX_ELEC_COMMERCIAL_TOGGLE_OFF -A32NX_ELEC_COMMERCIAL_TOGGLE_ON -A32NX_ELEC_GALYCAB_TOGGLE_AUTO -A32NX_ELEC_GALYCAB_TOGGLE_OFF -A32NX_ELEC_IDG1_FAULT_PRESSED -A32NX_ELEC_IDG1_FAULT_RELEASED -A32NX_ELEC_IDG2_FAULT_PRESSED -A32NX_ELEC_IDG2_FAULT_RELEASED -A32NX_EMERELECPWR_EMERTESTLOCK_TOGGLE_OFF -A32NX_EMERELECPWR_EMERTESTLOCK_TOGGLE_ON -A32NX_EMERELECPWR_GEN1_TOGGLE_OFF -A32NX_EMERELECPWR_GEN1_TOGGLE_ON -A32NX_EMERELECPWR_MANONLOCK_TOGGLE_AUTO -A32NX_EMERELECPWR_MANONLOCK_TOGGLE_MAN -A32NX_OH_ELEC_APUGEN_TOG -A32NX_OH_ELEC_BAT1_TOG -A32NX_OH_ELEC_BAT2_TOG -A32NX_OH_ELEC_EXTPWR_TOG -A32NX_OH_ELEC_GEN1_TOG -A32NX_OH_ELEC_GEN2_TOG -ACPowerAvailable_PRESSED -ACPowerAvailable_RELEASED -XMLVAR_Momentary_PUSH_OVHD_APU_MASTERSW_Pressed_PRESSED -XMLVAR_Momentary_PUSH_OVHD_APU_MASTERSW_Pressed_RELEASED -XMLVAR_Momentary_PUSH_OVHD_ELEC_APUGEN_Pressed_PRESSED -XMLVAR_Momentary_PUSH_OVHD_ELEC_APUGEN_Pressed_RELEASED -XMLVAR_Momentary_PUSH_OVHD_ELEC_BAT1_Pressed_PRESSED -XMLVAR_Momentary_PUSH_OVHD_ELEC_BAT1_Pressed_RELEASED -XMLVAR_Momentary_PUSH_OVHD_ELEC_BAT2_Pressed_PRESSED -XMLVAR_Momentary_PUSH_OVHD_ELEC_BAT2_Pressed_RELEASED -XMLVAR_Momentary_PUSH_OVHD_ELEC_GEN1_Pressed_PRESSED -XMLVAR_Momentary_PUSH_OVHD_ELEC_GEN1_Pressed_RELEASED -XMLVAR_Momentary_PUSH_OVHD_ELEC_GEN2_Pressed_PRESSED -XMLVAR_Momentary_PUSH_OVHD_ELEC_GEN2_Pressed_RELEASED -Fly By Wire/A320/Engines:GROUP -A32NX_THROTTLE_FULL_REVERSE_BUTTON -A32NX_ENG1_START_TOG -A32NX_ENG2_START_TOG -A32NX_ENG_MODE_CRANK -A32NX_ENG_MODE_IGNSTART -A32NX_ENG_MODE_NORMAL -Fly By Wire/A320/Flight Controls:GROUP -XMLVAR_Momentary_PUSH_OVHD_FLTCTL_ELAC2_Pressed_PRESSED -XMLVAR_Momentary_PUSH_OVHD_FLTCTL_ELAC2_Pressed_RELEASED -XMLVAR_Momentary_PUSH_OVHD_FLTCTL_ELAC_Pressed_PRESSED -XMLVAR_Momentary_PUSH_OVHD_FLTCTL_ELAC_Pressed_RELEASED -XMLVAR_Momentary_PUSH_OVHD_FLTCTL_FAC2_Pressed_PRESSED -XMLVAR_Momentary_PUSH_OVHD_FLTCTL_FAC2_Pressed_RELEASED -XMLVAR_Momentary_PUSH_OVHD_FLTCTL_FAC_Pressed_PRESSED -XMLVAR_Momentary_PUSH_OVHD_FLTCTL_FAC_Pressed_RELEASED -XMLVAR_Momentary_PUSH_OVHD_FLTCTL_SEC2_Pressed_PRESSED -XMLVAR_Momentary_PUSH_OVHD_FLTCTL_SEC2_Pressed_RELEASED -XMLVAR_Momentary_PUSH_OVHD_FLTCTL_SEC3_Pressed_PRESSED -XMLVAR_Momentary_PUSH_OVHD_FLTCTL_SEC3_Pressed_RELEASED -XMLVAR_Momentary_PUSH_OVHD_FLTCTL_SEC_Pressed_PRESSED -XMLVAR_Momentary_PUSH_OVHD_FLTCTL_SEC_Pressed_RELEASED -Fly By Wire/A320/Fuel:GROUP -A32NX_OVHD_FUELSYSTEM_CTKPUMP1_TOGGLE -A32NX_OVHD_FUELSYSTEM_CTKPUMP2_TOGGLE -A32NX_OVHD_FUELSYSTEM_LTKPUMP1_TOGGLE -A32NX_OVHD_FUELSYSTEM_LTKPUMP2_TOGGLE -A32NX_OVHD_FUELSYSTEM_RTKPUMP1_TOGGLE -A32NX_OVHD_FUELSYSTEM_RTKPUMP2_TOGGLE -Fly By Wire/A320/Gear:GROUP -A32NX_BRAKE_FAN_BTN_PRESSED -Autobrake_Low_On -Autobrake_Low_Toggle -Autobrake_Max_On -Autobrake_Max_Toggle -Autobrake_Med_On -Autobrake_Med_Toggle -Fly By Wire/A320/Lights:GROUP -A32NX_BEACON_TOG_OFF -A32NX_BEACON_TOG_ON -A32NX_NAV_LIGHT_TOG -A32NX_OH_EXTLT_RWY_OFF -A32NX_OH_EXTLT_RWY_ON -A32NX_OH_EXTLT_RWY_TOG -A32NX_OH_LANDING_LIGHTS_OFF -A32NX_OH_LANDING_LIGHTS_ON -A32NX_OH_LANDING_LIGHTS_TOG -A32NX_OH_STROBES_TOG_AUTO -A32NX_OH_STROBES_TOG_OFF -A32NX_OH_STROBES_TOG_ON -ANN_LT_BRT -ANN_LT_DIM -ANN_LT_TEST -DOME_LIGHT_BRT -DOME_LIGHT_DIM1 -DOME_LIGHT_DIM2 -DOME_LIGHT_OFF -DOME_LIGHT_TOGGLE -EMER_EXIT_ARM -EMER_EXIT_OFF -EMER_EXIT_ON -LEFT_LANDING_LIGHTS_OFF -LEFT_LANDING_LIGHTS_RETRACTED -RIGHT_LANDING_LIGHTS_OFF -RIGHT_LANDING_LIGHTS_RETRACTED -STBY_COMPASS_LIGHT_OFF -STBY_COMPASS_LIGHT_TOGGLE -Fly By Wire/A320/Navigation:GROUP -A320_Neo_ATC_BTN_0 -A320_Neo_ATC_BTN_1 -A320_Neo_ATC_BTN_2 -A320_Neo_ATC_BTN_3 -A320_Neo_ATC_BTN_4 -A320_Neo_ATC_BTN_5 -A320_Neo_ATC_BTN_6 -A320_Neo_ATC_BTN_7 -A320_Neo_ATC_BTN_8 -A320_Neo_ATC_BTN_9 -A320_Neo_ATC_BTN_CLR -A320_Neo_ATC_BTN_IDENT -A320_Neo_CDU_1_BTN_0 -A320_Neo_CDU_1_BTN_1 -A320_Neo_CDU_1_BTN_2 -A320_Neo_CDU_1_BTN_3 -A320_Neo_CDU_1_BTN_4 -A320_Neo_CDU_1_BTN_5 -A320_Neo_CDU_1_BTN_6 -A320_Neo_CDU_1_BTN_7 -A320_Neo_CDU_1_BTN_8 -A320_Neo_CDU_1_BTN_9 -A320_Neo_CDU_1_BTN_A -A320_Neo_CDU_1_BTN_AIRPORT -A320_Neo_CDU_1_BTN_ATC -A320_Neo_CDU_1_BTN_B -A320_Neo_CDU_1_BTN_C -A320_Neo_CDU_1_BTN_CLR -A320_Neo_CDU_1_BTN_D -A320_Neo_CDU_1_BTN_DATA -A320_Neo_CDU_1_BTN_DIR -A320_Neo_CDU_1_BTN_DIV -A320_Neo_CDU_1_BTN_DOT -A320_Neo_CDU_1_BTN_DOWN -A320_Neo_CDU_1_BTN_E -A320_Neo_CDU_1_BTN_F -A320_Neo_CDU_1_BTN_FPLN -A320_Neo_CDU_1_BTN_FUEL -A320_Neo_CDU_1_BTN_G -A320_Neo_CDU_1_BTN_H -A320_Neo_CDU_1_BTN_I -A320_Neo_CDU_1_BTN_J -A320_Neo_CDU_1_BTN_K -A320_Neo_CDU_1_BTN_L -A320_Neo_CDU_1_BTN_L1 -A320_Neo_CDU_1_BTN_L2 -A320_Neo_CDU_1_BTN_L3 -A320_Neo_CDU_1_BTN_L4 -A320_Neo_CDU_1_BTN_L5 -A320_Neo_CDU_1_BTN_L6 -A320_Neo_CDU_1_BTN_M -A320_Neo_CDU_1_BTN_MENU -A320_Neo_CDU_1_BTN_N -A320_Neo_CDU_1_BTN_NEXTPAGE -A320_Neo_CDU_1_BTN_O -A320_Neo_CDU_1_BTN_OVFY -A320_Neo_CDU_1_BTN_P -A320_Neo_CDU_1_BTN_PERF -A320_Neo_CDU_1_BTN_PLUSMINUS -A320_Neo_CDU_1_BTN_PREVPAGE -A320_Neo_CDU_1_BTN_Q -A320_Neo_CDU_1_BTN_R -A320_Neo_CDU_1_BTN_R1 -A320_Neo_CDU_1_BTN_R2 -A320_Neo_CDU_1_BTN_R3 -A320_Neo_CDU_1_BTN_R4 -A320_Neo_CDU_1_BTN_R5 -A320_Neo_CDU_1_BTN_R6 -A320_Neo_CDU_1_BTN_RAD -A320_Neo_CDU_1_BTN_S -A320_Neo_CDU_1_BTN_SEC -A320_Neo_CDU_1_BTN_SP -A320_Neo_CDU_1_BTN_T -A320_Neo_CDU_1_BTN_U -A320_Neo_CDU_1_BTN_UP -A320_Neo_CDU_1_BTN_V -A320_Neo_CDU_1_BTN_W -A320_Neo_CDU_1_BTN_X -A320_Neo_CDU_1_BTN_Y -A320_Neo_CDU_1_BTN_Z -A320_Neo_CDU_2_BTN_0 -A320_Neo_CDU_2_BTN_1 -A320_Neo_CDU_2_BTN_2 -A320_Neo_CDU_2_BTN_3 -A320_Neo_CDU_2_BTN_4 -A320_Neo_CDU_2_BTN_5 -A320_Neo_CDU_2_BTN_6 -A320_Neo_CDU_2_BTN_7 -A320_Neo_CDU_2_BTN_8 -A320_Neo_CDU_2_BTN_9 -A320_Neo_CDU_2_BTN_A -A320_Neo_CDU_2_BTN_AIRPORT -A320_Neo_CDU_2_BTN_ATC -A320_Neo_CDU_2_BTN_B -A320_Neo_CDU_2_BTN_C -A320_Neo_CDU_2_BTN_CLR -A320_Neo_CDU_2_BTN_D -A320_Neo_CDU_2_BTN_DATA -A320_Neo_CDU_2_BTN_DIR -A320_Neo_CDU_2_BTN_DIV -A320_Neo_CDU_2_BTN_DOT -A320_Neo_CDU_2_BTN_DOWN -A320_Neo_CDU_2_BTN_E -A320_Neo_CDU_2_BTN_F -A320_Neo_CDU_2_BTN_FPLN -A320_Neo_CDU_2_BTN_FUEL -A320_Neo_CDU_2_BTN_G -A320_Neo_CDU_2_BTN_H -A320_Neo_CDU_2_BTN_I -A320_Neo_CDU_2_BTN_INIT -A320_Neo_CDU_2_BTN_J -A320_Neo_CDU_2_BTN_K -A320_Neo_CDU_2_BTN_L -A320_Neo_CDU_2_BTN_L1 -A320_Neo_CDU_2_BTN_L2 -A320_Neo_CDU_2_BTN_L3 -A320_Neo_CDU_2_BTN_L4 -A320_Neo_CDU_2_BTN_L5 -A320_Neo_CDU_2_BTN_L6 -A320_Neo_CDU_2_BTN_M -A320_Neo_CDU_2_BTN_MENU -A320_Neo_CDU_2_BTN_N -A320_Neo_CDU_2_BTN_NEXTPAGE -A320_Neo_CDU_2_BTN_O -A320_Neo_CDU_2_BTN_OVFY -A320_Neo_CDU_2_BTN_P -A320_Neo_CDU_2_BTN_PERF -A320_Neo_CDU_2_BTN_PLUSMINUS -A320_Neo_CDU_2_BTN_PREVPAGE -A320_Neo_CDU_2_BTN_PROG -A320_Neo_CDU_2_BTN_Q -A320_Neo_CDU_2_BTN_R -A320_Neo_CDU_2_BTN_R1 -A320_Neo_CDU_2_BTN_R2 -A320_Neo_CDU_2_BTN_R3 -A320_Neo_CDU_2_BTN_R4 -A320_Neo_CDU_2_BTN_R5 -A320_Neo_CDU_2_BTN_R6 -A320_Neo_CDU_2_BTN_RAD -A320_Neo_CDU_2_BTN_S -A320_Neo_CDU_2_BTN_SEC -A320_Neo_CDU_2_BTN_SP -A320_Neo_CDU_2_BTN_T -A320_Neo_CDU_2_BTN_U -A320_Neo_CDU_2_BTN_UP -A320_Neo_CDU_2_BTN_V -A320_Neo_CDU_2_BTN_W -A320_Neo_CDU_2_BTN_X -A320_Neo_CDU_2_BTN_Y -A320_Neo_CDU_2_BTN_Z -A32NX_ADIRS_1_PUSH -A32NX_ADIRS_2_PUSH -A32NX_ADIRS_3_PUSH -A32NX_ADIRS_KNOB_1_ATT -A32NX_ADIRS_KNOB_1_NAV -A32NX_ADIRS_KNOB_1_OFF -A32NX_ADIRS_KNOB_2_ATT -A32NX_ADIRS_KNOB_2_NAV -A32NX_ADIRS_KNOB_2_OFF -A32NX_ADIRS_KNOB_3_ATT -A32NX_ADIRS_KNOB_3_NAV -A32NX_ADIRS_KNOB_3_OFF -TCAS_SWITCH_POSITION_STBY -TCAS_SWITCH_POSITION_TA -TCAS_SWITCH_POSITION_TA_RA -Fly By Wire/A320/Passengers/Crew:GROUP -A32NX_CALLS_EMER_ON_OFF -A32NX_CALLS_EMER_ON_ON -A32NX_EVAC_CAPT_TOGGLE_CAPT -A32NX_EVAC_CAPT_TOGGLE_CAPT_AND_PURS -A32NX_EVAC_COMMAND_TOGGLE_OFF -A32NX_EVAC_COMMAND_TOGGLE_ON -NO_SMOKING_AUTO -NO_SMOKING_OFF -NO_SMOKING_ON -PUSH_OVHD_CALLS_AFT_OFF -PUSH_OVHD_CALLS_AFT_ON -PUSH_OVHD_CALLS_ALL_OFF -PUSH_OVHD_CALLS_ALL_ON -PUSH_OVHD_CALLS_FWD_OFF -PUSH_OVHD_CALLS_FWD_ON -PUSH_OVHD_CALLS_MECH_OFF -PUSH_OVHD_CALLS_MECH_ON -PUSH_OVHD_EVAC_HORN_OFF -PUSH_OVHD_EVAC_HORN_ON -SEATBELT_SWITCH -Fly By Wire/A320/Radio:GROUP -A320_Neo_FBW_BTN_L_ADF -A320_Neo_FBW_BTN_L_AM -A320_Neo_FBW_BTN_L_BFO -A320_Neo_FBW_BTN_L_HF1 -A320_Neo_FBW_BTN_L_HF2 -A320_Neo_FBW_BTN_L_ILS -A320_Neo_FBW_BTN_L_MLS -A320_Neo_FBW_BTN_L_NAV -A320_Neo_FBW_BTN_L_VHF1 -A320_Neo_FBW_BTN_L_VHF2 -A320_Neo_FBW_BTN_L_VHF3 -A320_Neo_FBW_BTN_L_VOR -A320_Neo_FBW_SWITCH_L_TOGGLE -A32NX_OVHD_COCKPITDOORVIDEO_TOGGLE_OFF -A32NX_OVHD_COCKPITDOORVIDEO_TOGGLE_ON -A32NX_RMP_L_INNER_KNOB_TURNED_ANTICLOCKWISE -A32NX_RMP_L_INNER_KNOB_TURNED_CLOCKWISE -A32NX_RMP_L_OFF -A32NX_RMP_L_ON -A32NX_RMP_L_OUTER_KNOB_TURNED_ANTICLOCKWISE -A32NX_RMP_L_OUTER_KNOB_TURNED_CLOCKWISE -A32NX_RMP_L_TOG -A32NX_RMP_L_TRANSFER_BUTTON_PRESSED -A32NX_RMP_R_OFF -A32NX_RMP_R_ON -A32NX_RMP_R_TOG -Fly By Wire/A320/Warning System:GROUP -A320_Neo_MFD_BTN_TERRONND_1 -A32NX_MASTER_CAUTION_PRESSED -A32NX_MASTER_CAUTION_RELEASED -A32NX_GPWS_FLAPS3_OFF -A32NX_GPWS_FLAPS3_ON -A32NX_GPWS_FLAP_OFF_OFF -A32NX_GPWS_FLAP_OFF_ON -A32NX_GPWS_GS_OFF_OFF -A32NX_GPWS_GS_OFF_ON -A32NX_GPWS_SYS_OFF_OFF -A32NX_GPWS_SYS_OFF_ON -A32NX_GPWS_TERR_OFF_OFF -A32NX_GPWS_TERR_OFF_ON -A32NX_MASTER_WARNING_PRESSED -A32NX_MASTER_WARNING_RELEASED -FlyInside/Bell 47 G/Electrical:GROUP -ALTERNATOR_SWITCH_TOGGLE -BATTERY_SWITCH_TOGGLE -IGNITION_KEY_SWITCH -INSTRUMENTS_POWER_SWITCH_TOGGLE -STARTER_COLLECTIVE_SWITCH -FlyInside/Bell 47 G/Engines:GROUP -OIL_TRANS_TEMP_SWAP -FlyInside/Bell 47 G/Flight Instrumentation:GROUP -BAROMETRIC_PRESSURE_ENCODER_DEC -BAROMETRIC_PRESSURE_ENCODER_INC -STD_PRESSURE_SW -FlyInside/Bell 47 G/Fuel:GROUP -FUEL_PRIMER_SWITCH_TOGGLE -FlyInside/Bell 47 G/Interaction:GROUP -CABIN_DOORS_TOGGLE -FlyInside/Bell 47 G/Lights:GROUP -BEACON_LIGHT_SWITCH_TOGGLE -CABIN_LIGHTS_ON_OFF -LANDING_LIGHT_SWITCH_TOGGLE -NAVIGATION_LIGHTS_SWITCH_TOGGLE -STROBE_LIGHT_SWITCH_TOGGLE -FlyInside/Bell 47 G/Miscellaneous:GROUP -OIL_TEMP_TRANS_SWITCH_TOGGLE -FlyInside/Bell 47 G/Radio:GROUP -COM_RADIO_KHZ_DEC_ENCODER -COM_RADIO_KHZ_INC_ENCODER -COM_RADIO_MHZ_DEC_ENCODER -COM_RADIO_MHZ_INC_ENCODER -COM_RADIO_STBY_ACTIVE_SWAP_SW -COM_RADIO_SWITCH_ON_OFF -TRANSPONDER_CODE_1000_INC -TRANSPONDER_CODE_100_INC -TRANSPONDER_CODE_10_INC -TRANSPONDER_CODE_1_INC -TRANSPONDER_MODE_CHANGE_ENCODER -Hype Performance Group/H135/Avionics:GROUP -H135_DISPLAY_CENTER_ON -H135_DISPLAY_LEFT_ON -H135_DISPLAY_RIGHT_ON -H135_Left_Lower_MFD -H135_MFDC_SoftKey_Bottom_1 -H135_MFDC_SoftKey_Bottom_2 -H135_MFDC_SoftKey_Bottom_3 -H135_MFDC_SoftKey_Bottom_4 -H135_MFDC_SoftKey_Bottom_5 -H135_MFDC_SoftKey_Bottom_6 -H135_MFDC_SoftKey_Left_1 -H135_MFDC_SoftKey_Left_2 -H135_MFDC_SoftKey_Left_3 -H135_MFDC_SoftKey_Left_4 -H135_MFDC_SoftKey_Left_5 -H135_MFDC_SoftKey_Left_6 -H135_MFDC_SoftKey_Right_1 -H135_MFDC_SoftKey_Right_2 -H135_MFDC_SoftKey_Right_3 -H135_MFDC_SoftKey_Right_4 -H135_MFDC_SoftKey_Right_5 -H135_MFDC_SoftKey_Right_6 -H135_MFDC_SoftKey_Top_1 -H135_MFDC_SoftKey_Top_2 -H135_MFDC_SoftKey_Top_3 -H135_MFDC_SoftKey_Top_4 -H135_MFDC_SoftKey_Top_5 -H135_MFDC_SoftKey_Top_6 -H135_MFDL_SoftKey_Bottom_1 -H135_MFDL_SoftKey_Bottom_2 -H135_MFDL_SoftKey_Bottom_3 -H135_MFDL_SoftKey_Bottom_4 -H135_MFDL_SoftKey_Bottom_5 -H135_MFDL_SoftKey_Bottom_6 -H135_MFDL_SoftKey_Left_1 -H135_MFDL_SoftKey_Left_2 -H135_MFDL_SoftKey_Left_3 -H135_MFDL_SoftKey_Left_4 -H135_MFDL_SoftKey_Left_5 -H135_MFDL_SoftKey_Left_6 -H135_MFDL_SoftKey_Right_1 -H135_MFDL_SoftKey_Right_2 -H135_MFDL_SoftKey_Right_3 -H135_MFDL_SoftKey_Right_4 -H135_MFDL_SoftKey_Right_5 -H135_MFDL_SoftKey_Right_6 -H135_MFDL_SoftKey_Top_1 -H135_MFDL_SoftKey_Top_2 -H135_MFDL_SoftKey_Top_3 -H135_MFDL_SoftKey_Top_4 -H135_MFDL_SoftKey_Top_5 -H135_MFDL_SoftKey_Top_6 -H135_MFDR_SoftKey_Bottom_1 -H135_MFDR_SoftKey_Bottom_2 -H135_MFDR_SoftKey_Bottom_3 -H135_MFDR_SoftKey_Bottom_4 -H135_MFDR_SoftKey_Bottom_5 -H135_MFDR_SoftKey_Bottom_6 -H135_MFDR_SoftKey_Left_1 -H135_MFDR_SoftKey_Left_2 -H135_MFDR_SoftKey_Left_3 -H135_MFDR_SoftKey_Left_4 -H135_MFDR_SoftKey_Left_5 -H135_MFDR_SoftKey_Left_6 -H135_MFDR_SoftKey_Right_1 -H135_MFDR_SoftKey_Right_2 -H135_MFDR_SoftKey_Right_3 -H135_MFDR_SoftKey_Right_4 -H135_MFDR_SoftKey_Right_5 -H135_MFDR_SoftKey_Right_6 -H135_MFDR_SoftKey_Top_1 -H135_MFDR_SoftKey_Top_2 -H135_MFDR_SoftKey_Top_3 -H135_MFDR_SoftKey_Top_4 -H135_MFDR_SoftKey_Top_5 -H135_MFDR_SoftKey_Top_6 -H135_Right_Lower_MFD -Hype Performance Group/H135/Engines:GROUP -H135_Engine1_Down -H135_Engine2_Down -H135_Engine2_Up -Hype Performance Group/H135/Miscellaneous:GROUP -H135_MFDC_Knob_Down -H135_MFDC_Knob_Up -H135_MFDC_SoftKey_Right_BRT_Down -H135_MFDC_SoftKey_Right_BRT_Up -H135_MFDL_Knob_Down -H135_MFDL_Knob_Up -H135_MFDL_SoftKey_Right_BRT_Down -H135_MFDL_SoftKey_Right_BRT_Up -H135_MFDR_Knob_Down -H135_MFDR_Knob_Up -H135_MFDR_SoftKey_Right_BRT_Down -H135_MFDR_SoftKey_Right_BRT_Up -H135_Search_Light -H135_Tablet_Open -H135_Turbo_Mode -Hype Performance Group/H135/Passengers/Crew:GROUP -H135_Pilot_0_Show -H135_Pilot_1_Show -Hype Performance Group/H145/Air Condition / Pressurization:GROUP -H145_SDK_OH_AIR_CONDITIONING_OFF -H145_SDK_OH_AIR_CONDITIONING_ON -H145_SDK_OH_COCKPIT_VENT_OFF -H145_SDK_OH_COCKPIT_VENT_ON -H145_SDK_OH_IBF_1_CLOSED -H145_SDK_OH_IBF_1_NORMAL -H145_SDK_OH_IBF_1_OPEN -H145_SDK_OH_IBF_2_CLOSED -H145_SDK_OH_IBF_2_NORMAL -H145_SDK_OH_IBF_2_OPEN -H145_SDK_OH_IBF_RECALL_OFF -H145_SDK_OH_IBF_RECALL_ON -Hype Performance Group/H145/Autopilot:GROUP -H145_SDK_APCP_ALTA_AntiClockwise -H145_SDK_APCP_ALTA_Clockwise -H145_SDK_APCP_ALT_TOGGLE -H145_SDK_APCP_AP1_TOGGLE -H145_SDK_APCP_AP2_TOGGLE -H145_SDK_APCP_ATRIM_TOGGLE -H145_SDK_APCP_BKUP_TOGGLE -H145_SDK_APCP_CRHT_AntiClockwise -H145_SDK_APCP_CRHT_Clockwise -H145_SDK_APCP_CRHT_TOGGLE -H145_SDK_APCP_HDG_AntiClockwise -H145_SDK_APCP_HDG_Clockwise -Hype Performance Group/H145/Avionics:GROUP -H145_MFD1_SoftKey_B1 -H145_MFD1_SoftKey_B2 -H145_MFD1_SoftKey_B3 -H145_MFD1_SoftKey_B4 -H145_MFD1_SoftKey_B5 -H145_MFD1_SoftKey_B6 -H145_MFD1_SoftKey_KnobInnerAntiClockwise -H145_MFD1_SoftKey_KnobInnerClockwise -H145_MFD1_SoftKey_KnobInnerPush -H145_MFD1_SoftKey_KnobInnerPushLong -H145_MFD1_SoftKey_KnobOuterAntiClockwise -H145_MFD1_SoftKey_KnobOuterClockwise -H145_MFD1_SoftKey_L1 -H145_MFD1_SoftKey_L2 -H145_MFD1_SoftKey_L3 -H145_MFD1_SoftKey_L4 -H145_MFD1_SoftKey_L5 -H145_MFD1_SoftKey_L6 -H145_MFD1_SoftKey_R1 -H145_MFD1_SoftKey_R2 -H145_MFD1_SoftKey_R3 -H145_MFD1_SoftKey_R4 -H145_MFD1_SoftKey_R5 -H145_MFD1_SoftKey_R6 -H145_MFD1_SoftKey_T1 -H145_MFD1_SoftKey_T2 -H145_MFD1_SoftKey_T3 -H145_MFD1_SoftKey_T4 -H145_MFD1_SoftKey_T5 -H145_MFD1_SoftKey_T6 -H145_MFD2_SoftKey_B1 -H145_MFD2_SoftKey_B2 -H145_MFD2_SoftKey_B3 -H145_MFD2_SoftKey_B4 -H145_MFD2_SoftKey_B5 -H145_MFD2_SoftKey_B6 -H145_MFD2_SoftKey_KnobInnerAntiClockwise -H145_MFD2_SoftKey_KnobInnerClockwise -H145_MFD2_SoftKey_KnobInnerPush -H145_MFD2_SoftKey_KnobInnerPushLong -H145_MFD2_SoftKey_KnobOuterAntiClockwise -H145_MFD2_SoftKey_KnobOuterClockwise -H145_MFD2_SoftKey_L1 -H145_MFD2_SoftKey_L2 -H145_MFD2_SoftKey_L3 -H145_MFD2_SoftKey_L4 -H145_MFD2_SoftKey_L5 -H145_MFD2_SoftKey_L6 -H145_MFD2_SoftKey_R1 -H145_MFD2_SoftKey_R2 -H145_MFD2_SoftKey_R3 -H145_MFD2_SoftKey_R4 -H145_MFD2_SoftKey_R5 -H145_MFD2_SoftKey_R6 -H145_MFD2_SoftKey_T1 -H145_MFD2_SoftKey_T2 -H145_MFD2_SoftKey_T3 -H145_MFD2_SoftKey_T4 -H145_MFD2_SoftKey_T5 -H145_MFD2_SoftKey_T6 -H145_MFD4_SoftKey_B1 -H145_MFD4_SoftKey_B2 -H145_MFD4_SoftKey_B3 -H145_MFD4_SoftKey_B4 -H145_MFD4_SoftKey_B5 -H145_MFD4_SoftKey_B6 -H145_MFD4_SoftKey_KnobInnerAntiClockwise -H145_MFD4_SoftKey_KnobInnerClockwise -H145_MFD4_SoftKey_KnobInnerPush -H145_MFD4_SoftKey_KnobInnerPushLong -H145_MFD4_SoftKey_KnobOuterAntiClockwise -H145_MFD4_SoftKey_KnobOuterClockwise -H145_MFD4_SoftKey_L1 -H145_MFD4_SoftKey_L2 -H145_MFD4_SoftKey_L3 -H145_MFD4_SoftKey_L4 -H145_MFD4_SoftKey_L5 -H145_MFD4_SoftKey_L6 -H145_MFD4_SoftKey_R1 -H145_MFD4_SoftKey_R2 -H145_MFD4_SoftKey_R3 -H145_MFD4_SoftKey_R4 -H145_MFD4_SoftKey_R5 -H145_MFD4_SoftKey_R6 -H145_MFD4_SoftKey_T1 -H145_MFD4_SoftKey_T2 -H145_MFD4_SoftKey_T3 -H145_MFD4_SoftKey_T4 -H145_MFD4_SoftKey_T5 -H145_MFD4_SoftKey_T6 -Hype Performance Group/H145/Electrical:GROUP -H145_SDK_OH_BAT_MASTER_ENGAGE -H145_SDK_OH_BAT_MASTER_OFF -H145_SDK_OH_BAT_MASTER_ON -H145_SDK_OH_DC_RECEPT_OFF -H145_SDK_OH_DC_RECEPT_ON -Hype Performance Group/H145/Engines:GROUP -H145_SDK_ECP_FADEC_EMER_1_OFF -H145_SDK_ECP_FADEC_EMER_1_ON -H145_SDK_ECP_FADEC_EMER_2_OFF -H145_SDK_ECP_FADEC_EMER_2_ON -H145_SDK_ECP_MAIN_1_FLIGHT -H145_SDK_ECP_MAIN_1_IDLE -H145_SDK_ECP_MAIN_1_OFF -H145_SDK_ECP_MAIN_2_FLIGHT -H145_SDK_ECP_MAIN_2_IDLE -H145_SDK_ECP_MAIN_2_OFF -H145_SDK_ECP_MAIN_LATCH_1_OFF -H145_SDK_ECP_MAIN_LATCH_1_ON -H145_SDK_ECP_MAIN_LATCH_2_OFF -H145_SDK_ECP_MAIN_LATCH_2_ON -Hype Performance Group/H145/Fuel:GROUP -H145_SDK_OH_FUEL_ENG1_PRIME_OFF -H145_SDK_OH_FUEL_ENG1_PRIME_ON -H145_SDK_OH_FUEL_ENG2_PRIME_OFF -H145_SDK_OH_FUEL_ENG2_PRIME_ON -H145_SDK_OH_FUEL_TRANSFER_AFT_OFF -H145_SDK_OH_FUEL_TRANSFER_AFT_ON -H145_SDK_OH_FUEL_TRANSFER_FWD_OFF -H145_SDK_OH_FUEL_TRANSFER_FWD_ON -Hype Performance Group/H145/Lights:GROUP -H145_SDK_OH_INT_LIGHT_CARGO_PAX_OFF -H145_SDK_OH_INT_LIGHT_CARGO_PAX_ON -H145_SDK_OH_INT_LIGHT_CARGO_PAX_PAX -H145_SDK_OH_INT_LIGHT_EMERGENCY_EXITS_ARM -H145_SDK_OH_INT_LIGHT_EMERGENCY_EXITS_OFF -H145_SDK_OH_INT_LIGHT_EMERGENCY_EXITS_ON -H145_SDK_OH_INT_LIGHT_INSTRUMENT_PANEL_OFF -H145_SDK_OH_INT_LIGHT_INSTRUMENT_PANEL_ON -Hype Performance Group/H145/Miscellaneous:GROUP -H145_SDK_DOOR_CARGO_L_TOGGLE -H145_SDK_DOOR_CARGO_R_TOGGLE -H145_SDK_DOOR_COCKPIT_L_TOGGLE -H145_SDK_DOOR_COCKPIT_R_TOGGLE -H145_SDK_DOOR_PAX_L_TOGGLE -H145_SDK_DOOR_PAX_R_TOGGLE -H145_SDK_OH_WINDSHIELD_WIPER_FAST -H145_SDK_OH_WINDSHIELD_WIPER_OFF -H145_SDK_OH_WINDSHIELD_WIPER_SLOW -Hype Performance Group/H145/Radio:GROUP -H145_SDK_OH_AUDIO_ACAS_MUTE -H145_SDK_OH_AUDIO_ACAS_NORMAL -H145_SDK_OH_AUDIO_ACAS_TEST -H145_SDK_OH_AUDIO_HTAWS_MUTE -H145_SDK_OH_AUDIO_HTAWS_NORMAL -H145_SDK_OH_AUDIO_HTAWS_STANDBY -Hype Performance Group/H145/Safety:GROUP -H145_SDK_OH_EMER_FLOATS_ARM -H145_SDK_OH_EMER_FLOATS_OFF -H145_SDK_OH_EMER_FLOATS_TEST -H145_SDK_OH_FIRE_ENG1_TEST_EXT -H145_SDK_OH_FIRE_ENG1_TEST_EXT_WARN -H145_SDK_OH_FIRE_ENG1_TEST_OFF -H145_SDK_OH_FIRE_ENG2_TEST_EXT -H145_SDK_OH_FIRE_ENG2_TEST_EXT_WARN -H145_SDK_OH_FIRE_ENG2_TEST_OFF -H145_SDK_OH_FUZZ_CHIP_BURNER_OFF -H145_SDK_OH_FUZZ_CHIP_BURNER_ON -H145_SDK_OH_HYD_TEST_OFF -H145_SDK_OH_HYD_TEST_SYS1 -H145_SDK_OH_HYD_TEST_SYS2 -H145_SDK_OH_LAMP_TEST_LAMP -H145_SDK_OH_LAMP_TEST_OFF -H145_SDK_OH_LAMP_TEST_PREFLIGHT -H145_SDK_OH_LAVCS_OFF -H145_SDK_OH_LAVCS_PAX -H145_SDK_OH_LAVCS_PIL -Just Flight/Hawk T1/Anti-Ice:GROUP -HT1_FWD_LEFT_PitotHeat_Off -HT1_FWD_LEFT_PitotHeat_On -Just Flight/Hawk T1/Avionics:GROUP -HT1_FWD_KNEE_Erect_Press -HT1_FWD_KNEE_Erect_Release -HT1_FWD_KNEE_HSI_Mode_DG -HT1_FWD_KNEE_HSI_Mode_Off -HT1_FWD_KNEE_HSI_Mode_SLV -HT1_FWD_KNEE_Hdg_Push -HT1_FWD_KNEE_Hdg_Set_Dec -HT1_FWD_KNEE_Hdg_Set_Inc -HT1_FWD_KNEE_Lat_Dec -HT1_FWD_KNEE_Lat_Inc -HT1_FWD_RIGHT_IFF_Dig1_Down -HT1_FWD_RIGHT_IFF_Dig1_Release -HT1_FWD_RIGHT_IFF_Dig1_Up -HT1_FWD_RIGHT_IFF_Dig2_Down -HT1_FWD_RIGHT_IFF_Dig2_Release -HT1_FWD_RIGHT_IFF_Dig2_Up -HT1_FWD_RIGHT_IFF_Dig3_Down -HT1_FWD_RIGHT_IFF_Dig3_Release -HT1_FWD_RIGHT_IFF_Dig3_Up -HT1_FWD_RIGHT_IFF_Dig4_Down -HT1_FWD_RIGHT_IFF_Dig4_Release -HT1_FWD_RIGHT_IFF_Dig4_Up -HT1_FWD_RIGHT_IFF_Func_Down -HT1_FWD_RIGHT_IFF_Func_Release -HT1_FWD_RIGHT_IFF_Func_Up -HT1_FWD_RIGHT_IFF_Ident_Press -HT1_FWD_RIGHT_IFF_Ident_Release -HT1_FWD_RIGHT_IFF_LR_Center -HT1_FWD_RIGHT_IFF_LR_L -HT1_FWD_RIGHT_IFF_LR_R -HT1_FWD_RIGHT_IFF_M1_Auto -HT1_FWD_RIGHT_IFF_M1_M1 -HT1_FWD_RIGHT_IFF_M1_Out -HT1_FWD_RIGHT_IFF_M2_M2 -HT1_FWD_RIGHT_IFF_M2_Out -HT1_FWD_RIGHT_IFF_M3A_Auto -HT1_FWD_RIGHT_IFF_M3A_M3A -HT1_FWD_RIGHT_IFF_M3A_Out -HT1_FWD_RIGHT_IFF_M5_M5 -HT1_FWD_RIGHT_IFF_M5_Out -HT1_FWD_RIGHT_IFF_MC_MC -HT1_FWD_RIGHT_IFF_MC_MCS -HT1_FWD_RIGHT_IFF_MC_Out -HT1_FWD_RIGHT_IFF_MS_MS -HT1_FWD_RIGHT_IFF_MS_Out -HT1_FWD_RIGHT_IFF_Master_Norm -HT1_FWD_RIGHT_IFF_Master_PullEmer -HT1_FWD_RIGHT_IFF_Master_PullOff -HT1_FWD_RIGHT_IFF_Master_Stby -HT1_FWD_RIGHT_IFF_Master_TA -HT1_FWD_RIGHT_IFF_Master_TARA -HT1_FWD_RIGHT_IFF_Mode4_4A -HT1_FWD_RIGHT_IFF_Mode4_4B -HT1_FWD_RIGHT_IFF_Mode4_Hold -HT1_FWD_RIGHT_IFF_Mode4_PullErase -HT1_FWD_RIGHT_IFF_Mode4_PullOut -HT1_FWD_RIGHT_IFF_Test_Press -HT1_FWD_RIGHT_IFF_Test_Release -HT1_FWD_RIGHT_ILS_Dig1_Dec -HT1_FWD_RIGHT_ILS_Dig1_Inc -HT1_FWD_RIGHT_ILS_Dig2_Dec -HT1_FWD_RIGHT_ILS_Dig2_Inc -HT1_FWD_RIGHT_ILS_Dig3_Dec -HT1_FWD_RIGHT_ILS_Dig3_Inc -HT1_FWD_RIGHT_ILS_Dig4_Dec -HT1_FWD_RIGHT_ILS_Dig4_Inc -HT1_FWD_RIGHT_ILS_Mode_Dec -HT1_FWD_RIGHT_ILS_Mode_ILS -HT1_FWD_RIGHT_ILS_Mode_Inc -HT1_FWD_RIGHT_ILS_Mode_Off -HT1_FWD_RIGHT_ILS_Mode_VOR -HT1_FWD_RIGHT_TACAN_Left_Dec -HT1_FWD_RIGHT_TACAN_Left_Inc -HT1_FWD_RIGHT_TACAN_Mode_Dec -HT1_FWD_RIGHT_TACAN_Mode_Inc -HT1_FWD_RIGHT_TACAN_Mode_Off -HT1_FWD_RIGHT_TACAN_Mode_RX -HT1_FWD_RIGHT_TACAN_Mode_TXRX -HT1_FWD_RIGHT_TACAN_Right_Dec -HT1_FWD_RIGHT_TACAN_Right_Inc -HT1_FWD_RIGHT_TACAN_XY_Dec -HT1_FWD_RIGHT_TACAN_XY_Inc -HT1_FWD_RIGHT_TACAN_XY_Toggle -HT1_FWD_Sight_depression_Dec -HT1_FWD_Sight_depression_Inc -HT1_FWD_Sight_drift_Dec -HT1_FWD_Sight_drift_Inc -HT1_FWD_Sight_mode_B -HT1_FWD_Sight_mode_Dec -HT1_FWD_Sight_mode_G -HT1_FWD_Sight_mode_GA -HT1_FWD_Sight_mode_Inc -HT1_FWD_Sight_mode_M -HT1_FWD_Sight_mode_Off -HT1_FWD_Sight_mode_R -HT1_FWD_Sight_mode_S -Just Flight/Hawk T1/Controls:GROUP -HT1_FWD_KNEE_RudderLock_Toggle -HT1_FWD_LEFT_AileronTrim_1_Left -HT1_FWD_LEFT_AileronTrim_1_Release -HT1_FWD_LEFT_AileronTrim_1_Right -HT1_FWD_LEFT_AileronTrim_2_Left -HT1_FWD_LEFT_AileronTrim_2_Release -HT1_FWD_LEFT_AileronTrim_2_Right -HT1_FWD_LEFT_Airbrake_Dec -HT1_FWD_LEFT_Airbrake_Inc -HT1_FWD_LEFT_Airbrake_Release -HT1_FWD_LEFT_FlapSel_Down -HT1_FWD_LEFT_FlapSel_Mid -HT1_FWD_LEFT_FlapSel_Up -HT1_FWD_LEFT_RudderTrim_Left -HT1_FWD_LEFT_RudderTrim_Release -HT1_FWD_LEFT_RudderTrim_Right -HT1_FWD_LEFT_TailTrim_Cover_Close -HT1_FWD_LEFT_TailTrim_Cover_Open -HT1_FWD_LEFT_TailTrim_Switch_Down -HT1_FWD_LEFT_TailTrim_Switch_Release -HT1_FWD_LEFT_TailTrim_Switch_Up -HT1_FWD_STICK_Trim_Dec -HT1_FWD_STICK_Trim_Inc -HT1_FWD_STICK_Trim_Release -Just Flight/Hawk T1/Electrical:GROUP -HT1_FWD_LEFT_AC3Reset_Press -HT1_FWD_LEFT_AC3Reset_Release -HT1_FWD_LEFT_Batt1_Off -HT1_FWD_LEFT_Batt1_On -HT1_FWD_LEFT_Batt2_Off -HT1_FWD_LEFT_Batt2_On -Just Flight/Hawk T1/Engines:GROUP -HT1_FWD_LEFT_Airbrake_In -HT1_FWD_LEFT_Airbrake_Out -HT1_FWD_LEFT_EngStart_Off -HT1_FWD_LEFT_EngStart_On -HT1_FWD_LEFT_EngStart_Start -HT1_FWD_LEFT_Ignition_off -HT1_FWD_LEFT_Ignition_on -HT1_FWD_LEFT_ThrottleRelight_Press -HT1_FWD_LEFT_ThrottleRelight_Release -HT1_FWD_THROTTLE_Idle_Stop_Toggle -Just Flight/Hawk T1/Flight Instrumentation:GROUP -HT1_FWD_ALT_Baro_Dec -HT1_FWD_ALT_Baro_Inc -HT1_FWD_DGI_Knob_Pull -HT1_FWD_DGI_Knob_Push -HT1_FWD_DGI_Knob_Set_Dec -HT1_FWD_DGI_Knob_Set_Inc -HT1_FWD_Gmeter_Push_Press -HT1_FWD_Gmeter_Push_Release -HT1_FWD_HSI_Crs_Knob_Dec -HT1_FWD_HSI_Crs_Knob_Inc -HT1_FWD_HSI_Hdg_Knob_Dec -HT1_FWD_HSI_Hdg_Knob_Inc -HT1_FWD_LEFT_Altimeter_Release -HT1_FWD_LEFT_Altimeter_Test -HT1_FWD_STBY_ALT_Baro_Dec -HT1_FWD_STBY_ALT_Baro_Inc -HT1_FWD_Stby_Inst_Pwr_Batt -HT1_FWD_Stby_Inst_Pwr_Normal -Just Flight/Hawk T1/Fuel:GROUP -HT1_FWD_LEFT_FuelFlow_Off -HT1_FWD_LEFT_FuelFlow_On -HT1_FWD_LEFT_FuelPump_Off -HT1_FWD_LEFT_FuelPump_On -Just Flight/Hawk T1/Gear:GROUP -HT1_FWD_LEFT_AntiSkid_Off -HT1_FWD_LEFT_AntiSkid_On -HT1_FWD_LEFT_Gear_Down_Press -HT1_FWD_LEFT_Gear_Up_Press -Just Flight/Hawk T1/Hydraulic:GROUP -HT1_FWD_LEFT_HydReset_Press -HT1_FWD_LEFT_HydReset_Release -Just Flight/Hawk T1/Lights:GROUP -HT1_FWD_Land_Taxi_Down -HT1_FWD_Land_Taxi_Up -HT1_FWD_RIGHT_Lights_Anticol_Lower_Off -HT1_FWD_RIGHT_Lights_Anticol_Lower_Red -HT1_FWD_RIGHT_Lights_Anticol_Lower_White -HT1_FWD_RIGHT_Lights_Anticol_Upper_Off -HT1_FWD_RIGHT_Lights_Anticol_Upper_Red -HT1_FWD_RIGHT_Lights_Anticol_Upper_White -HT1_FWD_RIGHT_Lights_Centre_Dec -HT1_FWD_RIGHT_Lights_Centre_Inc -HT1_FWD_RIGHT_Lights_Compass_Off -HT1_FWD_RIGHT_Lights_Compass_On -HT1_FWD_RIGHT_Lights_Emer_Off -HT1_FWD_RIGHT_Lights_Emer_On -HT1_FWD_RIGHT_Lights_Nav_Down -HT1_FWD_RIGHT_Lights_Nav_Up -HT1_FWD_RIGHT_Lights_Panel_Off -HT1_FWD_RIGHT_Lights_Panel_On -HT1_FWD_RIGHT_Lights_Port_Dec -HT1_FWD_RIGHT_Lights_Port_Inc -HT1_FWD_RIGHT_Lights_Stbd_Dec -HT1_FWD_RIGHT_Lights_Stbd_Inc -Just Flight/Hawk T1/Miscellaneous:GROUP -HT1_Canopy_click -HT1_FWD_LEFT_FreqCard_Toggle -HT1_FWD_LEFT_Stopwatch_Click -HT1_FWD_LEFT_Stopwatch_Knob_Push -HT1_FWD_LEFT_Stopwatch_Knob_Release -HT1_FWD_LEFT_Stopwatch_Reset_Push -HT1_FWD_LEFT_Stopwatch_Reset_Release -HT1_FWD_MISC_MapLight_Left_Toggle -HT1_FWD_MISC_MapLight_Right_Toggle -HT1_FWD_RIGHT_Air_Mode_Dec -HT1_FWD_RIGHT_Air_Mode_Inc -HT1_FWD_RIGHT_Air_Temp_Dec -HT1_FWD_RIGHT_Air_Temp_Inc -HT1_FWD_RIGHT_Airbrake_Test_Off -HT1_FWD_RIGHT_Airbrake_Test_On -HT1_FWD_RIGHT_FreqCard_Toggle -HT1_FWD_RIGHT_Oxygen_Toggle -HT1_FWD_RIGHT_Seat_Lower -HT1_FWD_RIGHT_Seat_Raise -HT1_FWD_STICK_Camera_Press -HT1_FWD_STICK_Camera_Release -HT1_RA_L_Smoke_Blue_Select -HT1_RA_L_Smoke_Red_Select -HT1_RA_L_Smoke_White_Select -HT1_RA_R_Smoke_Blue_Select -HT1_RA_R_Smoke_Red_Select -HT1_RA_R_Smoke_White_Select -HT1_RA_Smoke_Switch_Off -HT1_RA_Smoke_Switch_On -HT1_SHARED_Canopy_Handle_Toggle -Just Flight/Hawk T1/Navigation:GROUP -HT1_FWD_GPS_Brt_Press -HT1_FWD_GPS_Brt_Release -HT1_FWD_GPS_Func_1_Press -HT1_FWD_GPS_Func_1_Release -HT1_FWD_GPS_Func_2_Press -HT1_FWD_GPS_Func_2_Release -HT1_FWD_GPS_Func_3_Press -HT1_FWD_GPS_Func_3_Release -HT1_FWD_GPS_Func_4_Press -HT1_FWD_GPS_Func_4_Release -HT1_FWD_GPS_Func_5_Press -HT1_FWD_GPS_Func_5_Release -HT1_FWD_GPS_Power_Press -HT1_FWD_GPS_Power_Release -HT1_FWD_MAIN_ILS_Marker_Press -HT1_FWD_MAIN_ILS_Marker_Release -Just Flight/Hawk T1/Radio:GROUP -HT1_FWD_LEFT_AltPTT_Push -HT1_FWD_LEFT_AltPTT_Release -HT1_FWD_LEFT_RadioMute_Off -HT1_FWD_LEFT_RadioMute_On -HT1_FWD_LEFT_ThrottleTransmit_Press -HT1_FWD_LEFT_ThrottleTransmit_Release -HT1_FWD_LEFT_UHF_A -HT1_FWD_LEFT_UHF_Main -HT1_FWD_LEFT_UHF_Stby -HT1_FWD_MAIN_UHF_Pwr_Batt -HT1_FWD_MAIN_UHF_Pwr_Normal -HT1_FWD_RIGHT_CCS_Fail -HT1_FWD_RIGHT_CCS_Ic_Dec -HT1_FWD_RIGHT_CCS_Ic_Inc -HT1_FWD_RIGHT_CCS_Ils_Off -HT1_FWD_RIGHT_CCS_Ils_On -HT1_FWD_RIGHT_CCS_Norm -HT1_FWD_RIGHT_CCS_Ptt_Alt -HT1_FWD_RIGHT_CCS_Ptt_Norm -HT1_FWD_RIGHT_CCS_Rx_Dec -HT1_FWD_RIGHT_CCS_Rx_Inc -HT1_FWD_RIGHT_CCS_Sel_Uhf -HT1_FWD_RIGHT_CCS_Sel_Vhf -HT1_FWD_RIGHT_CCS_Tacan_Off -HT1_FWD_RIGHT_CCS_Tacan_On -HT1_FWD_RIGHT_CCS_Uhf_Off -HT1_FWD_RIGHT_CCS_Uhf_On -HT1_FWD_RIGHT_CCS_Vhf_Off -HT1_FWD_RIGHT_CCS_Vhf_On -HT1_FWD_RIGHT_VHF_Ant_Lower -HT1_FWD_RIGHT_VHF_Ant_Upper -HT1_FWD_RIGHT_VHF_Brt_Dec -HT1_FWD_RIGHT_VHF_Brt_Inc -HT1_FWD_RIGHT_VHF_Brt_Release -HT1_FWD_RIGHT_VHF_Enter_Press -HT1_FWD_RIGHT_VHF_Enter_Release -HT1_FWD_RIGHT_VHF_Frq_Mode_121 -HT1_FWD_RIGHT_VHF_Frq_Mode_243 -HT1_FWD_RIGHT_VHF_Frq_Mode_ECCM -HT1_FWD_RIGHT_VHF_Frq_Mode_MAN -HT1_FWD_RIGHT_VHF_Frq_Mode_MAR -HT1_FWD_RIGHT_VHF_Frq_Mode_PRST -HT1_FWD_RIGHT_VHF_Menu_Press -HT1_FWD_RIGHT_VHF_Menu_Release -HT1_FWD_RIGHT_VHF_NavSel_Down -HT1_FWD_RIGHT_VHF_NavSel_Release -HT1_FWD_RIGHT_VHF_NavSel_Up -HT1_FWD_RIGHT_VHF_OP_Mode_ARF -HT1_FWD_RIGHT_VHF_OP_Mode_OFF -HT1_FWD_RIGHT_VHF_OP_Mode_TEST -HT1_FWD_RIGHT_VHF_OP_Mode_TR -HT1_FWD_RIGHT_VHF_OP_Mode_TRG -HT1_FWD_RIGHT_VHF_OP_Mode_ZERO -HT1_FWD_RIGHT_VHF_Ptt_Off -HT1_FWD_RIGHT_VHF_Ptt_On -HT1_FWD_RIGHT_VHF_Sel_1_Dec -HT1_FWD_RIGHT_VHF_Sel_1_Inc -HT1_FWD_RIGHT_VHF_Sel_2_Dec -HT1_FWD_RIGHT_VHF_Sel_2_Inc -HT1_FWD_RIGHT_VHF_Sel_3_Dec -HT1_FWD_RIGHT_VHF_Sel_3_Inc -HT1_FWD_RIGHT_VHF_Sel_4_Dec -HT1_FWD_RIGHT_VHF_Sel_4_Inc -HT1_FWD_RIGHT_VHF_Sel_5_Dec -HT1_FWD_RIGHT_VHF_Sel_5_Inc -HT1_FWD_RIGHT_VHF_Squelch_Press -HT1_FWD_RIGHT_VHF_Squelch_Release -HT1_FWD_RIGHT_VHF_Vol_Down -HT1_FWD_RIGHT_VHF_Vol_Release -HT1_FWD_RIGHT_VHF_Vol_Up -HT1_FWD_STICK_MuteButton_Press -HT1_FWD_STICK_MuteButton_Release -HT1_FWD_UHF_Dig1_Dec -HT1_FWD_UHF_Dig1_Inc -HT1_FWD_UHF_Dig2_Dec -HT1_FWD_UHF_Dig2_Inc -HT1_FWD_UHF_Dig3_Dec -HT1_FWD_UHF_Dig3_Inc -HT1_FWD_UHF_Dig4_Dec -HT1_FWD_UHF_Dig4_Inc -HT1_FWD_UHF_Dig5_Dec -HT1_FWD_UHF_Dig5_Inc -HT1_FWD_UHF_Mode_ADF -HT1_FWD_UHF_Mode_Both -HT1_FWD_UHF_Mode_Main -HT1_FWD_UHF_Mode_Off -HT1_FWD_UHF_Preset_Sel_Dec -HT1_FWD_UHF_Preset_Sel_Inc -HT1_FWD_UHF_Squelch_Off -HT1_FWD_UHF_Squelch_On -HT1_FWD_UHF_Store -HT1_FWD_UHF_Tone_Press -HT1_FWD_UHF_Tone_Release -HT1_FWD_UHF_Trans_Guard -HT1_FWD_UHF_Trans_Manual -HT1_FWD_UHF_Trans_Preset -HT1_FWD_UHF_Vol_Dec -HT1_FWD_UHF_Vol_Inc -Just Flight/Hawk T1/Safety:GROUP -HT1_FWD_LEFT_FlapStby_Button -HT1_FWD_LEFT_FlapStby_Handle -HT1_FWD_LEFT_GearStby_Button -HT1_FWD_LEFT_GearStby_Handle -HT1_FWD_MAIN_CWP_FireExt_Press -HT1_FWD_MAIN_CWP_FireExt_Release -HT1_FWD_MAIN_CWP_Test_Cover_Toggle -HT1_FWD_MAIN_CWP_Test_Press -HT1_FWD_MAIN_CWP_Test_Release -Just Flight/Hawk T1/Warning System:GROUP -HT1_FWD_MAIN_CWS_Reset_L_Press -HT1_FWD_MAIN_CWS_Reset_L_Release -HT1_FWD_MAIN_CWS_Reset_R_Press -HT1_FWD_MAIN_CWS_Reset_R_Release -Just Flight/Hawk T1/Weapons:GROUP -HT1_FWD_AIM9_AAM_Press -HT1_FWD_AIM9_AAM_Release -HT1_FWD_AIM9_Coolant_Off -HT1_FWD_AIM9_Coolant_On -HT1_FWD_AIM9_Coolant_Test -HT1_FWD_AIM9_Jet_Guard_Toggle -HT1_FWD_AIM9_Jettison_Press -HT1_FWD_AIM9_Jettison_Release -HT1_FWD_AIM9_Mode_BS -HT1_FWD_AIM9_Mode_Scan -HT1_FWD_AIM9_Reject_Press -HT1_FWD_AIM9_Reject_Release -HT1_FWD_AIM9_Test_Press -HT1_FWD_AIM9_Test_Release -HT1_FWD_AIM9_Vol_Dec -HT1_FWD_AIM9_Vol_Inc -HT1_FWD_MAIN_Weapons_Safe_Lock -HT1_FWD_MAIN_Weapons_Safe_Unlock -HT1_FWD_STICK_BombRel_Cover_Toggle -HT1_FWD_STICK_BombRel_Press -HT1_FWD_STICK_BombRel_Release -HT1_FWD_STICK_Trigger_Press -HT1_FWD_STICK_Trigger_Release -HT1_FWD_Sight_Brt_Dec -HT1_FWD_Sight_Brt_Inc -HT1_FWD_Weapons_Fuzing_N -HT1_FWD_Weapons_Fuzing_NT -HT1_FWD_Weapons_Fuzing_T -HT1_FWD_Weapons_Gun_Off -HT1_FWD_Weapons_Gun_On -HT1_FWD_Weapons_Jettison_Press -HT1_FWD_Weapons_Jettison_Release -HT1_FWD_Weapons_Pylon_port_Off -HT1_FWD_Weapons_Pylon_port_On -HT1_FWD_Weapons_Pylon_stbd_Off -HT1_FWD_Weapons_Pylon_stbd_On -HT1_FWD_Weapons_Select_B -HT1_FWD_Weapons_Select_Off -HT1_FWD_Weapons_Select_PB -HT1_FWD_Weapons_Select_RP -HT1_FWD_Weapons_Select_Toggle -Just Flight/Piper Arrow III/Anti-Ice:GROUP -PITOT_HEAT_SWITCH -Just Flight/Piper Arrow III/Autopilot:GROUP -AUTOPILOT_HDG_Mode_ON_PRESS -AUTOPILOT_LOC_NORM_Mode_ON_PRESS -AUTOPILOT_LOC_REV_Mode_ON_PRESS -AUTOPILOT_Nav_Mode_ON_PRESS -AUTOPILOT_Omni_Mode_ON_PRESS -AUTOPILOT_alt_ON_PRESS -AUTOPILOT_hdg_OFF_PRESS -AUTOPILOT_hdg_ON_PRESS -AUTOPILOT_navgps_ON_PRESS -AUTOPILOT_off -AUTOPILOT_on -NAV_GPS_SELECTOR_SW -PA28_AUTOPILOT_TOGGLE -Just Flight/Piper Arrow III/EFIS:GROUP -ALT_baro_knob_left -ALT_baro_knob_right -Just Flight/Piper Arrow III/Electrical:GROUP -_Circuit_Breaker_-ON -CENTRE_LOWER_bat_ON_PRESS -CENTRE_LOWER_bat_ON_RELEASE -Center_Lower_Alternator_OFF -Center_Lower_Alternator_ON -Just Flight/Piper Arrow III/Engines:GROUP -EGT_knob_left -EGT_knob_right -THROTTLE_QUADRANT_mixture_lock_ON_PRESS -THROTTLE_QUADRANT_mixture_lock_ON_RELEASE -Just Flight/Piper Arrow III/Environment:GROUP -Electronic_Flight_Board -Left_hand_window_latch -Lower_Door_latch_unlock -Open_the_Right_hand_door -Open_the_left_hand_window -Upper_Door_latch_unlatch -Just Flight/Piper Arrow III/Fuel:GROUP -FUEL_PRIMER_SWITCH -FUEL_PUMP_SELECTOR_SWITCH -FUEL_TANK_SELECTOR_SWITCH -Just Flight/Piper Arrow III/Gear:GROUP -Emergency_gear_down -Emergency_gear_off -Emergency_gear_on -LANDING_GEAR_SWITCH -PARKING_BRAKE_SWITCH -Just Flight/Piper Arrow III/Lights:GROUP -ANT_COL_LIGHT_SWITCH -LANDING_LIGHT_SWITCH -PA28_LIGHTS_CABIN_DEC -PA28_LIGHTS_CABIN_INC -ROT_BCN_LIGHT_SWITCH -Just Flight/Piper Arrow III/Miscellaneous:GROUP -PA28_GLARESHIELD_VISOR_TOGGLE -Just Flight/Piper Arrow III/Radio:GROUP -DME_Input_to_NAV2 -DME_input_to_NAV1 -GNS530_COM_RADIO_VOLUME_DEC -GNS530_COM_RADIO_VOLUME_INC -GNS530_NAV_RADIO_VOLUME_DEC -GNS530_NAV_RADIO_VOLUME_INC -KR85_ADF_MODE_KNOB_DEC -KR85_ADF_MODE_KNOB_INC -KT76_XPNDR_MODE_ON-LEFT -KT76_XPNDR_MODE_ON-RIGHT -KX170B_COM1_RADIO_VOLUME_DEC -KX170B_COM1_RADIO_VOLUME_INC -KX170B_NAV1_RADIO_VOLUME_DEC -KX170B_NAV1_RADIO_VOLUME_INC -KX170_COM1_OFF_ON_SWITCH -KX170_COMM1_inner_knob_left -KX170_COMM1_inner_knob_right -KX170_COMM1_outer_knob_left -KX170_COMM1_outer_knob_right -KX170_NAV1_OFF_ON_SWITCH -KX170_NAV1_inner_knob_left -KX170_NAV1_inner_knob_right -KX170_NAV1_outer_knob_left -KX170_NAV1_outer_knob_right -KX175B_COM2_RADIO_VOLUME_DEC -KX175B_COM2_RADIO_VOLUME_INC -KX175B_NAV2_RADIO_VOLUME_DEC -KX175B_NAV2_RADIO_VOLUME_INC -KX175_COM2_OFF_ON_SWITCH -KX175_COMM2_inner_knob_left -KX175_COMM2_inner_knob_right -KX175_COMM2_outer_knob_left -KX175_COMM2_outer_knob_right -KX175_NAV2_OFF_ON_SWITCH -KX175_NAV2_inner_knob_left -KX175_NAV2_inner_knob_right -KX175_NAV2_outer_knob_left -KX175_NAV2_outer_knob_right -Microsoft/Generic/Anti-Ice:GROUP -ANTI_ICE_OFF -ANTI_ICE_ON -ANTI_ICE_TOGGLE -ANTI_ICE_TOGGLE_ENG1 -ANTI_ICE_TOGGLE_ENG2 -ANTI_ICE_TOGGLE_ENG3 -ANTI_ICE_TOGGLE_ENG4 -PITOT_HEAT_OFF -PITOT_HEAT_ON -PITOT_HEAT_TOGGLE -TOGGLE_WINDSHIELD_De-Ice -TOGGLE_PITOT_BLOCKAGE -TOGGLE_PROPELLER_DEICE -TOGGLE_STRUCTURAL_DEICE -WINDSHIELD_DE-ICE_OFF -WINDSHIELD_DE-ICE_ON -Microsoft/Generic/Autopilot:GROUP -AP_AIRSPEED_HOLD -AP_AIRSPEED_OFF -AP_AIRSPEED_ON -AP_ALT_HOLD -AP_ALT_HOLD_OFF -AP_ALT_HOLD_ON -AP_ALT_VAR_DEC -AP_ALT_VAR_INC -AP_APR_HOLD -AP_APR_HOLD_OFF -AP_APR_HOLD_ON -AP_ATT_HOLD -AP_ATT_HOLD_OFF -AP_ATT_HOLD_ON -AP_BC_HOLD -AP_BC_HOLD_OFF -AP_BC_HOLD_ON -AP_HDG_HOLD -AP_HDG_HOLD_OFF -AP_HDG_HOLD_ON -AP_LOC_HOLD -AP_LOC_HOLD_OFF -AP_LOC_HOLD_ON -AP_MACH_HOLD -AP_MACH_OFF -AP_MACH_ON -AP_MACH_VAR_DEC -AP_MACH_VAR_INC -AP_MASTER -AP_MAX_BANK_DEC -AP_MAX_BANK_INC -AP_N1_HOLD -AP_N1_REF_DEC -AP_N1_REF_INC -AP_NAV1_HOLD -AP_NAV1_HOLD_OFF -AP_NAV1_HOLD_ON -AP_PANEL_ALTITUDE_HOLD -AP_PANEL_ALTITUDE_OFF -AP_PANEL_ALTITUDE_ON -AP_PANEL_HEADING_HOLD -AP_PANEL_HEADING_OFF -AP_PANEL_HEADING_ON -AP_PANEL_MACH_HOLD -AP_PANEL_MACH_HOLD_TOGGLE -AP_PANEL_MACH_OFF -AP_PANEL_MACH_ON -AP_PANEL_SPEED_HOLD -AP_PANEL_SPEED_HOLD_TOGGLE -AP_PANEL_SPEED_OFF -AP_PANEL_SPEED_ON -AP_PANEL_VS_HOLD -AP_PITCH_REF_INC_DN -AP_PITCH_REF_INC_UP -AP_PITCH_REF_SELECT -AP_SPD_VAR_DEC -AP_SPD_VAR_INC -AP_VS_VAR_DEC -AP_VS_VAR_INC -AP_WING_LEVELER -AP_WING_LEVELER_OFF -AP_WING_LEVELER_ON -AUTOPILOT_OFF -AUTOPILOT_ON -SYNC_FLIGHT_DIRECTOR_PITCH -TOGGLE_FLIGHT_DIRECTOR -YAW_DAMPER_OFF -YAW_DAMPER_ON -YAW_DAMPER_TOGGLE -Microsoft/Generic/Avionics:GROUP -AS1000_AP_ALT_DEC_100 -AS1000_AP_ALT_DEC_1000 -AS1000_AP_ALT_INC_100 -AS1000_AP_ALT_INC_1000 -AS1000_AP_ALT_SYNC -AS1000_AP_VNAV_Push -AS1000_MFD_ActivateMapCursor -AS1000_MFD_BARO_DEC -AS1000_MFD_BARO_INC -AS1000_MFD_CLR -AS1000_MFD_CLR_Long -AS1000_MFD_COM_Large_DEC -AS1000_MFD_COM_Large_INC -AS1000_MFD_COM_Push -AS1000_MFD_COM_Small_DEC -AS1000_MFD_COM_Small_INC -AS1000_MFD_COM_Switch -AS1000_MFD_COM_Switch_Long -AS1000_MFD_CRS_DEC -AS1000_MFD_CRS_INC -AS1000_MFD_CRS_PUSH -AS1000_MFD_DIRECTTO -AS1000_MFD_DeactivateMapCursor -AS1000_MFD_ENT_Push -AS1000_MFD_FLC_Push -AS1000_MFD_FLIGHT_DIRECTOR_PUSH -AS1000_MFD_FMS_Lower_DEC -AS1000_MFD_FMS_Lower_INC -AS1000_MFD_FMS_Upper_DEC -AS1000_MFD_FMS_Upper_INC -AS1000_MFD_FMS_Upper_PUSH -AS1000_MFD_FPL_Push -AS1000_MFD_HEADING_DEC -AS1000_MFD_HEADING_FAST_DEC -AS1000_MFD_HEADING_FAST_INC -AS1000_MFD_HEADING_INC -AS1000_MFD_HEADING_SYNC -AS1000_MFD_JOYSTICK_DOWN -AS1000_MFD_JOYSTICK_LEFT -AS1000_MFD_JOYSTICK_PUSH -AS1000_MFD_JOYSTICK_RIGHT -AS1000_MFD_JOYSTICK_UP -AS1000_MFD_MENU_Push -AS1000_MFD_NAV_Large_DEC -AS1000_MFD_NAV_Large_INC -AS1000_MFD_NAV_Push -AS1000_MFD_NAV_Small_DEC -AS1000_MFD_NAV_Small_INC -AS1000_MFD_NAV_Switch -AS1000_MFD_NOSE_DN -AS1000_MFD_NOSE_UP -AS1000_MFD_PROC_Push -AS1000_MFD_RANGE_DEC -AS1000_MFD_RANGE_INC -AS1000_MFD_SOFTKEYS_1 -AS1000_MFD_SOFTKEYS_10 -AS1000_MFD_SOFTKEYS_11 -AS1000_MFD_SOFTKEYS_12 -AS1000_MFD_SOFTKEYS_2 -AS1000_MFD_SOFTKEYS_3 -AS1000_MFD_SOFTKEYS_4 -AS1000_MFD_SOFTKEYS_5 -AS1000_MFD_SOFTKEYS_6 -AS1000_MFD_SOFTKEYS_7 -AS1000_MFD_SOFTKEYS_8 -AS1000_MFD_SOFTKEYS_9 -AS1000_MFD_VOL_1_DEC -AS1000_MFD_VOL_1_INC -AS1000_MFD_VOL_2_DEC -AS1000_MFD_VOL_2_INC -AS1000_MID_ADF_Push -AS1000_MID_AUX_Push -AS1000_MID_COM_1_Push -AS1000_MID_COM_2_Push -AS1000_MID_COM_3_Push -AS1000_MID_COM_Mic_1_Push -AS1000_MID_COM_Mic_2_Push -AS1000_MID_COM_Mic_3_Push -AS1000_MID_COM_Swap_1_2_Push -AS1000_MID_DME_Push -AS1000_MID_Display_Backup_Push -AS1000_MID_HI_SENS_Push -AS1000_MID_Isolate_Copilot_Push -AS1000_MID_Isolate_Pilot_Push -AS1000_MID_MAN_SQ_Push -AS1000_MID_MKR_Mute_Push -AS1000_MID_NAV_1_Push -AS1000_MID_NAV_2_Push -AS1000_MID_PA_Push -AS1000_MID_Pass_Copilot_DEC -AS1000_MID_Pass_Copilot_INC -AS1000_MID_Play_Push -AS1000_MID_SPKR_Push -AS1000_MID_TEL_Push -AS1000_PFD_ActivateMapCursor -AS1000_PFD_BARO_DEC -AS1000_PFD_BARO_INC -AS1000_PFD_CLR -AS1000_PFD_CLR_Long -AS1000_PFD_COM_Large_DEC -AS1000_PFD_COM_Large_INC -AS1000_PFD_COM_Push -AS1000_PFD_COM_Small_DEC -AS1000_PFD_COM_Small_INC -AS1000_PFD_COM_Switch -AS1000_PFD_COM_Switch_Long -AS1000_PFD_CRS_DEC -AS1000_PFD_CRS_INC -AS1000_PFD_CRS_PUSH -AS1000_PFD_DIRECTTO -AS1000_PFD_DeactivateMapCursor -AS1000_PFD_ENT_Push -AS1000_PFD_FMS_Lower_DEC -AS1000_PFD_FMS_Lower_INC -AS1000_PFD_FMS_Upper_DEC -AS1000_PFD_FMS_Upper_INC -AS1000_PFD_FMS_Upper_PUSH -AS1000_PFD_FPL_Push -AS1000_PFD_HEADING_DEC -AS1000_PFD_HEADING_FAST_DEC -AS1000_PFD_HEADING_FAST_INC -AS1000_PFD_HEADING_INC -AS1000_PFD_HEADING_SYNC -AS1000_PFD_JOYSTICK_DOWN -AS1000_PFD_JOYSTICK_LEFT -AS1000_PFD_JOYSTICK_PUSH -AS1000_PFD_JOYSTICK_RIGHT -AS1000_PFD_JOYSTICK_UP -AS1000_PFD_MENU_Push -AS1000_PFD_NAV_Large_DEC -AS1000_PFD_NAV_Large_INC -AS1000_PFD_NAV_Push -AS1000_PFD_NAV_Small_DEC -AS1000_PFD_NAV_Small_INC -AS1000_PFD_NAV_Switch -AS1000_PFD_PROC_Push -AS1000_PFD_RANGE_DEC -AS1000_PFD_RANGE_INC -AS1000_PFD_SOFTKEYS_1 -AS1000_PFD_SOFTKEYS_10 -AS1000_PFD_SOFTKEYS_11 -AS1000_PFD_SOFTKEYS_12 -AS1000_PFD_SOFTKEYS_2 -AS1000_PFD_SOFTKEYS_3 -AS1000_PFD_SOFTKEYS_4 -AS1000_PFD_SOFTKEYS_5 -AS1000_PFD_SOFTKEYS_6 -AS1000_PFD_SOFTKEYS_7 -AS1000_PFD_SOFTKEYS_8 -AS1000_PFD_SOFTKEYS_9 -AS1000_PFD_VOL_1_DEC -AS1000_PFD_VOL_1_INC -AS1000_PFD_VOL_2_DEC -AS1000_PFD_VOL_2_INC -AS3000_MFD_SOFTKEYS_1 -AS3000_MFD_SOFTKEYS_10 -AS3000_MFD_SOFTKEYS_11 -AS3000_MFD_SOFTKEYS_12 -AS3000_MFD_SOFTKEYS_2 -AS3000_MFD_SOFTKEYS_3 -AS3000_MFD_SOFTKEYS_4 -AS3000_MFD_SOFTKEYS_5 -AS3000_MFD_SOFTKEYS_6 -AS3000_MFD_SOFTKEYS_7 -AS3000_MFD_SOFTKEYS_8 -AS3000_MFD_SOFTKEYS_9 -AS3000_PFD_BottomKnob_Large_DEC -AS3000_PFD_BottomKnob_Large_INC -AS3000_PFD_BottomKnob_Push -AS3000_PFD_BottomKnob_Push_Long -AS3000_PFD_BottomKnob_Small_DEC -AS3000_PFD_BottomKnob_Small_INC -AS3000_PFD_SOFTKEYS_1 -AS3000_PFD_SOFTKEYS_10 -AS3000_PFD_SOFTKEYS_11 -AS3000_PFD_SOFTKEYS_12 -AS3000_PFD_SOFTKEYS_2 -AS3000_PFD_SOFTKEYS_3 -AS3000_PFD_SOFTKEYS_4 -AS3000_PFD_SOFTKEYS_5 -AS3000_PFD_SOFTKEYS_6 -AS3000_PFD_SOFTKEYS_7 -AS3000_PFD_SOFTKEYS_8 -AS3000_PFD_SOFTKEYS_9 -AS3000_PFD_TopKnob_Large_DEC -AS3000_PFD_TopKnob_Large_INC -AS3000_PFD_TopKnob_Small_DEC -AS3000_PFD_TopKnob_Small_INC -AS3X_Touch_1_Back_Push -AS3X_Touch_1_DirectTo_Push -AS3X_Touch_1_Knob_Inner_L_DEC -AS3X_Touch_1_Knob_Inner_L_INC -AS3X_Touch_1_Knob_Inner_R_DEC -AS3X_Touch_1_Knob_Inner_R_INC -AS3X_Touch_1_Knob_Outer_L_DEC -AS3X_Touch_1_Knob_Outer_L_INC -AS3X_Touch_1_Knob_Outer_R_DEC -AS3X_Touch_1_Knob_Outer_R_INC -AS3X_Touch_1_Menu_Push -AS3X_Touch_1_NRST_Push -AS430_CLR_Push -AS430_CLR_Push_Long -AS430_COMSWAP_Push -AS430_DirectTo_Push -AS430_ENT_Push -AS430_FPL_Push -AS430_LeftLargeKnob_Left -AS430_LeftLargeKnob_Right -AS430_LeftSmallKnob_Left -AS430_LeftSmallKnob_Push -AS430_LeftSmallKnob_Right -AS430_MENU_Push -AS430_MSG_Push -AS430_NAVSWAP_Push -AS430_OBS_Push -AS430_PROC_Push -AS430_RNG_Dezoom -AS430_RNG_Zoom -AS430_RightLargeKnob_Left -AS430_RightLargeKnob_Right -AS430_RightSmallKnob_Left -AS430_RightSmallKnob_Push -AS430_RightSmallKnob_Right -AS530_CLR_Push -AS530_CLR_Push_Long -AS530_COMSWAP_Push -AS530_DirectTo_Push -AS530_ENT_Push -AS530_FPL_Push -AS530_LeftLargeKnob_Left -AS530_LeftLargeKnob_Right -AS530_LeftSmallKnob_Left -AS530_LeftSmallKnob_Push -AS530_LeftSmallKnob_Right -AS530_MENU_Push -AS530_MSG_Push -AS530_NAVSWAP_Push -AS530_OBS_Push -AS530_PROC_Push -AS530_RNG_Dezoom -AS530_RNG_Zoom -AS530_RightLargeKnob_Left -AS530_RightLargeKnob_Right -AS530_RightSmallKnob_Left -AS530_RightSmallKnob_Push -AS530_RightSmallKnob_Right -AS530_VNAV_Push -BARO_1_DEC -BARO_1_INC -BARO_2_DEC -BARO_2_INC -BARO_3_DEC -BARO_3_INC -KAP140_Knob_Inner_DEC -KAP140_Knob_Inner_INC -KAP140_Knob_Outer_DEC -KAP140_Knob_Outer_INC -KAP140_Long_Push_BARO -KAP140_Push_ALT -KAP140_Push_AP -KAP140_Push_APR -KAP140_Push_ARM -KAP140_Push_BARO -KAP140_Push_DN -KAP140_Push_HDG -KAP140_Push_NAV -KAP140_Push_REV -KAP140_Push_UP -TOGGLE_AVIONICS_MASTER -Transponder0 -Transponder1 -Transponder2 -Transponder3 -Transponder4 -Transponder5 -Transponder6 -Transponder7 -TransponderALT -TransponderCLR -TransponderIDT -TransponderOFF -TransponderON -TransponderSTBY -TransponderTST -TransponderVFR -adf_AntAdf -adf_FltEt -adf_SetRst -adf_bfo -adf_frqTransfert -oclock_control -oclock_control_long -oclock_oat -oclock_select -Microsoft/Generic/Camera:GROUP -CAPTURE_SCREENSHOT -CHASE_VIEW_NEXT -CHASE_VIEW_PREV -CHASE_VIEW_TOGGLE -CLOSE_VIEW -EYEPOINT_BACK -EYEPOINT_DOWN -EYEPOINT_FORWARD -EYEPOINT_LEFT -EYEPOINT_RIGHT -EYEPOINT_UP -KNEEBOARD_VIEW -NEW_VIEW -NEXT_SUB_VIEW -NEXT_VIEW -PAN_DOWN -PAN_LEFT -PAN_LEFT_DOWN -PAN_LEFT_UP -PAN_RIGHT -PAN_RIGHT_DOWN -PAN_RIGHT_UP -PAN_TILT_LEFT -PAN_TILT_RIGHT -PAN_UP -PREV_SUB_VIEW -PREV_VIEW -VIEW_ALWAYS_PAN_DOWN -VIEW_ALWAYS_PAN_UP -VIEW_AXIS_INDICATOR_CYCLE -VIEW_CAMERA_SELECT_START -VIEW_CHASE_DISTANCE_ADD -VIEW_CHASE_DISTANCE_SUB -VIEW_COCKPIT_FORWARD -VIEW_DOWN -VIEW_FORWARD -VIEW_FORWARD_LEFT -VIEW_FORWARD_LEFT_UP -VIEW_FORWARD_RIGHT -VIEW_FORWARD_RIGHT_UP -VIEW_FORWARD_UP -VIEW_LEFT -VIEW_LEFT_UP -VIEW_LINKING_TOGGLE -VIEW_MAP_ORIENTATION_CYCLE -VIEW_MODE -VIEW_MODE_REV -VIEW_PANEL_ALPHA_DEC -VIEW_PANEL_ALPHA_INC -VIEW_PANEL_ALPHA_SELECT -VIEW_PREVIOUS_TOGGLE -VIEW_REAR -VIEW_REAR_LEFT -VIEW_REAR_LEFT_UP -VIEW_REAR_RIGHT -VIEW_REAR_RIGHT_UP -VIEW_REAR_UP -VIEW_RIGHT -VIEW_RIGHT_UP -VIEW_TRACK_PAN_TOGGLE -VIEW_UP -VIEW_VIRTUAL_COCKPIT_FORWARD -VIEW_WINDOW_TITLES_TOGGLE -VIEW_WINDOW_TO_FRONT -ZOOM_1X -ZOOM_IN -ZOOM_IN_FINE -ZOOM_MINUS -ZOOM_OUT -ZOOM_OUT_FINE -ZOOM_PLUS -Microsoft/Generic/Controls:GROUP -AILERONS_LEFT -AILERONS_RIGHT -AILERON_TRIM_LEFT -AILERON_TRIM_RIGHT -BRAKES -BRAKES_LEFT -BRAKES_RIGHT -CENTER_AILER_RUDDER -DEC_AUTOBRAKE_CONTROL -ELEV_DOWN -ELEV_TRIM_DN -ELEV_TRIM_UP -ELEV_UP -FLAPS_1 -FLAPS_2 -FLAPS_3 -FLAPS_DECR -FLAPS_DOWN -FLAPS_INCR -FLAPS_UP -INC_AUTOBRAKE_CONTROL -PARKING_BRAKES_TOGGLE -PARKING_BRAKES_OFF -PARKING_BRAKES_ON -ROTOR_BRAKE -RUDDER_CENTER -RUDDER_LEFT -RUDDER_RIGHT -RUDDER_TRIM_LEFT -RUDDER_TRIM_RESET -RUDDER_TRIM_RIGHT -SPOILERS_ARM_OFF -SPOILERS_ARM_ON -SPOILERS_ARM_TOGGLE -SPOILERS_OFF -SPOILERS_ON -SPOILERS_TOGGLE -TOGGLE_LEFT_BRAKE_FAILURE -TOGGLE_RIGHT_BRAKE_FAILURE -TOGGLE_TOTAL_BRAKE_FAILURE -Microsoft/Generic/Electrical:GROUP -APU_GENERATOR_SWITCH_TOGGLE -APU_OFF_SWITCH -APU_STARTER -BATTERY_OFF -BATTERY_ON -TOGGLE_ALTERNATOR1 -TOGGLE_ALTERNATOR2 -TOGGLE_ALTERNATOR3 -TOGGLE_ALTERNATOR4 -TOGGLE_ELECTRICAL_FAILURE -TOGGLE_MASTER_ALTERNATOR -TOGGLE_MASTER_BATTERY -TOGGLE_MASTER_BATTERY_ALTERNATOR -Microsoft/Generic/Engines:GROUP -DEC_THROTTLE -ENGINE -ENGINE_AUTO_SHUTDOWN -ENGINE_AUTO_START -ENGINE_PRIMER -INC_THROTTLE -JET_STARTER -MIXTURE1_DECR -MIXTURE1_DECR_SMALL -MIXTURE1_INCR -MIXTURE1_INCR_SMALL -MIXTURE1_LEAN -MIXTURE1_RICH -MIXTURE2_DECR -MIXTURE2_DECR_SMALL -MIXTURE2_INCR -MIXTURE2_INCR_SMALL -MIXTURE2_LEAN -MIXTURE2_RICH -MIXTURE3_DECR -MIXTURE3_DECR_SMALL -MIXTURE3_INCR -MIXTURE3_INCR_SMALL -MIXTURE3_LEAN -MIXTURE3_RICH -MIXTURE4_DECR -MIXTURE4_DECR_SMALL -MIXTURE4_INCR -MIXTURE4_INCR_SMALL -MIXTURE4_LEAN -MIXTURE4_RICH -MIXTURE_DECR -MIXTURE_DECR_SMALL -MIXTURE_INCR -MIXTURE_INCR_SMALL -MIXTURE_LEAN -MIXTURE_RICH -THROTTLE1_CUT -THROTTLE1_DECR -THROTTLE1_DECR_SMALL -THROTTLE1_FULL -THROTTLE1_INCR -THROTTLE1_INCR_SMALL -THROTTLE2_CUT -THROTTLE2_DECR -THROTTLE2_DECR_SMALL -THROTTLE2_FULL -THROTTLE2_INCR -THROTTLE2_INCR_SMALL -THROTTLE3_CUT -THROTTLE3_DECR -THROTTLE3_DECR_SMALL -THROTTLE3_FULL -THROTTLE3_INCR -THROTTLE3_INCR_SMALL -THROTTLE4_CUT -THROTTLE4_DECR -THROTTLE4_DECR_SMALL -THROTTLE4_FULL -THROTTLE4_INCR -THROTTLE4_INCR_SMALL -THROTTLE_10 -THROTTLE_20 -THROTTLE_30 -THROTTLE_40 -THROTTLE_50 -THROTTLE_60 -THROTTLE_70 -THROTTLE_80 -THROTTLE_90 -THROTTLE_CUT -THROTTLE_DECR -THROTTLE_DECR_SMALL -THROTTLE_FULL -THROTTLE_INCR -THROTTLE_INCR_SMALL -THROTTLE_REVERSE_THRUST_HOLD -THROTTLE_REVERSE_THRUST_TOGGLE -TOGGLE_ENGINE1_FAILURE -TOGGLE_ENGINE2_FAILURE -TOGGLE_ENGINE3_FAILURE -TOGGLE_ENGINE4_FAILURE -Microsoft/Generic/Environment:GROUP -SIMUI_WINDOW_HIDESHOW -SIM_RATE -SIM_RATE_DECR -SIM_RATE_INCR -Microsoft/Generic/Flight Instrumentation:GROUP -GYRO_DRIFT_DEC -GYRO_DRIFT_INC -HEADING_BUG_DEC -HEADING_BUG_INC -HEADING_BUG_SELECT -KOHLSMAN_DEC -KOHLSMAN_INC -Microsoft/Generic/Fuel:GROUP -FUEL_DUMP_TOGGLE -FUEL_PUMP -FUEL_SELECTOR_2_ALL -FUEL_SELECTOR_2_CENTER -FUEL_SELECTOR_2_LEFT -FUEL_SELECTOR_2_LEFT_AUX -FUEL_SELECTOR_2_LEFT_MAIN -FUEL_SELECTOR_2_OFF -FUEL_SELECTOR_2_RIGHT -FUEL_SELECTOR_2_RIGHT_AUX -FUEL_SELECTOR_2_RIGHT_MAIN -FUEL_SELECTOR_3_ALL -FUEL_SELECTOR_3_CENTER -FUEL_SELECTOR_3_LEFT -FUEL_SELECTOR_3_LEFT_AUX -FUEL_SELECTOR_3_LEFT_MAIN -FUEL_SELECTOR_3_OFF -FUEL_SELECTOR_3_RIGHT -FUEL_SELECTOR_3_RIGHT_AUX -FUEL_SELECTOR_3_RIGHT_MAIN -FUEL_SELECTOR_4_ALL -FUEL_SELECTOR_4_CENTER -FUEL_SELECTOR_4_LEFT -FUEL_SELECTOR_4_LEFT_AUX -FUEL_SELECTOR_4_LEFT_MAIN -FUEL_SELECTOR_4_OFF -FUEL_SELECTOR_4_RIGHT -FUEL_SELECTOR_4_RIGHT_AUX -FUEL_SELECTOR_4_RIGHT_MAIN -FUEL_SELECTOR_ALL -FUEL_SELECTOR_CENTER -FUEL_SELECTOR_LEFT -FUEL_SELECTOR_LEFT_AUX -FUEL_SELECTOR_LEFT_MAIN -FUEL_SELECTOR_OFF -FUEL_SELECTOR_RIGHT -FUEL_SELECTOR_RIGHT_AUX -FUEL_SELECTOR_RIGHT_MAIN -MANUAL_FUEL_PRESSURE_PUMP -REQUEST_FUEL_KEY -TOGGLE_ELECT_FUEL_PUMP -TOGGLE_ELECT_FUEL_PUMP1 -TOGGLE_ELECT_FUEL_PUMP2 -TOGGLE_ELECT_FUEL_PUMP3 -TOGGLE_ELECT_FUEL_PUMP4 -TOGGLE_FUEL_VALVE_ALL -TOGGLE_FUEL_VALVE_ENG1 -TOGGLE_FUEL_VALVE_ENG2 -TOGGLE_FUEL_VALVE_ENG3 -TOGGLE_FUEL_VALVE_ENG4 -Microsoft/Generic/Gear:GROUP -GEAR_DOWN -GEAR_TOGGLE -GEAR_UP -Microsoft/Generic/Interaction:GROUP -TOGGLE_JETWAY -TOGGLE_PUSHBACK -TOW_PLANE_RELEASE -TOW_PLANE_REQUEST -TUG_DISABLE -TUG_HEADING -TUG_SPEED -Microsoft/Generic/Lights:GROUP -ALL_LIGHTS_TOGGLE -BEACON_LIGHTS_OFF -BEACON_LIGHTS_ON -LANDING_LIGHTS_OFF -LANDING_LIGHTS_ON -LANDING_LIGHTS_TOGGLE -LANDING_LIGHT_DOWN -LANDING_LIGHT_HOME -LANDING_LIGHT_LEFT -LANDING_LIGHT_RIGHT -LANDING_LIGHT_UP -NAV_LIGHTS_OFF -NAV_LIGHTS_ON -PANEL_LIGHTS_OFF -PANEL_LIGHTS_ON -PANEL_LIGHTS_SET__ -STROBES_OFF -STROBES_ON -STROBES_TOGGLE -TAXI_LIGHTS_OFF -TAXI_LIGHTS_ON -TOGGLE_BEACON_LIGHTS -TOGGLE_CABIN_LIGHTS -TOGGLE_LOGO_LIGHTS -TOGGLE_NAV_LIGHTS -TOGGLE_RECOGNITION_LIGHTS -TOGGLE_TAXI_LIGHTS -TOGGLE_WING_LIGHTS -WING_LIGHTS_OFF -WING_LIGHTS_ON -Microsoft/Generic/Radio:GROUP -ADF_100_DEC -ADF_100_INC -ADF_10_DEC -ADF_10_INC -ADF_1_DEC -ADF_1_INC -COM1_TRANSMIT_SELECT -COM1_VOLUME_DEC -COM1_VOLUME_INC -COM1_VOLUME_SET -COM2_RADIO_FRACT_DEC -COM2_RADIO_FRACT_DEC_CARRY -COM2_RADIO_FRACT_INC -COM2_RADIO_FRACT_INC_CARRY -COM2_RADIO_SWAP -COM2_RADIO_WHOLE_DEC -COM2_RADIO_WHOLE_INC -COM2_TRANSMIT_SELECT -COM2_VOLUME_SET -COM_RADIO -COM_RADIO_FRACT_DEC -COM_RADIO_FRACT_DEC_CARRY -COM_RADIO_FRACT_INC -COM_RADIO_FRACT_INC_CARRY -COM_RADIO_WHOLE_DEC -COM_RADIO_WHOLE_INC -COM_RECEIVE_ALL_TOGGLE -COM_STBY_RADIO_SWAP -DME -DME1_TOGGLE -DME2_TOGGLE -DME_SELECT -FREQUENCY_SWAP -MARKER_SOUND_TOGGLE -NAV1_RADIO_FRACT_DEC -NAV1_RADIO_FRACT_DEC_CARRY -NAV1_RADIO_FRACT_INC -NAV1_RADIO_FRACT_INC_CARRY -NAV1_RADIO_SWAP -NAV1_RADIO_WHOLE_DEC -NAV1_RADIO_WHOLE_INC -NAV2_RADIO_FRACT_DEC -NAV2_RADIO_FRACT_DEC_CARRY -NAV2_RADIO_FRACT_INC -NAV2_RADIO_FRACT_INC_CARRY -NAV2_RADIO_SWAP -NAV2_RADIO_WHOLE_DEC -NAV2_RADIO_WHOLE_INC -NAV_RADIO -RADIO_ADF2_IDENT_DISABLE -RADIO_ADF2_IDENT_ENABLE -RADIO_ADF2_IDENT_TOGGLE -RADIO_ADF_IDENT_DISABLE -RADIO_ADF_IDENT_ENABLE -RADIO_ADF_IDENT_TOGGLE -RADIO_DME1_IDENT_DISABLE -RADIO_DME1_IDENT_ENABLE -RADIO_DME1_IDENT_TOGGLE -RADIO_DME2_IDENT_DISABLE -RADIO_DME2_IDENT_ENABLE -RADIO_DME2_IDENT_TOGGLE -RADIO_SELECTED_DME_IDENT_DISABLE -RADIO_SELECTED_DME_IDENT_ENABLE -RADIO_SELECTED_DME_IDENT_TOGGLE -RADIO_VOR1_IDENT_DISABLE -RADIO_VOR1_IDENT_ENABLE -RADIO_VOR1_IDENT_TOGGLE -RADIO_VOR2_IDENT_DISABLE -RADIO_VOR2_IDENT_ENABLE -RADIO_VOR2_IDENT_TOGGLE -TOGGLE_DME -TOGGLE_SPEAKER -VOR1_OBI_DEC -VOR1_OBI_INC -VOR2_OBI_DEC -VOR2_OBI_INC -VOR_OBS -XPNDR -XPNDR_1000_DEC -XPNDR_1000_INC -XPNDR_100_DEC -XPNDR_100_INC -XPNDR_10_DEC -XPNDR_10_INC -XPNDR_1_DEC -XPNDR_1_INC -XPNDR_DEC_CARRY -XPNDR_IDENT_OFF -XPNDR_IDENT_ON -XPNDR_IDENT_SET -XPNDR_IDENT_TOGGLE -XPNDR_INC_CARRY -XPNDR_SET -Microsoft/Generic/Unsorted:GROUP -ADF_CARD_DEC -ADF_CARD_INC -AIRSPEED_BUG_SELECT -ALTITUDE_BUG_SELECT -ATC -ATC_MENU_0 -ATC_MENU_1 -ATC_MENU_2 -ATC_MENU_3 -ATC_MENU_4 -ATC_MENU_5 -ATC_MENU_6 -ATC_MENU_7 -ATC_MENU_8 -ATC_MENU_9 -ATTITUDE_BARS_POSITION_DOWN -ATTITUDE_BARS_POSITION_UP -ATTITUDE_CAGE_BUTTON -AUTORUDDER_TOGGLE -AUTO_THROTTLE_ARM -AUTO_THROTTLE_TO_GA -AXIS_PAN_HEADING -AXIS_PAN_PITCH -AXIS_PAN_TILT -BAROMETRIC -BLEED_AIR_SOURCE_CONTROL_DEC -BLEED_AIR_SOURCE_CONTROL_INC -CLOCK_HOURS_DEC -CLOCK_HOURS_INC -CLOCK_MINUTES_DEC -CLOCK_MINUTES_INC -CLOCK_SECONDS_ZERO -CROSS_FEED_OFF -CROSS_FEED_OPEN -CROSS_FEED_TOGGLE -DEC_COWL_FLAPS -DEC_COWL_FLAPS1 -DEC_COWL_FLAPS2 -DEC_COWL_FLAPS3 -DEC_COWL_FLAPS4 -DEC_DECISION_HEIGHT -DEMO_STOP -EGT -EGT1_DEC -EGT1_INC -EGT2_DEC -EGT2_INC -EGT3_DEC -EGT3_INC -EGT4_DEC -EGT4_INC -EGT_DEC -EGT_INC -FLIGHT_MAP -FLY_BY_WIRE_ELAC_TOGGLE -FLY_BY_WIRE_FAC_TOGGLE -FLY_BY_WIRE_SEC_TOGGLE -FREEZE_ALTITUDE_TOGGLE -FREEZE_ATTITUDE_TOGGLE -FREEZE_LATITUDE_LONGITUDE_TOGGLE -GAUGE_KEYSTROKE -GEAR_PUMP -GPWS_SWITCH_TOGGLE -HOIST_DEPLOY_TOGGLE -HOIST_SWITCH_EXTEND -HOIST_SWITCH_RETRACT -HYDRAULIC_SWITCH_TOGGLE -INC_COWL_FLAPS -INC_COWL_FLAPS1 -INC_COWL_FLAPS2 -INC_COWL_FLAPS3 -INC_COWL_FLAPS4 -INC_DECISION_HEIGHT -INVOKE_HELP -JOYSTICK_CALIBRATE -MAGNETO -MAGNETO1_BOTH -MAGNETO1_DECR -MAGNETO1_INCR -MAGNETO1_LEFT -MAGNETO1_OFF -MAGNETO1_RIGHT -MAGNETO1_START -MAGNETO2_BOTH -MAGNETO2_DECR -MAGNETO2_INCR -MAGNETO2_LEFT -MAGNETO2_OFF -MAGNETO2_RIGHT -MAGNETO2_START -MAGNETO3_BOTH -MAGNETO3_DECR -MAGNETO3_INCR -MAGNETO3_LEFT -MAGNETO3_OFF -MAGNETO3_RIGHT -MAGNETO3_START -MAGNETO4_BOTH -MAGNETO4_DECR -MAGNETO4_INCR -MAGNETO4_LEFT -MAGNETO4_OFF -MAGNETO4_RIGHT -MAGNETO4_START -MAGNETO_BOTH -MAGNETO_DECR -MAGNETO_INCR -MAGNETO_LEFT -MAGNETO_OFF -MAGNETO_RIGHT -MAGNETO_START -MAP_ZOOM_FINE_IN -MAP_ZOOM_FINE_OUT -MINUS -MINUS_SHIFT -MOUSE_LOOK_TOGGLE -MP_ACTIVATE_CHAT -MP_BROADCAST_VOICE_CAPTURE_START -MP_BROADCAST_VOICE_CAPTURE_STOP -MP_CHAT -MP_PLAYER_CYCLE -MP_PLAYER_FOLLOW -MP_TRANSFER_CONTROL -MP_VOICE_CAPTURE_START -MP_VOICE_CAPTURE_STOP -NEW_MAP -NITROUS_TANK_VALVE_TOGGLE -PANEL_1 -PANEL_2 -PANEL_3 -PANEL_4 -PANEL_5 -PANEL_6 -PANEL_7 -PANEL_8 -PANEL_9 -PANEL_HUD_NEXT -PANEL_HUD_PREVIOUS -PANEL_ID_CLOSE -PANEL_ID_OPEN -PANEL_ID_TOGGLE -PAUSE_OFF -PAUSE_ON -PAUSE_TOGGLE -PLUS -PLUS_SHIFT -POINT_OF_INTEREST_CYCLE_NEXT -POINT_OF_INTEREST_CYCLE_PREVIOUS -POINT_OF_INTEREST_TOGGLE_POINTER -PRESSURIZATION_CLIMB_RATE_DEC -PRESSURIZATION_CLIMB_RATE_INC -PRESSURIZATIPRESSURE_ALT_DEC -PRESSURIZATIPRESSURE_ALT_INC -PROP_PITCH1_DECR -PROP_PITCH1_DECR_SMALL -PROP_PITCH1_HI -PROP_PITCH1_INCR -PROP_PITCH1_INCR_SMALL -PROP_PITCH1_LO -PROP_PITCH2_DECR -PROP_PITCH2_DECR_SMALL -PROP_PITCH2_HI -PROP_PITCH2_INCR -PROP_PITCH2_INCR_SMALL -PROP_PITCH2_LO -PROP_PITCH3_DECR -PROP_PITCH3_DECR_SMALL -PROP_PITCH3_HI -PROP_PITCH3_INCR -PROP_PITCH3_INCR_SMALL -PROP_PITCH3_LO -PROP_PITCH4_DECR -PROP_PITCH4_DECR_SMALL -PROP_PITCH4_HI -PROP_PITCH4_INCR -PROP_PITCH4_INCR_SMALL -PROP_PITCH4_LO -PROP_PITCH_DECR -PROP_PITCH_DECR_SMALL -PROP_PITCH_HI -PROP_PITCH_INCR -PROP_PITCH_INCR_SMALL -PROP_PITCH_LO -READOUTS_FLIGHT -READOUTS_SLEW -REFRESH_SCENERY -RELEASE_DROPPABLE_OBJECTS -RELOAD_PANELS -RELOAD_USER_AIRCRAFT -REPAIR_AND_REFUEL -RETRACT_FLOAT_SWITCH_DEC -RETRACT_FLOAT_SWITCH_INC -ROTOR_CLUTCH_SWITCH_TOGGLE -ROTOR_GOV_SWITCH_TOGGLE -ROTOR_LATERAL_TRIM_DEC -ROTOR_LATERAL_TRIM_INC -SELECT_1 -SELECT_2 -SELECT_3 -SELECT_4 -SITUATION_SAVE -SLEW_AHEAD_MINUS -SLEW_AHEAD_PLUS -SLEW_ALTIT_DN_FAST -SLEW_ALTIT_DN_SLOW -SLEW_ALTIT_FREEZE -SLEW_ALTIT_MINUS -SLEW_ALTIT_PLUS -SLEW_ALTIT_UP_FAST -SLEW_ALTIT_UP_SLOW -SLEW_BANK_MINUS -SLEW_BANK_PLUS -SLEW_FREEZE -SLEW_HEADING_MINUS -SLEW_HEADING_PLUS -SLEW_LEFT -SLEW_OFF -SLEW_ON -SLEW_PITCH_DN_FAST -SLEW_PITCH_DN_SLOW -SLEW_PITCH_FREEZE -SLEW_PITCH_MINUS -SLEW_PITCH_PLUS -SLEW_PITCH_UP_FAST -SLEW_PITCH_UP_SLOW -SLEW_RIGHT -SLEW_TOGGLE -SLING_PICKUP_RELEASE -SMOKE_OFF -SMOKE_ON -SMOKE_TOGGLE -SOUND_OFF -SOUND_ON -SOUND_TOGGLE -STEERING_DEC -STEERING_INC -TAKEOFF_ASSIST_ARM_TOGGLE -TAKEOFF_ASSIST_FIRE -TOGGLE_AFTERBURNER -TOGGLE_AFTERBURNER1 -TOGGLE_AFTERBURNER2 -TOGGLE_AFTERBURNER3 -TOGGLE_AFTERBURNER4 -TOGGLE_AIRCRAFT_EXIT -TOGGLE_AIRCRAFT_LABELS -TOGGLE_AIRPORT_NAME_DISPLAY -TOGGLE_ALL_STARTERS -TOGGLE_ALTERNATE_STATIC -TOGGLE_AUTOFEATHER_ARM -TOGGLE_ELECTRIC_VACUUM_PUMP -TOGGLE_FEATHER_SWITCHES -TOGGLE_FEATHER_SWITCH_1 -TOGGLE_FEATHER_SWITCH_2 -TOGGLE_FEATHER_SWITCH_3 -TOGGLE_FEATHER_SWITCH_4 -TOGGLE_GPS_DRIVES_NAV1 -TOGGLE_HYDRAULIC_FAILURE -TOGGLE_LAUNCH_BAR_SWITCH -TOGGLE_MASTER_IGNITION_SWITCH -TOGGLE_PRIMER -TOGGLE_PRIMER1 -TOGGLE_PRIMER2 -TOGGLE_PRIMER3 -TOGGLE_PRIMER4 -TOGGLE_PROPELLER_SYNC -TOGGLE_RACERESULTS_WINDOW -TOGGLE_STARTER1 -TOGGLE_STARTER2 -TOGGLE_STARTER3 -TOGGLE_STARTER4 -TOGGLE_STATIC_PORT_BLOCKAGE -TOGGLE_TAILWHEEL_LOCK -TOGGLE_TAIL_HOOK_HANDLE -TOGGLE_TURN_INDICATOR_SWITCH -TOGGLE_VACUUM_FAILURE -TOGGLE_VARIOMETER_SWITCH -TOGGLE_WATER_BALLAST_VALVE -TOGGLE_WATER_RUDDER -TOGGLE_WING_FOLD -TRUE_AIRSPEED_CAL_DEC -TRUE_AIRSPEED_CAL_INC -TURBINE_IGNITION_SWITCH_TOGGLE -VIDEO_RECORD_TOGGLE -VIRTUAL_COPILOT_ACTION -VIRTUAL_COPILOT_TOGGLE -VSI_BUG_SELECT -YAXIS_INVERT_TOGGLE -Microsoft/Generic/Warning System:GROUP -CABIN_NO_SMOKING_ALERT_SWITCH_TOGGLE -CABIN_SEATBELTS_ALERT_SWITCH_TOGGLE -EXTINGUISH_ENGINE_FIRE -Milviz/PC6 Turbo Porter/Avionics:GROUP -Avionics_BUS_1_On -Avionics_BUS_2 -PC6_AVIONICS1_TOGGLE -PC6_AVIONICS2_TOGGLE -Milviz/PC6 Turbo Porter/Fuel:GROUP -Left_Transfer_Tank_Pump_Toggle -Right_Transfer_Tank_Pump_Toggle -Milviz/PC6 Turbo Porter/Gear:GROUP -TailWheel_Lock -Tailwheel_Unlock -Milviz/PC6 Turbo Porter/Lights:GROUP -Landing_Light_Position_DOWN -Landing_Light_Position_UP -PMDG/DC-6/Anti-Ice:GROUP -PMDGDC6_AIRFOIL_HEAT_TOGGLE -PMDGDC6_CABIN_HEAT_TOGGLE -PMDGDC6_CARB_1_TOGGLE -PMDGDC6_CARB_2_TOGGLE -PMDGDC6_CARB_3_TOGGLE -PMDGDC6_CARB_4_TOGGLE -PMDGDC6_ENG_1_COWL_DEC -PMDGDC6_ENG_1_COWL_INC -PMDGDC6_ENG_2_COWL_DEC -PMDGDC6_ENG_2_COWL_INC -PMDGDC6_ENG_3_COWL_DEC -PMDGDC6_ENG_3_COWL_INC -PMDGDC6_ENG_4_COWL_DEC -PMDGDC6_ENG_4_COWL_INC -PMDGDC6_PITOT_TOGGLE -PMDGDC6_PROP_DEICE_TOGGLE -PMDG/DC-6/Autopilot:GROUP -PMDGDC6_AP_ALT_HOLD_TOGGLE -PMDGDC6_AP_APPR -PMDGDC6_AP_GYROPILOT -PMDGDC6_AP_HDG_DOWN -PMDGDC6_AP_HDG_UP -PMDGDC6_AP_LEVER_TOGGLE -PMDGDC6_AP_LOC -PMDGDC6_AP_MODE_DEC -PMDGDC6_AP_MODE_INC -PMDGDC6_AP_MODE_TOGGLE -PMDGDC6_AP_NAV_OFF -PMDGDC6_AP_NAV_ON -PMDGDC6_AP_PITCH_DOWN -PMDGDC6_AP_PITCH_UP -PMDGDC6_AP_TOGGLE -PMDGDC6_AUTOPILOT_LEVER_TOGGLE -PMDGDC6_AUTOPILOT_TOGGLE -PMDG/DC-6/Engines:GROUP -PMDGDC6_SUPERCHARGER_1_TOGGLE -PMDGDC6_SUPERCHARGER_2_TOGGLE -PMDGDC6_SUPERCHARGER_3_TOGGLE -PMDGDC6_SUPERCHARGER_4_TOGGLE -PMDG/DC-6/Fuel:GROUP -PMDGDC6_ALT_FUEL_BOOST_1_TOGGLE -PMDGDC6_ALT_FUEL_BOOST_2_TOGGLE -PMDGDC6_ALT_FUEL_BOOST_3_TOGGLE -PMDGDC6_ALT_FUEL_BOOST_4_TOGGLE -PMDG/DC-6/Gear:GROUP -PMDGDC6_GEAR_DOWN -PMDGDC6_GEAR_UP -PMDGDC6_GUST_LOCK_OFF -PMDGDC6_GUST_LOCK_ON -PMDG/DC-6/Miscellaneous:GROUP -PMDGDC6_TABLET_ABORT -PMDGDC6_TABLET_AFTER_LANDING -PMDGDC6_TABLET_AFTER_START -PMDGDC6_TABLET_BEFORE_LANDING -PMDGDC6_TABLET_BEFORE_START -PMDGDC6_TABLET_BEFORE_TAKEOFF -PMDGDC6_TABLET_CRUISE -PMDGDC6_TABLET_DESCENT -PMDGDC6_TABLET_IN_RANGE -PMDGDC6_TABLET_PARKING -PMDGDC6_TABLET_TAKEOFF_DRY -PMDGDC6_TABLET_TAKEOFF_WET -PMS50/GTN750/Navigation:GROUP -GTN750_PANEL_DirectToPush -GTN750_PANEL_HomePush -GTN750_PANEL_HomePushLong -GTN750_PANEL_KnobLargeDec -GTN750_PANEL_KnobLargeInc -GTN750_PANEL_KnobPush -GTN750_PANEL_KnobSmallDec -GTN750_PANEL_KnobSmallInc -GTN750_PANEL_VolDec -GTN750_PANEL_VolInc -GTN750_PANEL_VolPush -SC Designs/F16C/Air Conditioning and Pressurization:GROUP -F16C_RIGHT_AIRCOND_TEMP_0 -F16C_RIGHT_AIRCOND_TEMP_1 -F16C_RIGHT_AIRCOND_TEMP_2 -F16C_RIGHT_AIRCOND_TEMP_3 -F16C_RIGHT_AIRCOND_TEMP_4 -F16C_RIGHT_AIRCOND_TEMP_5 -F16C_RIGHT_AIRCOND_TEMP_6 -F16C_RIGHT_AIRCOND_TEMP_DEC -F16C_RIGHT_AIRCOND_TEMP_INC -F16C_RIGHT_AIR_SOURCE_DEC -F16C_RIGHT_AIR_SOURCE_DUMP -F16C_RIGHT_AIR_SOURCE_INC -F16C_RIGHT_AIR_SOURCE_NORM -F16C_RIGHT_AIR_SOURCE_OFF -F16C_RIGHT_AIR_SOURCE_RAM -SC Designs/F16C/Anti-Ice:GROUP -F16C_RIGHT_PITOT_HEAT_TOGGLE -F16C_RIGHT_WINDSHIELD_DEICE_LOWER -F16C_RIGHT_WINDSHIELD_DEICE_NORM -F16C_RIGHT_WINDSHIELD_DEICE_UPPER -SC Designs/F16C/Autopilot:GROUP -F16C_FRONT_AP_BARO_DEC -F16C_FRONT_AP_BARO_INC -F16C_FRONT_AP_BARO_PUSH -F16C_FRONT_AP_CRS_DEC -F16C_FRONT_AP_CRS_INC -F16C_FRONT_AP_CRS_SYNC_PUSH -F16C_FRONT_AP_HDG_DEC -F16C_FRONT_AP_HDG_INC -F16C_FRONT_AP_HDG_SYNC_PUSH -F16C_FRONT_PITCH_ALT_HOLD -F16C_FRONT_PITCH_AP_OFF -F16C_FRONT_PITCH_ATT_HOLD -F16C_FRONT_ROLL_HDG_SEL -F16C_FRONT_ROLL_STRG_SEL -F16C_LEFT_AP_ALT_HOLD_OFF -F16C_LEFT_AP_ALT_HOLD_ON -F16C_LEFT_AP_ALT_HOLD_TOGGLE -F16C_LEFT_AP_APP_HOLD_OFF -F16C_LEFT_AP_APP_HOLD_ON -F16C_LEFT_AP_APP_HOLD_TOGGLE -F16C_LEFT_AP_BC_HOLD_OFF -F16C_LEFT_AP_BC_HOLD_ON -F16C_LEFT_AP_BC_HOLD_TOGGLE -F16C_LEFT_AP_HDG_HOLD_OFF -F16C_LEFT_AP_HDG_HOLD_ON -F16C_LEFT_AP_HDG_HOLD_TOGGLE -F16C_LEFT_AP_IAS_HOLD_OFF -F16C_LEFT_AP_IAS_HOLD_ON -F16C_LEFT_AP_IAS_HOLD_TOGGLE -F16C_LEFT_AP_MASTER_OFF -F16C_LEFT_AP_MASTER_ON -F16C_LEFT_AP_MASTER_TOGGLE -F16C_MFD_1_BUTTON_10_GpsNav1 -F16C_MFD_1_BUTTON_2_HdgHold -F16C_MFD_1_BUTTON_9_Nav1Hold -F16C_MFD_2_BUTTON_10_FD -F16C_MFD_2_BUTTON_1_ApSpdMod -F16C_MFD_2_BUTTON_2_ApAltMod -F16C_MFD_2_BUTTON_3_ApAltDec -F16C_MFD_2_BUTTON_4_ApAltHld -F16C_MFD_2_BUTTON_5_ApAltInc -F16C_MFD_2_BUTTON_6_ApLocHld -F16C_MFD_2_BUTTON_7_ApAprHld -F16C_MFD_2_BUTTON_8_ApBcHld -F16C_MFD_2_BUTTON_9_ApTrkFpa -F16C_MFD_2_BUTTON_L1_ApSpdInc -F16C_MFD_2_BUTTON_L2_ApSpdHld -F16C_MFD_2_BUTTON_L3_ApSpdDec -F16C_MFD_2_BUTTON_L4_ApThrArm -F16C_MFD_2_BUTTON_L5_SpdMach -F16C_MFD_2_BUTTON_R1_ApVsInc -F16C_MFD_2_BUTTON_R2_ApVsHld -F16C_MFD_2_BUTTON_R3_ApVsDec -F16C_MFD_2_BUTTON_R4_ApFlc -F16C_MFD_2_BUTTON_R5_Gcas -SC Designs/F16C/Avionics:GROUP -F16C_LEFT_CNI_MODE_AB -F16C_LEFT_CNI_MODE_BACKUP -F16C_LEFT_IFF_SELECTOR_DEC -F16C_LEFT_IFF_SELECTOR_EMER -F16C_LEFT_IFF_SELECTOR_INC -F16C_LEFT_IFF_SELECTOR_LOW -F16C_LEFT_IFF_SELECTOR_NORM -F16C_LEFT_IFF_SELECTOR_OFF -F16C_LEFT_IFF_SELECTOR_STBY -F16C_MFD_1_BUTTON_1_HdgMode -F16C_MFD_1_BUTTON_3_CurHdgSet -F16C_MFD_1_BUTTON_4_HdgVOR1 -F16C_MFD_1_BUTTON_5_YD -F16C_MFD_1_BUTTON_6_TerronND -F16C_MFD_1_BUTTON_7_WX -F16C_MFD_1_BUTTON_8_VORD -F16C_MFD_1_BUTTON_L1_MinsInc -F16C_MFD_1_BUTTON_L2_MinsDec -F16C_MFD_1_BUTTON_L3_NavaidOff -F16C_MFD_1_BUTTON_L4_RDF1 -F16C_MFD_1_BUTTON_L5_VOR1 -F16C_MFD_1_BUTTON_R1_BaroMinSel -F16C_MFD_1_BUTTON_R2_HpaHgSel -F16C_MFD_1_BUTTON_R3_NavaidOff -F16C_MFD_1_BUTTON_R4_RDF2 -F16C_MFD_1_BUTTON_R5_VOR2 -F16C_MFD_1_CORNER2_Down_RadModInc -F16C_MFD_1_CORNER2_Up_RadModDec -F16C_MFD_1_UPPER_BUTTON_LEFT_Down_RangeInc -F16C_MFD_1_UPPER_BUTTON_LEFT_Up_RangeDec -F16C_MFD_1_UPPER_BUTTON_RIGHT_Down_NavModeInc -F16C_MFD_1_UPPER_BUTTON_RIGHT_Up_NavModeDec -F16C_MFD_2_UPPER_BUTTON_LEFT_Down_SVTerr -F16C_MFD_2_UPPER_BUTTON_LEFT_Up_SVTerr -SC Designs/F16C/Controls:GROUP -F16C_LEFT_ALT_FLAPS_EXTEND -F16C_LEFT_ALT_FLAPS_NORM -F16C_LEFT_AP_TRIM_Off -F16C_LEFT_AP_TRIM_On -F16C_LEFT_AP_TRIM_Toggle -F16C_LEFT_EFLAPS_ENABLE -F16C_LEFT_EFLAPS_LOCK -F16C_LEFT_FLCS_BRT_OFF -F16C_LEFT_FLCS_BRT_ON -F16C_LEFT_FLCS_RESET_OFF -F16C_LEFT_FLCS_RESET_ON -F16C_LEFT_PITCH_TRIM_DOWN -F16C_LEFT_PITCH_TRIM_UP -F16C_LEFT_ROLL_TRIM_L -F16C_LEFT_ROLL_TRIM_R -F16C_LEFT_YAW_TRIM_L -F16C_LEFT_YAW_TRIM_R -SC Designs/F16C/Electrical:GROUP -F16C_RIGHT_ATT_FPM_OFF -F16C_RIGHT_ATT_FPM_ON -F16C_RIGHT_ATT_FPM_TOGGLE -F16C_RIGHT_DED_DATA_OFF -F16C_RIGHT_DED_DATA_ON -F16C_RIGHT_DED_DATA_TOGGLE -F16C_RIGHT_DEPR_RET_OFF -F16C_RIGHT_DEPR_RET_ON -F16C_RIGHT_DEPR_RET_TOGGLE -F16C_RIGHT_GENERATORS_OFF -F16C_RIGHT_GENERATORS_ON -F16C_RIGHT_GENERATORS_TOGGLE -F16C_RIGHT_HUD_PWR_OFF -F16C_RIGHT_HUD_PWR_ON -F16C_RIGHT_HUD_PWR_TOGGLE -F16C_RIGHT_MASTER_AVIONICS_OFF -F16C_RIGHT_MASTER_AVIONICS_ON -F16C_RIGHT_MASTER_AVIONICS_TOGGLE -F16C_RIGHT_MASTER_BATTERY_OFF -F16C_RIGHT_MASTER_BATTERY_ON -F16C_RIGHT_MASTER_BATTERY_TOGGLE -F16C_RIGHT_RDR_ALT_OFF -F16C_RIGHT_RDR_ALT_ON -F16C_RIGHT_RDR_ALT_TOGGLE -SC Designs/F16C/Engines:GROUP -F16C_LEFT_AB_RESET_ENGDATA -F16C_LEFT_AB_RESET_ON -F16C_LEFT_AB_RESET_TOGGLE -F16C_LEFT_ENG_CONTI_PRI -F16C_LEFT_ENG_CONTI_SEC -F16C_LEFT_ENG_CONTI_TOGGLE -F16C_LEFT_ENG_STARTER_OFF -F16C_LEFT_ENG_STARTER_ON -F16C_LEFT_FLCS_OFF -F16C_LEFT_FLCS_ON -F16C_LEFT_FLCS_TOGGLE -SC Designs/F16C/Flight Instrumentation:GROUP -F16C_RIGHT_ALT_RADAR_0 -F16C_RIGHT_ALT_RADAR_1 -F16C_RIGHT_ALT_RADAR_OFF -F16C_RIGHT_CAS_GND_SPD -F16C_RIGHT_CAS_OFF -F16C_RIGHT_CAS_ON -F16C_RIGHT_DAY_NIGHT_DOWN -F16C_RIGHT_DAY_NIGHT_MID -F16C_RIGHT_DAY_NIGHT_UP -F16C_RIGHT_TEST_STEP_OFF -F16C_RIGHT_TEST_STEP_ON -SC Designs/F16C/Fuel:GROUP -F16C_FRONT_EXT_FUEL_TRANS_NORM -F16C_FRONT_EXT_FUEL_TRANS_OFF -F16C_FRONT_EXT_FUEL_TRANS_WING -F16C_LEFT_AIR_REFUEL_CLOSE -F16C_LEFT_AIR_REFUEL_OPEN -F16C_LEFT_ENG_FEED_AFT -F16C_LEFT_ENG_FEED_DEC -F16C_LEFT_ENG_FEED_FWD -F16C_LEFT_ENG_FEED_INC -F16C_LEFT_ENG_FEED_NORM -F16C_LEFT_ENG_FEED_OFF -F16C_LEFT_FUEL_MASTER_OFF -F16C_LEFT_FUEL_MASTER_ON -F16C_LEFT_TANK_INERTING_Off -F16C_LEFT_TANK_INERTING_On -F16C_LEFT_TANK_INERTING_Toggle -SC Designs/F16C/Gear:GROUP -F16C_LEFT_BRAKE_ANTISKID_OFF -F16C_LEFT_BRAKE_ANTISKID_ON -F16C_LEFT_BRAKE_ANTISKID_TOGGLE -F16C_LEFT_LANDING_GEAR_DOWN -F16C_LEFT_LANDING_GEAR_TOGGLE -F16C_LEFT_LANDING_GEAR_UP -F16C_LEFT_PARKING_BRAKE_OFF -F16C_LEFT_PARKING_BRAKE_ON -F16C_LEFT_PARKING_BRAKE_TOGGLE -SC Designs/F16C/Lights:GROUP -F16C_LEFT_EXTLT_ANTICOL_OFF -F16C_LEFT_EXTLT_ANTICOL_ON -F16C_LEFT_EXTLT_FORMATION_OFF -F16C_LEFT_EXTLT_FORMATION_ON -F16C_LEFT_EXTLT_FORMATION_TOGGLE -F16C_LEFT_EXTLT_NAV_Knob_Dec -F16C_LEFT_EXTLT_NAV_Knob_Inc -F16C_LEFT_EXTLT_NAV_OFF -F16C_LEFT_EXTLT_NAV_ON -F16C_LEFT_EXTLT_POSITION_FLASH -F16C_LEFT_EXTLT_POSITION_STEADY -F16C_LEFT_EXTLT_REFUEL_DEC -F16C_LEFT_EXTLT_REFUEL_INC -F16C_LEFT_LANDING_LIGHTS_OFF -F16C_LEFT_LANDING_LIGHTS_ON -F16C_LEFT_LANDING_LIGHTS_TOGGLE -F16C_MFD_1_CORNER1_Down_BrtInc -F16C_MFD_1_CORNER1_Up_BrtDec -F16C_MFD_2_CORNER1_Down_BrtInc -F16C_MFD_2_CORNER1_Up_BrtDec -F16C_RIGHT_LIGHT_CABIN_DEC -F16C_RIGHT_LIGHT_CABIN_INC -F16C_RIGHT_LIGHT_CONSOLE_DEC -F16C_RIGHT_LIGHT_CONSOLE_INC -F16C_RIGHT_LIGHT_DED_DEC -F16C_RIGHT_LIGHT_DED_INC -F16C_RIGHT_LIGHT_INSTR_FLOOD_DEC -F16C_RIGHT_LIGHT_INSTR_FLOOD_INC -F16C_RIGHT_LIGHT_MAIL_FLOOD_DEC -F16C_RIGHT_LIGHT_MAIL_FLOOD_INC -F16C_RIGHT_LIGHT_PANEL_DEC -F16C_RIGHT_LIGHT_PANEL_INC -SC Designs/F16C/MCDU:GROUP -F16C_DED_1 -F16C_DED_10 -F16C_DED_11 -F16C_DED_12 -F16C_DED_2 -F16C_DED_3 -F16C_DED_4 -F16C_DED_5 -F16C_DED_6 -F16C_DED_7 -F16C_DED_8 -F16C_DED_9 -F16C_KEYPAD_0 -F16C_KEYPAD_0 -F16C_KEYPAD_1 -F16C_KEYPAD_2 -F16C_KEYPAD_3 -F16C_KEYPAD_4 -F16C_KEYPAD_5 -F16C_KEYPAD_6 -F16C_KEYPAD_7 -F16C_KEYPAD_8 -F16C_KEYPAD_9 -F16C_KEYPAD_BRT_KNOB_Down -F16C_KEYPAD_BRT_KNOB_Up -F16C_KEYPAD_CLR_Press -F16C_KEYPAD_CLR_Release -F16C_KEYPAD_CONT_KNOB_Down -F16C_KEYPAD_CONT_KNOB_Up -F16C_KEYPAD_DATA -F16C_KEYPAD_DRIFT_SWITCH_Down -F16C_KEYPAD_DRIFT_SWITCH_Up -F16C_KEYPAD_GAIN_SWITCH_Down -F16C_KEYPAD_GAIN_SWITCH_Mid -F16C_KEYPAD_GAIN_SWITCH_Up -F16C_KEYPAD_IP -F16C_KEYPAD_MARK -F16C_KEYPAD_MCDUL_OVFR -F16C_KEYPAD_MENU -F16C_KEYPAD_NAV -F16C_KEYPAD_NEXT -F16C_KEYPAD_PREV -F16C_KEYPAD_RET_DEPR_KNOB_Down -F16C_KEYPAD_RET_DEPR_KNOB_Up -F16C_KEYPAD_RTN_SEQ_SWITCH_Down -F16C_KEYPAD_RTN_SEQ_SWITCH_Up -F16C_KEYPAD_SHF -F16C_KEYPAD_SYM_KNOB_Down -F16C_KEYPAD_SYM_KNOB_Up -SC Designs/F16C/Miscellaneous:GROUP -F16C_CANOPY_LEVER -F16C_LEFT_GND_JETT_ENABLE -F16C_LEFT_GND_JETT_OFF -F16C_LEFT_GND_JETT_TOGGLE -F16C_LEFT_STORES_CAT_1 -F16C_LEFT_STORES_CAT_3 -F16C_LEFT_STORES_CAT_TOGGLE -F16C_LEFT_TAILHOOK_DOWN -F16C_LEFT_TAILHOOK_TOGGLE -F16C_LEFT_TAILHOOK_UP -F16C_RIGHT_AUDIO_IN_TOGGLE -F16C_RIGHT_CHOCKS_SWITCH_TOGGLE -F16C_RIGHT_COVERS_SWITCH_TOGGLE -F16C_RIGHT_HANDLE_TOGGLE -F16C_RIGHT_KY_58_VOL_TOGGLE -F16C_RIGHT_LADDER_SWITCH_TOGGLE -F16C_RIGHT_MASK_SWITCH_TOGGLE -F16C_RIGHT_MODE_C_SET_TOGGLE -F16C_RIGHT_MODE_C_TOGGLE -F16C_RIGHT_OXYGEN_REG_L_TOGGLE -F16C_RIGHT_OXYGEN_REG_R_TOGGLE -F16C_RIGHT_SWITCH_SMOKE_OFF -F16C_RIGHT_SWITCH_SMOKE_ON -F16C_RIGHT_SWITCH_SMOKE_TOGGLE -F16C_RIGHT_TD_ON_TOGGLE -F16C_RIGHT_VISOR_SWITCH_TOGGLE -SC Designs/F16C/Navigation:GROUP -F16C_LEFT_GPS_NAV_PUSH -SC Designs/F16C/Radio:GROUP -F16C_LEFT_ADF_100_DEC -F16C_LEFT_ADF_100_INC -F16C_LEFT_ADF_1_10_DEC -F16C_LEFT_ADF_1_10_INC -F16C_LEFT_ADF_1_10_TOGGLE -F16C_LEFT_ADF_VOL_DEC -F16C_LEFT_ADF_VOL_INC -F16C_LEFT_COM1_KHZ_DEC -F16C_LEFT_COM1_KHZ_INC -F16C_LEFT_COM1_MHZ_DEC -F16C_LEFT_COM1_MHZ_INC -F16C_LEFT_COM1_SWAP_PUSH -F16C_LEFT_MSL_TOGGLE -F16C_LEFT_NAV1_KHZ_DEC -F16C_LEFT_NAV1_KHZ_INC -F16C_LEFT_NAV1_MHZ_DEC -F16C_LEFT_NAV1_MHZ_INC -F16C_LEFT_NAV1_SWAP_PUSH -F16C_LEFT_THREAT_TOGGLE -F16C_LEFT_XPNDR_KNOB_1_DEC -F16C_LEFT_XPNDR_KNOB_1_INC -F16C_LEFT_XPNDR_KNOB_2_DEC -F16C_LEFT_XPNDR_KNOB_2_INC -F16C_LEFT_XPNDR_KNOB_3_DEC -F16C_LEFT_XPNDR_KNOB_3_INC -F16C_LEFT_XPNDR_KNOB_4_DEC -F16C_LEFT_XPNDR_KNOB_4_INC -F16C_LEFT_XPNDR_MODE_OFF -F16C_LEFT_XPNDR_MODE_STBY -F16C_LEFT_XPNDR_MODE_TA -F16C_LEFT_XPNDR_MODE_TARA -F16C_LEFT_XPNDR_MODE_XPNDR -SC Designs/F16C/Warning System:GROUP -F16C_LEFT_CMDS_01_OFF -F16C_LEFT_CMDS_01_ON -F16C_LEFT_CMDS_01_TOGGLE -F16C_LEFT_CMDS_02_OFF -F16C_LEFT_CMDS_02_ON -F16C_LEFT_CMDS_02_TOGGLE -F16C_LEFT_CMDS_CH_OFF -F16C_LEFT_CMDS_CH_ON -F16C_LEFT_CMDS_CH_TOGGLE -F16C_LEFT_CMDS_FL_OFF -F16C_LEFT_CMDS_FL_ON -F16C_LEFT_CMDS_FL_TOGGLE -F16C_LEFT_JETT_OFF -F16C_LEFT_JETT_ON -F16C_LEFT_JETT_TOGGLE -F16C_LEFT_MODE_AUTO -F16C_LEFT_MODE_BYP -F16C_LEFT_MODE_DEC -F16C_LEFT_MODE_INC -F16C_LEFT_MODE_MAN -F16C_LEFT_MODE_OFF -F16C_LEFT_MODE_SEM -F16C_LEFT_MODE_STBY -F16C_LEFT_MWS_B_OFF -F16C_LEFT_MWS_B_ON -F16C_LEFT_MWS_B_TOGGLE -F16C_LEFT_MWS_OFF -F16C_LEFT_MWS_ON -F16C_LEFT_MWS_TOGGLE -F16C_LEFT_PRGM_1 -F16C_LEFT_PRGM_2 -F16C_LEFT_PRGM_3 -F16C_LEFT_PRGM_4 -F16C_LEFT_PRGM_DEC -F16C_LEFT_PRGM_INC -F16C_LEFT_PRGM_OFF -F16C_LEFT_RWR_OFF -F16C_LEFT_RWR_ON -F16C_LEFT_RWR_TOGGLE -F16C_LEFT_SYMBOLOGY_OFF -F16C_LEFT_SYMBOLOGY_ON -F16C_LEFT_SYMBOLOGY_TOGGLE -F16C_LEFT_TWR_SET_OFF -F16C_LEFT_TWR_SET_ON -F16C_LEFT_TWR_SET_TOGGLE -F16C_LEFT_TWR_VOL_OFF -F16C_LEFT_TWR_VOL_ON -F16C_LEFT_TWR_VOL_TOGGLE -SC Designs/F16C/Weapons:GROUP -F16C_FRONT_ARM_SIMULATE -F16C_FRONT_LASER_ARM -F16C_FRONT_LASER_OFF -F16C_FRONT_LASER_TOGGLE -F16C_FRONT_MASTER_ARM_OFF -F16C_FRONT_MASTER_ARM_ON -F16C_FRONT_RF_ECM -F16C_FRONT_RF_NORM -F16C_FRONT_RF_SILENT -SimWorks Studios/Kodiak 100/Anti-Ice:GROUP -KODIAK_100_DEICE_WINDSHIELD_OFF -KODIAK_100_DEICE_WINDSHIELD_ON -KODIAK_100_DEICE_WINDSHIELD_TOGGLE -SimWorks Studios/Kodiak 100/Electrical:GROUP -KODIAK_100_AUX_BUS_OFF -KODIAK_100_AUX_BUS_ON -KODIAK_100_AUX_BUS_TOGGLE -KODIAK_BREAKER_STBYATT -Starter_Switch_Lo -SimWorks Studios/Kodiak 100/Engine:GROUP -KODIAK_100_IGNITION_SWITCH_OFF -KODIAK_100_IGNITION_SWITCH_ON -KODIAK_100_IGNITION_SWITCH_TOGGLE -SimWorks Studios/Kodiak 100/Engines:GROUP -Starter_Switch_Hi -Starter_Switch_Off -SimWorks Studios/Kodiak 100/Fuel:GROUP -Fuel_Pump_Switch_Off -Fuel_Pump_Switch_On -Fuel_Pump_Switch_Stby -Fuel_Tank_Selectors__overhead_ -KODIAK_100_FUEL_PUMP_OFF -KODIAK_100_FUEL_PUMP_ON -KODIAK_100_FUEL_PUMP_STANDBY -KODIAK_100_FIREW_FUEL_CUTOFF_TOGGLE -KODIAK_100_TANK_SELECT_L_CLOSE -KODIAK_100_TANK_SELECT_L_OPEN -KODIAK_100_TANK_SELECT_R_CLOSE -KODIAK_100_TANK_SELECT_R_OPEN -SimWorks Studios/Kodiak 100/Lights:GROUP -Landing_Lights_Off -Landing_Lights_On -Landing_Lights_Pulse -LIGHTING_PANEL_1_Set -LIGHTING_PANEL_1_Inc -LIGHTING_PANEL_1_Dec -TDS Sim/GTNxi 650/Navigation:GROUP -GPS_BUTTON1 -GPS_BUTTON2 -GPS_CURSOR_BUTTON -GPS_DIRECTTO_BUTTON -GPS_MENU_BUTTON -TDS Sim/GTNxi 750/Navigation:GROUP -GPS_BUTTON1 -GPS_BUTTON2 -GPS_CURSOR_BUTTON -GPS_DIRECTTO_BUTTON -GPS_MENU_BUTTON -Working Title/CJ4/Air Condition / Pressurization:GROUP -WT_CJ4_CABIN_TEMP_DEC -WT_CJ4_CABIN_TEMP_INC -WT_CJ4_CLIMATE_CONTROL_COMPON -WT_CJ4_CLIMATE_CONTROL_NORM -WT_CJ4_CLIMATE_CONTROL_OFF -WT_CJ4_COCKPIT_TEMP_DEC -WT_CJ4_COCKPIT_TEMP_INC -WT_CJ4_COPILOT_FAN_DEC -WT_CJ4_COPILOT_FAN_INC -WT_CJ4_PILOT_FAN_DEC -WT_CJ4_PILOT_FAN_INC -WT_CJ4_PRESSOURCE_FRESH -WT_CJ4_PRESSOURCE_L -WT_CJ4_PRESSOURCE_NORM -WT_CJ4_PRESSOURCE_OFF -WT_CJ4_PRESSOURCE_R -WT_CJ4_PRESSURE_DUMP_PUSH -Working Title/CJ4/Anti-Ice:GROUP -WT_CJ4_ANTIICE_ENG_LEFT_TOG -WT_CJ4_ANTIICE_ENG_LR_TOG -WT_CJ4_ANTIICE_ENG_RIGHT_TOG -WT_CJ4_ANTIICE_PITOTS_TOG -WT_CJ4_ANTIICE_PITOT_1_OFF -WT_CJ4_ANTIICE_PITOT_1_ON -WT_CJ4_ANTIICE_PITOT_1_TOG -WT_CJ4_ANTIICE_PITOT_2_OFF -WT_CJ4_ANTIICE_PITOT_2_ON -WT_CJ4_ANTIICE_PITOT_2_TOG -WT_CJ4_ANTIICE_WINGENG_LEFT_TOG -WT_CJ4_ANTIICE_WINGENG_LR_OFF -WT_CJ4_ANTIICE_WINGENG_LR_ON -WT_CJ4_ANTIICE_WINGENG_LR_TOG -WT_CJ4_ANTIICE_WINGENG_RIGHT_TOG -WT_CJ4_WING_LIGHT_TOG -Working Title/CJ4/Autopilot:GROUP -WT_CJ4_AP_ALT_ALERT_CANCEL -WT_CJ4_AP_ALT_FAST_DEC -WT_CJ4_AP_ALT_FAST_INC -WT_CJ4_AP_ALT_PRESSED -WT_CJ4_AP_ALT_VAR_DEC -WT_CJ4_AP_ALT_VAR_INC -WT_CJ4_AP_APPR_PRESSED -WT_CJ4_AP_BC_PRESSED -WT_CJ4_AP_CRS1_DEC -WT_CJ4_AP_CRS1_INC -WT_CJ4_AP_CRS1_PRESSED -WT_CJ4_AP_FD_PRESSED -WT_CJ4_AP_FLC_PRESSED -WT_CJ4_AP_HALFBANK_PRESSED -WT_CJ4_AP_HDG_DEC -WT_CJ4_AP_HDG_FAST_DEC -WT_CJ4_AP_HDG_FAST_INC -WT_CJ4_AP_HDG_INC -WT_CJ4_AP_HDG_PRESSED -WT_CJ4_AP_HDG_SYNC -WT_CJ4_AP_MASTER_OFF -WT_CJ4_AP_MASTER_ON -WT_CJ4_AP_NAV_PRESSED -WT_CJ4_AP_SPEED_DEC -WT_CJ4_AP_SPEED_FAST_DEC -WT_CJ4_AP_SPEED_FAST_INC -WT_CJ4_AP_SPEED_INC -WT_CJ4_AP_SPEED_PRESSED -WT_CJ4_AP_VNAV_PRESSED -WT_CJ4_AP_VS_DEC -WT_CJ4_AP_VS_INC -WT_CJ4_AP_VS_PRESSED -WT_CJ4_AP_XFR_PRESSED -WT_CJ4_AP_YD_OFF -WT_CJ4_AP_YD_ON -WT_CJ4_AP_YD_PRESSED -Working Title/CJ4/Avionics:GROUP -CJ4_Generic_Upr_TILT_DEC -CJ4_Generic_Upr_TILT_INC -Generic_Lwr_DATA_DEC -Generic_Lwr_DATA_INC -Generic_Lwr_DATA_PUSH -Generic_Lwr_DATA_PUSH_LONG -Generic_Lwr_DATA_SHORT_LONG_PRESS -Generic_Lwr_DATA_SHORT_LONG_RELEASE -Generic_Lwr_Hold_MEM1_1 -Generic_Lwr_Hold_MEM2_1 -Generic_Lwr_Hold_MEM3_1 -Generic_Lwr_JOYSTICK_DOWN -Generic_Lwr_JOYSTICK_LEFT -Generic_Lwr_JOYSTICK_RIGHT -Generic_Lwr_JOYSTICK_UP -Generic_Lwr_MENU_ADV_DEC -Generic_Lwr_MENU_ADV_INC -Generic_Lwr_Push_CAS_PAGE -Generic_Lwr_Push_CKLST_1 -Generic_Lwr_Push_Chart_1 -Generic_Lwr_Push_ENG -Generic_Lwr_Push_ESC -Generic_Lwr_Push_LWR_MENU -Generic_Lwr_Push_MEM1_1 -Generic_Lwr_Push_MEM2_1 -Generic_Lwr_Push_MEM3_1 -Generic_Lwr_Push_NAV_DATA -Generic_Lwr_Push_PASSBRIEF_1 -Generic_Lwr_Push_SYS -Generic_Lwr_Push_TERR_WX -Generic_Lwr_Push_TFC -Generic_Lwr_Push_UPR_MENU -Generic_Lwr_Push_ZOOM_DEC -Generic_Lwr_Push_ZOOM_INC -Generic_Upr_Data_DEC -Generic_Upr_Data_INC -Generic_Upr_Data_PUSH -Generic_Upr_MENU_ADV_DEC -Generic_Upr_MENU_ADV_INC -Generic_Upr_Push_ESC -Generic_Upr_Push_ET -Generic_Upr_Push_FRMT -Generic_Upr_Push_NAV -Generic_Upr_Push_PFD_MENU -Generic_Upr_Push_REFS_MENU -Generic_Upr_Push_TERR_WX -Generic_Upr_Push_TFC -Generic_Upr_RANGE_DEC -Generic_Upr_RANGE_INC -MFD1_MEM1-1_Button_Short_Long_Press -MFD1_MEM1-1_Button_Short_Long_Release -MFD1_MEM2-1_Button_Short_Long_Press_ -MFD1_MEM2-1_Button_Short_Long_Release -MFD1_MEM3-1_Button_Short_Long_Press -MFD1_MEM3-1_Short_Long_Release -WT_CJ4_BARO1_DEC -WT_CJ4_BARO1_INC -WT_CJ4_BARO1_STD_PUSH -WT_CJ4_BARO2_DEC -WT_CJ4_BARO2_INC -WT_CJ4_BARO2_STD_PUSH -WT_CJ4_BARO3_DEC -WT_CJ4_BARO3_INC -Working Title/CJ4/Controls:GROUP -AILERON_TRIM_LEFT_WING_DN -AILERON_TRIM_RIGHT_WING_DN -RUDDER_TRIM_NOSE_LEFT -RUDDER_TRIM_NOSE_RIGHT -SEC_ELEV_TRIM_ENABLE_TOGGLE -SECONDARY_ELEV_TRIM_NOSE_DOWN -SECONDARY_ELEV_TRIM_NOSE_UP -Working Title/CJ4/Electrical:GROUP -WT_CJ4_AVIONICS_FTL_EMER_TOG -WT_CJ4_AVIONICS_MASTER_DSP -WT_CJ4_AVIONICS_MASTER_OFF -WT_CJ4_AVIONICS_MASTER_ON -WT_CJ4_EMER_LIGHT_ARM -WT_CJ4_EMER_LIGHT_OFF -WT_CJ4_EMER_LIGHT_TOG -WT_CJ4_GENERATOR_L_OFF -WT_CJ4_GENERATOR_L_ON -WT_CJ4_GENERATOR_R_OFF -WT_CJ4_GENERATOR_R_ON -WT_CJ4_GEN_LR_TOG -WT_CJ4_GEN_L_RESET -WT_CJ4_GEN_R_RESET -WT_CJ4_MASTER_BATTERY_EMER -WT_CJ4_MASTER_BATTERY_OFF -WT_CJ4_MASTER_BATTERY_ON -WT_CJ4_STBY_FTL_OFF -WT_CJ4_STBY_FTL_ON -WT_CJ4_STBY_FTL_TOG -Working Title/CJ4/Engines:GROUP -WT_CJ4_ENG_L_RUN_OFF -WT_CJ4_ENG_L_RUN_ON -WT_CJ4_ENG_RUNSTOP_L_PUSH -WT_CJ4_ENG_RUNSTOP_R_PUSH -WT_CJ4_ENG_R_RUN_OFF -WT_CJ4_ENG_R_RUN_ON -WT_CJ4_ENG_START_DISENG -WT_CJ4_ENG_START_LEFT -WT_CJ4_ENG_START_LEFT_OFF -WT_CJ4_ENG_START_LEFT_ON -WT_CJ4_ENG_START_RIGHT -WT_CJ4_ENG_START_RIGHT_OFF -WT_CJ4_ENG_START_RIGHT_ON -WT_CJ4_IGNITION_MAN_L_PUSH -WT_CJ4_IGNITION_MAN_R_PUSH -Working Title/CJ4/Fuel:GROUP -WT_CJ4_FUEL_BOOST_MAN_L -WT_CJ4_FUEL_BOOST_MAN_R -WT_CJ4_FUEL_XFER_LTK -WT_CJ4_FUEL_XFER_OFF -WT_CJ4_FUEL_XFER_RTK -Working Title/CJ4/Lights:GROUP -WT_CJ4_BEACON_LIGHT_OFF -WT_CJ4_BEACON_LIGHT_ON -WT_CJ4_BEACON_LIGHT_TOG -WT_CJ4_CABIN1_LIGHT_DEC -WT_CJ4_CABIN1_LIGHT_INC -WT_CJ4_CABIN1_LIGHT_TOGGLE -WT_CJ4_CABIN2_LIGHT_DEC -WT_CJ4_CABIN2_LIGHT_INC -WT_CJ4_CABIN2_LIGHT_TOGGLE -WT_CJ4_FLOOD_LIGHT_DEC -WT_CJ4_FLOOD_LIGHT_INC -WT_CJ4_FLOOD_LIGHT_TOGGLE -WT_CJ4_LANDING_LIGHTS_OFF -WT_CJ4_LANDING_LIGHTS_ON -WT_CJ4_LANDING_LIGHTS_TOGGLE -WT_CJ4_LOGO_LIGHT_TOGGLE -WT_CJ4_MFD1_LIGHT_DEC -WT_CJ4_MFD1_LIGHT_INC -WT_CJ4_MFD2_LIGHT_DEC -WT_CJ4_MFD2_LIGHT_INC -WT_CJ4_NAV_LIGHT_OFF -WT_CJ4_NAV_LIGHT_ON -WT_CJ4_NAV_LIGHT_TOG -WT_CJ4_PANEL_LIGHTS_DEC -WT_CJ4_PANEL_LIGHTS_INC -WT_CJ4_PANEL_LIGHTS_TOGGLE -WT_CJ4_PFD1_LIGHT_DEC -WT_CJ4_PFD1_LIGHT_INC -WT_CJ4_PFD2_LIGHT_DEC -WT_CJ4_PFD2_LIGHT_INC -WT_CJ4_RECOGNITION_LIGHTS_OFF -WT_CJ4_RECOGNITION_LIGHTS_ON -WT_CJ4_RECOGNITION_LIGHTS_TOGGLE -WT_CJ4_SAFETY_LIGHT_TOGGLE -WT_CJ4_SEATBELT_LIGHT_TOGGLE -WT_CJ4_STROBE_LIGHT_OFF -WT_CJ4_STROBE_LIGHT_ON -WT_CJ4_STROBE_LIGHT_TOG -WT_CJ4_TAXI_LIGHTS_OFF -WT_CJ4_TAXI_LIGHTS_ON -WT_CJ4_TAXI_LIGHTS_TOGGLE -Working Title/CJ4/Navigation:GROUP -CJ4_FMC_1_BTN_0 -CJ4_FMC_1_BTN_1 -CJ4_FMC_1_BTN_2 -CJ4_FMC_1_BTN_3 -CJ4_FMC_1_BTN_4 -CJ4_FMC_1_BTN_5 -CJ4_FMC_1_BTN_6 -CJ4_FMC_1_BTN_7 -CJ4_FMC_1_BTN_8 -CJ4_FMC_1_BTN_9 -CJ4_FMC_1_BTN_A -CJ4_FMC_1_BTN_B -CJ4_FMC_1_BTN_C -CJ4_FMC_1_BTN_CLR -CJ4_FMC_1_BTN_CLR_Long -CJ4_FMC_1_BTN_D -CJ4_FMC_1_BTN_DEPARR -CJ4_FMC_1_BTN_DIR -CJ4_FMC_1_BTN_DIV -CJ4_FMC_1_BTN_DOT -CJ4_FMC_1_BTN_DSPL_MENU -CJ4_FMC_1_BTN_E -CJ4_FMC_1_BTN_EXEC -CJ4_FMC_1_BTN_F -CJ4_FMC_1_BTN_FPLN -CJ4_FMC_1_BTN_G -CJ4_FMC_1_BTN_H -CJ4_FMC_1_BTN_I -CJ4_FMC_1_BTN_IDX -CJ4_FMC_1_BTN_J -CJ4_FMC_1_BTN_K -CJ4_FMC_1_BTN_L -CJ4_FMC_1_BTN_L1 -CJ4_FMC_1_BTN_L2 -CJ4_FMC_1_BTN_L3 -CJ4_FMC_1_BTN_L4 -CJ4_FMC_1_BTN_L5 -CJ4_FMC_1_BTN_L6 -CJ4_FMC_1_BTN_LEGS -CJ4_FMC_1_BTN_M -CJ4_FMC_1_BTN_MFD_ADV -CJ4_FMC_1_BTN_MFD_DATA -CJ4_FMC_1_BTN_MSG -CJ4_FMC_1_BTN_N -CJ4_FMC_1_BTN_NEXTPAGE -CJ4_FMC_1_BTN_O -CJ4_FMC_1_BTN_P -CJ4_FMC_1_BTN_PERF -CJ4_FMC_1_BTN_PLUSMINUS -CJ4_FMC_1_BTN_PREVPAGE -CJ4_FMC_1_BTN_Q -CJ4_FMC_1_BTN_R -CJ4_FMC_1_BTN_R1 -CJ4_FMC_1_BTN_R2 -CJ4_FMC_1_BTN_R3 -CJ4_FMC_1_BTN_R4 -CJ4_FMC_1_BTN_R5 -CJ4_FMC_1_BTN_R6 -CJ4_FMC_1_BTN_S -CJ4_FMC_1_BTN_SP -CJ4_FMC_1_BTN_T -CJ4_FMC_1_BTN_TUN -CJ4_FMC_1_BTN_U -CJ4_FMC_1_BTN_V -CJ4_FMC_1_BTN_W -CJ4_FMC_1_BTN_X -CJ4_FMC_1_BTN_Y -CJ4_FMC_1_BTN_Z -Working Title/CJ4/Radio:GROUP -WT_CJ4_ADF1_TOG -WT_CJ4_COM1COM2_ACTIVE_TOG -WT_CJ4_COM1_ACTIVE_PUSH -WT_CJ4_COM1_ON_TOGGLE -WT_CJ4_COM1_VOLUME_DEC -WT_CJ4_COM1_VOLUME_INC -WT_CJ4_COM2_ACTIVE_PUSH -WT_CJ4_COM2_ON_TOGGLE -WT_CJ4_COM2_VOLUME_DEC -WT_CJ4_COM2_VOLUME_INC -WT_CJ4_DME1_TOG -WT_CJ4_DME2_TOG -WT_CJ4_MKR_MUTE_PRESS -WT_CJ4_MKR_MUTE_RELEASE -WT_CJ4_MKR_TOG -WT_CJ4_NAV1_TOG -WT_CJ4_NAV1_VOLUME_DEC -WT_CJ4_NAV1_VOLUME_INC -WT_CJ4_NAV2_TOG -WT_CJ4_NAV2_VOLUME_DEC -WT_CJ4_NAV2_VOLUME_INC -WT_CJ4_SPKR_TOG -Working Title/CJ4/Warning System:GROUP -WT_CJ4_MASTER_CAUTION_PUSH -WT_CJ4_MASTER_CAUTION_RELEASE -WT_CJ4_MASTER_WARNING_PUSH -WT_CJ4_MASTER_WARNING_RELEASE -Working Title/G1000 NXi/Avionics:GROUP -AS1000_VNAV_TOGGLE \ No newline at end of file diff --git a/ReactClient/public/config/mobiFlightPresets/msfs2020_eventids_user.cip b/ReactClient/public/config/mobiFlightPresets/msfs2020_eventids_user.cip deleted file mode 100644 index e69de29..0000000 diff --git a/ReactClient/public/config/mobiFlightPresets/msfs2020_simvars.cip b/ReactClient/public/config/mobiFlightPresets/msfs2020_simvars.cip deleted file mode 100644 index 68d2131..0000000 --- a/ReactClient/public/config/mobiFlightPresets/msfs2020_simvars.cip +++ /dev/null @@ -1,2033 +0,0 @@ -Aerosoft/CRJ 550-700-1000/Air Condition / Pressurization#GROUP -ASCRJ_AIRC_AFT_CARGO#(L:ASCRJ_AIRC_AFT_CARGO)#Aerosoft.CRJ 550-700-1000.Air Condition / Pressurization.ASCRJ_AIRC_AFT_CARGO -ASCRJ_AIRC_RECIRC_FAN#(L:ASCRJ_AIRC_RECIRC_FAN)#Aerosoft.CRJ 550-700-1000.Air Condition / Pressurization.ASCRJ_AIRC_RECIRC_FAN -ASCRJ_OVHD_OXY_ON#(L:ASCRJ_OVHD_OXY_ON)#Aerosoft.CRJ 550-700-1000.Air Condition / Pressurization.ASCRJ_OVHD_OXY_ON -Aerosoft/CRJ 550-700-1000/Anti-Ice#GROUP -ASCRJ_AICE_COWL_L#(L:ASCRJ_AICE_COWL_L)#Aerosoft.CRJ 550-700-1000.Anti-Ice.ASCRJ_AICE_COWL_L -ASCRJ_AICE_COWL_R#(L:ASCRJ_AICE_COWL_R)#Aerosoft.CRJ 550-700-1000.Anti-Ice.ASCRJ_AICE_COWL_R -ASCRJ_AICE_PHEAT_L#(L:ASCRJ_AICE_PHEAT_L)#Aerosoft.CRJ 550-700-1000.Anti-Ice.ASCRJ_AICE_PHEAT_L -ASCRJ_AICE_PHEAT_R#(L:ASCRJ_AICE_PHEAT_R)#Aerosoft.CRJ 550-700-1000.Anti-Ice.ASCRJ_AICE_PHEAT_R -ASCRJ_AICE_WING#(L:ASCRJ_AICE_WING)#Aerosoft.CRJ 550-700-1000.Anti-Ice.ASCRJ_AICE_WING -ASCRJ_AICE_WSHLD_L#(L:ASCRJ_AICE_WSHLD_L) #Aerosoft.CRJ 550-700-1000.Anti-Ice.ASCRJ_AICE_WSHLD_L -ASCRJ_AICE_WSHLD_R#(L:ASCRJ_AICE_WSHLD_R)#Aerosoft.CRJ 550-700-1000.Anti-Ice.ASCRJ_AICE_WSHLD_R -Aerosoft/CRJ 550-700-1000/Autopilot#GROUP -ASCRJ_FCP_12_BANK_LED#(L:ASCRJ_FCP_12BANK_LED)#Aerosoft.CRJ 550-700-1000.Autopilot.ASCRJ_FCP_12_BANK_LED -ASCRJ_FCP_ALT_INFO#(L:ASCRJ_FCP_ALT_INFO)#Aerosoft.CRJ 550-700-1000.Autopilot.ASCRJ_FCP_ALT_INFO -ASCRJ_FCP_ALT_LED#(L:ASCRJ_FCP_ALT_LED)#Aerosoft.CRJ 550-700-1000.Autopilot.ASCRJ_FCP_ALT_LED -ASCRJ_FCP_APPR_LED#(L:ASCRJ_FCP_APPR_LED)#Aerosoft.CRJ 550-700-1000.Autopilot.ASCRJ_FCP_APPR_LED -ASCRJ_FCP_AP_ENG_LED#(L:ASCRJ_FCP_AP_ENG_LED)#Aerosoft.CRJ 550-700-1000.Autopilot.ASCRJ_FCP_AP_ENG_LED -ASCRJ_FCP_BC_LED#(L:ASCRJ_FCP_BC_LED)#Aerosoft.CRJ 550-700-1000.Autopilot.ASCRJ_FCP_BC_LED -ASCRJ_FCP_HDG_INFO#(L:ASCRJ_FCP_HDG_INFO)#Aerosoft.CRJ 550-700-1000.Autopilot.ASCRJ_FCP_HDG_INFO -ASCRJ_FCP_HDG_LED#(L:ASCRJ_FCP_HDG_LED)#Aerosoft.CRJ 550-700-1000.Autopilot.ASCRJ_FCP_HDG_LED -ASCRJ_FCP_LNAV_LED#(L:ASCRJ_FCP_NAV_LED)#Aerosoft.CRJ 550-700-1000.Autopilot.ASCRJ_FCP_LNAV_LED -ASCRJ_FCP_SPEED_INFO#(L:ASCRJ_FCP_SPEED_INFO)#Aerosoft.CRJ 550-700-1000.Autopilot.ASCRJ_FCP_SPEED_INFO -ASCRJ_FCP_SPEED_LED#(L:ASCRJ_FCP_SPEED_LED)#Aerosoft.CRJ 550-700-1000.Autopilot.ASCRJ_FCP_SPEED_LED -ASCRJ_FCP_TURB_LED#(L:ASCRJ_FCP_TURB_LED)#Aerosoft.CRJ 550-700-1000.Autopilot.ASCRJ_FCP_TURB_LED -ASCRJ_FCP_VNAV_LED#(L:ASCRJ_FCP_VNAV_LED)#Aerosoft.CRJ 550-700-1000.Autopilot.ASCRJ_FCP_VNAV_LED -ASCRJ_FCP_VS_LED#(L:ASCRJ_FCP_VS_LED)#Aerosoft.CRJ 550-700-1000.Autopilot.ASCRJ_FCP_VS_LED -ASCRJ_FCP_WHEEL_INFO#(L:ASCRJ_FCP_WHEEL_INFO) flr#Aerosoft.CRJ 550-700-1000.Autopilot.ASCRJ_FCP_WHEEL_INFO -ASCRJ_FCP_XFR_LED#(L:ASCRJ_FCP_XFR_LED)#Aerosoft.CRJ 550-700-1000.Autopilot.ASCRJ_FCP_XFR_LED -Aerosoft/CRJ 550-700-1000/Electrical#GROUP -ASCRJ_APU_STARTSTOP_AVAIL#(L:ASCRJ_APU_STARTSTOP_AVAIL)#Aerosoft.CRJ 550-700-1000.Electrical.ASCRJ_APU_STARTSTOP_AVAIL -Aerosoft/CRJ 550-700-1000/Engines#GROUP -ASCRJ_ENGS_CONT_IGN_LED#(L:ASCRJ_ENGS_CONT_IGN_ON)#Aerosoft.CRJ 550-700-1000.Engines.ASCRJ_ENGS_CONT_IGN_LED -ASCRJ_TQ_REV1_MODE#(L:ASCRJ_TQ_REV1_MODE)#Aerosoft.CRJ 550-700-1000.Engines.ASCRJ_TQ_REV1_MODE -ASCRJ_TQ_REV2_MODE#(L:ASCRJ_TQ_REV2_MODE)#Aerosoft.CRJ 550-700-1000.Engines.ASCRJ_TQ_REV2_MODE -Aerosoft/CRJ 550-700-1000/Environment#GROUP -PLANE AIRSPEED#(A:AIRSPEED TRUE:0, Knots) flr#Aerosoft.CRJ 550-700-1000.Environment.PLANE AIRSPEED -PLANE ALTITUDE#(A:INDICATED ALTITUDE:1, Feet) flr#Aerosoft.CRJ 550-700-1000.Environment.PLANE ALTITUDE -PLANE HEADING#(A:PLANE HEADING DEGREES TRUE:0, Radians) 57.2957795131 * flr#Aerosoft.CRJ 550-700-1000.Environment.PLANE HEADING -Aerosoft/CRJ 550-700-1000/Flight Controls#GROUP -ASCRJ_FLAPS_SET#(L:ASCRJ_FLAPS_SET)#Aerosoft.CRJ 550-700-1000.Flight Controls.ASCRJ_FLAPS_SET -Aerosoft/CRJ 550-700-1000/Fuel#GROUP -Fuel Quantity Center#(A:FUEL TANK CENTER QUANTITY,Gallons) 3.039 * flr#Aerosoft.CRJ 550-700-1000.Fuel.Fuel Quantity Center -Fuel Quantity Left#(A:FUEL LEFT QUANTITY,Gallons) 3.039 * flr#Aerosoft.CRJ 550-700-1000.Fuel.Fuel Quantity Left -Fuel Quantity Right#(A:FUEL RIGHT QUANTITY,Gallons) 3.039 * flr#Aerosoft.CRJ 550-700-1000.Fuel.Fuel Quantity Right -Aerosoft/CRJ 550-700-1000/Gear#GROUP -ASCRJ_GEAR_LEFT_POS#(L:ASCRJ_GEAR_LEFT_POS)#Aerosoft.CRJ 550-700-1000.Gear.ASCRJ_GEAR_LEFT_POS -ASCRJ_GEAR_NOSE_POS#(L:ASCRJ_GEAR_NOSE_POS)#Aerosoft.CRJ 550-700-1000.Gear.ASCRJ_GEAR_NOSE_POS -ASCRJ_GEAR_RIGHT_POS#(L:ASCRJ_GEAR_RIGHT_POS)#Aerosoft.CRJ 550-700-1000.Gear.ASCRJ_GEAR_RIGHT_POS -ASCRJ_PARK_BRAKE#(L:ASCRJ_PARK_BRAKE)#Aerosoft.CRJ 550-700-1000.Gear.ASCRJ_PARK_BRAKE -Aerosoft/CRJ 550-700-1000/Hydraulic#GROUP -L_HYD_SOV_BUTTON_LED#(L:ASCRJ_HYDR_SOV1_CLOSED)#Aerosoft.CRJ 550-700-1000.Hydraulic.L_HYD_SOV_BUTTON_LED -R_HYD_SOV_BUTTON_LED#(L:ASCRJ_HYDR_SOV2_CLOSED)#Aerosoft.CRJ 550-700-1000.Hydraulic.R_HYD_SOV_BUTTON_LED -Aerosoft/CRJ 550-700-1000/Lights#GROUP -ASCRJ_EXTL_BEACON_LIGHT#(L:ASCRJ_EXTL_BEACON)#Aerosoft.CRJ 550-700-1000.Lights.ASCRJ_EXTL_BEACON_LIGHT -ASCRJ_EXTL_NAV_LIGHT#(L:ASCRJ_EXTL_NAV)#Aerosoft.CRJ 550-700-1000.Lights.ASCRJ_EXTL_NAV_LIGHT -ASCRJ_OVHD_LDG_LEFT#(L:ASCRJ_OVHD_LDG_LEFT)#Aerosoft.CRJ 550-700-1000.Lights.ASCRJ_OVHD_LDG_LEFT -ASCRJ_OVHD_LDG_NOSE#(L:ASCRJ_OVHD_LDG_NOSE)#Aerosoft.CRJ 550-700-1000.Lights.ASCRJ_OVHD_LDG_NOSE -ASCRJ_OVHD_LDG_RIGHT#(L:ASCRJ_OVHD_LDG_RIGHT)#Aerosoft.CRJ 550-700-1000.Lights.ASCRJ_OVHD_LDG_RIGHT -ASCRJ_OVHD_TAXI#(L:ASCRJ_OVHD_TAXI)#Aerosoft.CRJ 550-700-1000.Lights.ASCRJ_OVHD_TAXI -Aerosoft/CRJ 550-700-1000/Navigation#GROUP -ASCRJ_IRS1_KNOB#(L:ASCRJ_IRS1_KNOB)#Aerosoft.CRJ 550-700-1000.Navigation.ASCRJ_IRS1_KNOB -ASCRJ_IRS2_KNOB#(L:ASCRJ_IRS2_KNOB)#Aerosoft.CRJ 550-700-1000.Navigation.ASCRJ_IRS2_KNOB -Aerosoft/CRJ 550-700-1000/Warning System#GROUP -ASCRJ_GSC_MASTER_CAUT_ON#(L:ASCRJ_GSC_MASTER_CAUT_ON)#Aerosoft.CRJ 550-700-1000.Warning System.ASCRJ_GSC_MASTER_CAUT_ON -ASCRJ_GSC_MASTER_WARN_ON#(L:ASCRJ_GSC_MASTER_WARN_ON)#Aerosoft.CRJ 550-700-1000.Warning System.ASCRJ_GSC_MASTER_WARN_ON -ASCRJ_GSF_MASTER_CAUT_ON#(L:ASCRJ_GSF_MASTER_CAUT_ON)#Aerosoft.CRJ 550-700-1000.Warning System.ASCRJ_GSF_MASTER_CAUT_ON -ASCRJ_GSF_MASTER_WARN_ON#(L:ASCRJ_GSF_MASTER_WARN_ON)#Aerosoft.CRJ 550-700-1000.Warning System.ASCRJ_GSF_MASTER_WARN_ON -Asobo/330 Extra/Avionics#GROUP -AS3X_MFD_Cursor#(L:MFD_Main_MapShowCursor,Number)#Asobo.330 Extra.Avionics.AS3X_MFD_Cursor -Asobo/Baron G58/Controls#GROUP -G58 FLAPS BLUE INDICATOR#(A:TRAILING EDGE FLAPS LEFT ANGLE, degrees) 10 - abs 0.1 <#Asobo.Baron G58.Controls.G58 FLAPS BLUE INDICATOR -G58 FLAPS RED INDICATOR#(A:CIRCUIT FLAP MOTOR ON, bool)#Asobo.Baron G58.Controls.G58 FLAPS RED INDICATOR -G58 FLAPS YELLOW INDICATOR#(A:TRAILING EDGE FLAPS LEFT ANGLE, degrees) 30 - abs 0.1 <#Asobo.Baron G58.Controls.G58 FLAPS YELLOW INDICATOR -Asobo/Baron G58/Safety#GROUP -G58 ELT LED ON#(A:ELT ACTIVATED, Bool)#Asobo.Baron G58.Safety.G58 ELT LED ON -Asobo/Cessna 172/Autopilot#GROUP -C_172_AP_Heading#(A:AUTOPILOT HEADING LOCK DIR, degrees)#Asobo.Cessna 172.Autopilot.C_172_AP_Heading -Asobo/Cessna 172/Warning System#GROUP -C172 Standby Battery Switch Test #(L:XMLVAR_STBYBattery_Test, bool)#Asobo.Cessna 172.Warning System.C172 Standby Battery Switch Test -Asobo/Longitude/Autopilot#GROUP -LONGITUDE_AUTOPILOT_VNAV_ON#(L:XMLVAR_VNAVButtonValue)#Asobo.Longitude.Autopilot.LONGITUDE_AUTOPILOT_VNAV_ON -Asobo/Longitude/Lights#GROUP -(A:ENGINE 1 DEICE ON, Number)#(A:ENGINE 1 DEICE ON, Number)#Asobo.Longitude.Lights.(A:ENGINE 1 DEICE ON, Number) -(A:ENGINE 2 DEICE ON, Number)#(A:ENGINE 2 DEICE ON, Number)#Asobo.Longitude.Lights.(A:ENGINE 2 DEICE ON, Number) -(A:LIGHT LANDING ON, Number)#(A:LIGHT LANDING ON, Number)#Asobo.Longitude.Lights.(A:LIGHT LANDING ON, Number) -(A:LIGHT NAV ON, Number)#(A:LIGHT NAV ON, Number)#Asobo.Longitude.Lights.(A:LIGHT NAV ON, Number) -(A:LIGHT TAXI ON, Number)#(A:LIGHT TAXI ON, Number)#Asobo.Longitude.Lights.(A:LIGHT TAXI ON, Number) -(A:LIGHT WING ON, Number)#(A:LIGHT WING ON, Number)#Asobo.Longitude.Lights.(A:LIGHT WING ON, Number) -(A:PITOT DEICE ON, Number)#(A:PITOT DEICE ON, Number)#Asobo.Longitude.Lights.(A:PITOT DEICE ON, Number) -(A:WING DEICE ON, Number)#(A:WING DEICE ON, Number)#Asobo.Longitude.Lights.(A:WING DEICE ON, Number) -Asobo/TBM 930/Anti-Ice#GROUP -TBM930_AIRFRAME_DE_ICE_LED_LEFT#(L:XMLVAR_IsDeiceAirFrame, Number)#Asobo.TBM 930.Anti-Ice.TBM930_AIRFRAME_DE_ICE_LED_LEFT -TBM930_AIRFRAME_DE_ICE_LED_RIGHT#(L:XMLVAR_IsDeiceAirFrame2)#Asobo.TBM 930.Anti-Ice.TBM930_AIRFRAME_DE_ICE_LED_RIGHT -TBM930_PROP_DE_ICE_LED#(A:WINDSHIELD DEICE SWITCH, Bool)#Asobo.TBM 930.Anti-Ice.TBM930_PROP_DE_ICE_LED -TBM930_WINDSHIELD_DE_ICE_LEDS#(A:PROP DEICE SWITCH:1, Bool)#Asobo.TBM 930.Anti-Ice.TBM930_WINDSHIELD_DE_ICE_LEDS -Asobo/TBM 930/Autopilot#GROUP -TBM930_AUTOPILOT_ALT_LED#(A:AUTOPILOT ALTITUDE LOCK, Bool)#Asobo.TBM 930.Autopilot.TBM930_AUTOPILOT_ALT_LED -TBM930_AUTOPILOT_AP_LED#(A:AUTOPILOT MASTER, Bool)#Asobo.TBM 930.Autopilot.TBM930_AUTOPILOT_AP_LED -TBM930_AUTOPILOT_BANK_LED#(A:AUTOPILOT MAX BANK, Radians) 0.5 <#Asobo.TBM 930.Autopilot.TBM930_AUTOPILOT_BANK_LED -TBM930_AUTOPILOT_FD_LED#(A:AUTOPILOT FLIGHT DIRECTOR ACTIVE, Bool)#Asobo.TBM 930.Autopilot.TBM930_AUTOPILOT_FD_LED -TBM930_AUTOPILOT_HDG_LED#(A:AUTOPILOT HEADING LOCK, Bool)#Asobo.TBM 930.Autopilot.TBM930_AUTOPILOT_HDG_LED -TBM930_AUTOPILOT_Heading#(A:AUTOPILOT HEADING LOCK DIR:1, degrees)#Asobo.TBM 930.Autopilot.TBM930_AUTOPILOT_Heading -TBM930_AUTOPILOT_SPD_LED#(L:XMLVAR_AirSpeedIsInMach, Number)#Asobo.TBM 930.Autopilot.TBM930_AUTOPILOT_SPD_LED -TBM930_AUTOPILOT_VS_LED#(A:AUTOPILOT VERTICAL HOLD, Bool)#Asobo.TBM 930.Autopilot.TBM930_AUTOPILOT_VS_LED -Asobo/TBM 930/Gear#GROUP -TBM930_GEAR_DOWN_LEDS#1·0·(A:GEAR·LEFT·POSITION,·Percent)·100·==·?#Asobo.TBM 930.Gear.TBM930_GEAR_DOWN_LEDS -Asobo/TBM 930/Lights#GROUP -TBM930_PANEL_BRIGHTNESS#(A:LIGHT POTENTIOMETER:4, Percent)#Asobo.TBM 930.Lights.TBM930_PANEL_BRIGHTNESS -Asobo/TBM 930/Miscellaneous#GROUP -TBM930_BACK_DOOR_STATE#(L:XMLVAR_TBM930_BackDoor_State)#Asobo.TBM 930.Miscellaneous.TBM930_BACK_DOOR_STATE -TBM930_CARGO_DOOR_STATE#(L:XMLVAR_TBM930_CargoDoor_State)#Asobo.TBM 930.Miscellaneous.TBM930_CARGO_DOOR_STATE -TBM930_FRONT_DOOR_STATE#(L:XMLVAR_TBM930_FrontDoor_State)#Asobo.TBM 930.Miscellaneous.TBM930_FRONT_DOOR_STATE -Asobo/TBM 930/Safety#GROUP -TBM930_ELT_LED#(A:ELT ACTIVATED, Bool) (E:SIMULATION TIME, second) 3 * 2 % and (L:XMLVAR_ELT_STATE) 3 ==#Asobo.TBM 930.Safety.TBM930_ELT_LED -Asobo/TBM 930/Warning System#GROUP -TBM930_ELT_LED#(A:ELT ACTIVATED, Bool) (E:SIMULATION TIME, second) 3 * 2 % and (L:XMLVAR_ELT_STATE) 3 == or#Asobo.TBM 930.Warning System.TBM930_ELT_LED -Asobo/XCub/Controls#GROUP -XCUB_FLAPS_ACTUAL_POSITION_DISPLAY#(A:FLAPS HANDLE INDEX, Number)#Asobo.XCub.Controls.XCUB_FLAPS_ACTUAL_POSITION_DISPLAY -XCUB_TRIM_ACTUAL_POSITION_DISPLAY#(A:ELEVATOR TRIM INDICATOR, Percent) 10 /#Asobo.XCub.Controls.XCUB_TRIM_ACTUAL_POSITION_DISPLAY -Asobo/XCub/Lights#GROUP -XCUB_AUX_DIMMER_VALUE#(A:LIGHT POTENTIOMETER:3, Percent)#Asobo.XCub.Lights.XCUB_AUX_DIMMER_VALUE -Asobo/XCub/Navigation#GROUP -XCUB_AIRSPEED_INDICATED_DISPLAY#(A:AIRSPEED INDICATED, Mph)#Asobo.XCub.Navigation.XCUB_AIRSPEED_INDICATED_DISPLAY -Fly By Wire/A320-Dev/Air Condition / Pressurization#GROUP -APU Bleed Fault#(L:A32NX_OVHD_PNEU_APU_BLEED_PB_HAS_FAULT, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Air Condition / Pressurization.APU Bleed Fault -APU Bleed On#(L:A32NX_OVHD_PNEU_APU_BLEED_PB_IS_ON, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Air Condition / Pressurization.APU Bleed On -Crew Oxygen Off#(L:PUSH_OVHD_OXYGEN_CREW, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Air Condition / Pressurization.Crew Oxygen Off -Fly By Wire/A320-Dev/Anti-Ice#GROUP -Engine 1 Ice Fault#(L:A32NX_OVHD_INTLT_ANN) 0 == 1 and (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Anti-Ice.Engine 1 Ice Fault -Engine 1 Ice On#(A:ENG ANTI ICE:1, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Anti-Ice.Engine 1 Ice On -Engine 2 Ice Fault#(L:A32NX_OVHD_INTLT_ANN) 0 == 1 and (L:A32NX_ELEC_AC_2_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Anti-Ice.Engine 2 Ice Fault -Engine 2 Ice On#(A:ENG ANTI ICE:2, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Anti-Ice.Engine 2 Ice On -Probe Window Heat#(L:A32NX_MAN_PITOT_HEAT) (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_2_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Anti-Ice.Probe Window Heat -Wing Ice Fault#(L:A32NX_OVHD_INTLT_ANN) 0 == 1 and ((L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Anti-Ice.Wing Ice Fault -Wing Ice On#(A:STRUCTURAL DEICE SWITCH, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Anti-Ice.Wing Ice On -Fly By Wire/A320-Dev/Autopilot#GROUP -A32NX AUTOPILOT AIRSPEED HOLD VAR#(A:AUTOPILOT AIRSPEED HOLD VAR)#Fly By Wire.A320-Dev.Autopilot.A32NX AUTOPILOT AIRSPEED HOLD VAR -A32NX AUTOPILOT ALTITUDE LOCK VAR:3#(A:AUTOPILOT ALTITUDE LOCK VAR:3)#Fly By Wire.A320-Dev.Autopilot.A32NX AUTOPILOT ALTITUDE LOCK VAR:3 -A32NX_AUTOPILOT_1_ACTIVE#(L:A32NX_AUTOPILOT_1_ACTIVE)#Fly By Wire.A320-Dev.Autopilot.A32NX_AUTOPILOT_1_ACTIVE -A32NX_AUTOPILOT_2_ACTIVE#(L:A32NX_AUTOPILOT_2_ACTIVE)#Fly By Wire.A320-Dev.Autopilot.A32NX_AUTOPILOT_2_ACTIVE -A32NX_AUTOPILOT_FPA_SELECTED#(L:A32NX_AUTOPILOT_FPA_SELECTED)#Fly By Wire.A320-Dev.Autopilot.A32NX_AUTOPILOT_FPA_SELECTED -A32NX_AUTOPILOT_HEADING_SELECTED#(L:A32NX_AUTOPILOT_HEADING_SELECTED)#Fly By Wire.A320-Dev.Autopilot.A32NX_AUTOPILOT_HEADING_SELECTED -A32NX_AUTOPILOT_SPEED_SELECTED#(L:A32NX_AUTOPILOT_SPEED_SELECTED)#Fly By Wire.A320-Dev.Autopilot.A32NX_AUTOPILOT_SPEED_SELECTED -A32NX_AUTOPILOT_VS_SELECTED#(L:A32NX_AUTOPILOT_VS_SELECTED)#Fly By Wire.A320-Dev.Autopilot.A32NX_AUTOPILOT_VS_SELECTED -A32NX_AUTOTHRUST_STATUS#(L:A32NX_AUTOTHRUST_STATUS)#Fly By Wire.A320-Dev.Autopilot.A32NX_AUTOTHRUST_STATUS -A32NX_FCU_ALT_MANAGED#(L:A32NX_FCU_ALT_MANAGED)#Fly By Wire.A320-Dev.Autopilot.A32NX_FCU_ALT_MANAGED -A32NX_FCU_APPR_MODE_ACTIVE#(L:A32NX_FCU_APPR_MODE_ACTIVE)#Fly By Wire.A320-Dev.Autopilot.A32NX_FCU_APPR_MODE_ACTIVE -A32NX_FCU_HDG_MANAGED_DASHES#(L:A32NX_FCU_HDG_MANAGED_DASHES)#Fly By Wire.A320-Dev.Autopilot.A32NX_FCU_HDG_MANAGED_DASHES -A32NX_FCU_HDG_MANAGED_DOT#(L:A32NX_FCU_HDG_MANAGED_DOT)#Fly By Wire.A320-Dev.Autopilot.A32NX_FCU_HDG_MANAGED_DOT -A32NX_FCU_LOC_MODE_ACTIVE#(L:A32NX_FCU_LOC_MODE_ACTIVE)#Fly By Wire.A320-Dev.Autopilot.A32NX_FCU_LOC_MODE_ACTIVE -A32NX_FCU_SPD_MANAGED_DASHES#(L:A32NX_FCU_SPD_MANAGED_DASHES)#Fly By Wire.A320-Dev.Autopilot.A32NX_FCU_SPD_MANAGED_DASHES -A32NX_FCU_SPD_MANAGED_DOT#(L:A32NX_FCU_SPD_MANAGED_DOT)#Fly By Wire.A320-Dev.Autopilot.A32NX_FCU_SPD_MANAGED_DOT -A32NX_FCU_VS_MANAGED#(L:A32NX_FCU_VS_MANAGED)#Fly By Wire.A320-Dev.Autopilot.A32NX_FCU_VS_MANAGED -A32NX_FMA_EXPEDITE_MODE#(L:A32NX_FMA_EXPEDITE_MODE)#Fly By Wire.A320-Dev.Autopilot.A32NX_FMA_EXPEDITE_MODE -A32NX_TRK_FPA_MODE_ACTIVE#(L:A32NX_TRK_FPA_MODE_ACTIVE)#Fly By Wire.A320-Dev.Autopilot.A32NX_TRK_FPA_MODE_ACTIVE -Approach Mode Active#(L:A32NX_FCU_APPR_MODE_ACTIVE, bool) (L:A32NX_OVHD_INTLT_ANN) 0 == max (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Autopilot.Approach Mode Active -Auto Thrust Active#(L:A32NX_AUTOTHRUST_STATUS, enum) 0 > (L:A32NX_OVHD_INTLT_ANN) 0 == max (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Autopilot.Auto Thrust Active -Autopilot 1 Active#(L:A32NX_AUTOPILOT_1_ACTIVE, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == max (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Autopilot.Autopilot 1 Active -Autopilot 2 Active#(L:A32NX_AUTOPILOT_2_ACTIVE, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == max (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Autopilot.Autopilot 2 Active -Expedite Mode Active#(L:A32NX_FMA_EXPEDITE_MODE, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == max (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Autopilot.Expedite Mode Active -Localizer Mode Active#(L:A32NX_FCU_LOC_MODE_ACTIVE, bool) (L:A32NX_OVHD_INTLT_ANN) 0 == max (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Autopilot.Localizer Mode Active -Fly By Wire/A320-Dev/EFIS#GROUP -A32NX_KOHLSMAN_SETTING#(L:XMLVAR_Baro1_Mode) 2 > if{ 99 } els{ (L:XMLVAR_Baro_Selector_HPA_1,bool) ! if{ (A:KOHLSMAN SETTING HG, inHg) 100 * near } els{ (A:KOHLSMAN SETTING HG, mbar) near } }#Fly By Wire.A320-Dev.EFIS.A32NX_KOHLSMAN_SETTING -ARPT 1 Active#(L:A32NX_EFIS_L_OPTION, enum) 5 == (L:A32NX_OVHD_INTLT_ANN) 0 == or 0 ! and (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and 1 and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.EFIS.ARPT 1 Active -BTN_LS_1#(L:BTN_LS_1_FILTER_ACTIVE) (L:A32NX_OVHD_INTLT_ANN) 0 == or 0 ! and (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and 1 and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.EFIS.BTN_LS_1 -CSTR 1 Active#(L:A32NX_EFIS_L_OPTION, enum) 1 == (L:A32NX_OVHD_INTLT_ANN) 0 == or 0 ! and (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and 1 and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.EFIS.CSTR 1 Active -Flight Director CPT Active#(A:AUTOPILOT FLIGHT DIRECTOR ACTIVE:1, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == max (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * 0 + (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.EFIS.Flight Director CPT Active -NDB 1 Active#(L:A32NX_EFIS_L_OPTION, enum) 4 == (L:A32NX_OVHD_INTLT_ANN) 0 == or 0 ! and (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and 1 and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.EFIS.NDB 1 Active -VOR D 1 Active#(L:A32NX_EFIS_L_OPTION, enum) 2 == (L:A32NX_OVHD_INTLT_ANN) 0 == or 0 ! and (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and 1 and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.EFIS.VOR D 1 Active -WPT 1 Active#(L:A32NX_EFIS_L_OPTION, enum) 3 == (L:A32NX_OVHD_INTLT_ANN) 0 == or 0 ! and (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and 1 and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.EFIS.WPT 1 Active -Fly By Wire/A320-Dev/Electrical#GROUP -A32NX OVHD ELEC APUGEN IS OFF#(L:XMLVAR_Momentary_PUSH_OVHD_ELEC_APUGEN_Pressed,bool)#Fly By Wire.A320-Dev.Electrical.A32NX OVHD ELEC APUGEN IS OFF -A32NX OVHD ELEC GEN 1 IS OFF#(L:XMLVAR_Momentary_PUSH_OVHD_ELEC_GEN1_Pressed,bool)#Fly By Wire.A320-Dev.Electrical.A32NX OVHD ELEC GEN 1 IS OFF -A32NX OVHD ELEC GEN 2 IS OFF#(L:XMLVAR_Momentary_PUSH_OVHD_ELEC_GEN2_Pressed,bool)#Fly By Wire.A320-Dev.Electrical.A32NX OVHD ELEC GEN 2 IS OFF -APU Master Fault#(L:A32NX_OVHD_APU_MASTER_SW_PB_HAS_FAULT, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) (L:A32NX_ELEC_AC_STAT_INV_BUS_IS_POWERED, Bool) or and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Electrical.APU Master Fault -APU Master On#(L:A32NX_OVHD_APU_MASTER_SW_PB_IS_ON, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) (L:A32NX_ELEC_AC_STAT_INV_BUS_IS_POWERED, Bool) or and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Electrical.APU Master On -APU Start Avail#(L:A32NX_OVHD_APU_START_PB_IS_AVAILABLE, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) (L:A32NX_ELEC_AC_STAT_INV_BUS_IS_POWERED, Bool) or and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Electrical.APU Start Avail -APU Start On#(L:A32NX_OVHD_APU_START_PB_IS_ON, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) (L:A32NX_ELEC_AC_STAT_INV_BUS_IS_POWERED, Bool) or and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Electrical.APU Start On -Battery 1 Fault#(L:A32NX_OVHD_ELEC_BAT_1_PB_HAS_FAULT, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == or (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) (L:A32NX_ELEC_AC_STAT_INV_BUS_IS_POWERED, Bool) or and 1 and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * 0 > (A:CIRCUIT GENERAL PANEL ON, Bool) and#Fly By Wire.A320-Dev.Electrical.Battery 1 Fault -Battery 1 Off#(L:A32NX_OVHD_ELEC_BAT_1_PB_IS_AUTO, Bool) ! (L:A32NX_OVHD_INTLT_ANN) 0 == or (L:A32NX_ELEC_DC_BAT_BUS_IS_POWERED, Bool) and 1 and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Electrical.Battery 1 Off -Battery 2 Fault#(L:A32NX_OVHD_ELEC_BAT_2_PB_HAS_FAULT, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == or (L:A32NX_ELEC_DC_BAT_BUS_IS_POWERED, Bool) (L:A32NX_ELEC_AC_STAT_INV_BUS_IS_POWERED, Bool) or and 1 and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Electrical.Battery 2 Fault -Battery 2 Off#(L:A32NX_OVHD_ELEC_BAT_2_PB_IS_AUTO, Bool) ! (L:A32NX_OVHD_INTLT_ANN) 0 == or (L:A32NX_ELEC_DC_BAT_BUS_IS_POWERED, Bool) and 1 and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Electrical.Battery 2 Off -External Power Avail#(A:EXTERNAL POWER AVAILABLE:1, Bool) (A:EXTERNAL POWER ON:1, Bool) ! and (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and 1 and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Electrical.External Power Avail -External Power On#(A:EXTERNAL POWER AVAILABLE:1, Bool) (A:EXTERNAL POWER ON:1, Bool) and (L:A32NX_OVHD_INTLT_ANN) 0 == or (L:A32NX_ELEC_DC_BAT_BUS_IS_POWERED, Bool) and 1 and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Electrical.External Power On -Fly By Wire/A320-Dev/Fuel#GROUP -L TK Pump 1 Fault#(L:A32NX_OVHD_INTLT_ANN) 0 == 1 and (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Fuel.L TK Pump 1 Fault -L TK Pump 1 Off#(A:FUELSYSTEM PUMP SWITCH:2, Enum) 0 == (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Fuel.L TK Pump 1 Off -L TK Pump 2 Fault#(L:A32NX_OVHD_INTLT_ANN) 0 == 1 and (L:A32NX_ELEC_AC_2_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * 0 > (A:CIRCUIT GENERAL PANEL ON, Bool) and#Fly By Wire.A320-Dev.Fuel.L TK Pump 2 Fault -L TK Pump 2 Off#(A:FUELSYSTEM PUMP SWITCH:5, Enum) 0 == (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_2_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Fuel.L TK Pump 2 Off -Pump 1 Fault#(L:A32NX_OVHD_INTLT_ANN) 0 == 1 and (L:A32NX_ELEC_AC_2_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Fuel.Pump 1 Fault -Pump 1 Off#(A:FUELSYSTEM PUMP SWITCH:1, Enum) 0 == (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_2_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Fuel.Pump 1 Off -Pump 2 Fault#(L:A32NX_OVHD_INTLT_ANN) 0 == 1 and (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Fuel.Pump 2 Fault -Pump 2 Off#(A:FUELSYSTEM PUMP SWITCH:4, Enum) 0 == (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_2_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Fuel.Pump 2 Off -R TK Pump 1 Fault#(L:A32NX_OVHD_INTLT_ANN) 0 == 1 and (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Fuel.R TK Pump 1 Fault -R TK Pump 1 Off#(A:FUELSYSTEM PUMP SWITCH:3, Enum) 0 == (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Fuel.R TK Pump 1 Off -R TK Pump 2 Fault#(L:A32NX_OVHD_INTLT_ANN) 0 == 1 and (L:A32NX_ELEC_AC_2_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Fuel.R TK Pump 2 Fault -R TK Pump 2 Off#(A:FUELSYSTEM PUMP SWITCH:6, Enum) 0 == (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_2_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Fuel.R TK Pump 2 Off -Fly By Wire/A320-Dev/Gear#GROUP -Autobrakes Low Decel#(L:A32NX_AUTOBRAKES_DECEL_LIGHT, Bool) (L:A32NX_AUTOBRAKES_ARMED_MODE, Number) 1 == and (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Gear.Autobrakes Low Decel -Autobrakes Low On#(L:A32NX_AUTOBRAKES_ARMED_MODE, Number) 1 == (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Gear.Autobrakes Low On -Autobrakes Max Decel#(L:A32NX_AUTOBRAKES_DECEL_LIGHT, Bool) (L:A32NX_AUTOBRAKES_ARMED_MODE, Number) 3 == and (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * 0 > (A:CIRCUIT GENERAL PANEL ON, Bool) and#Fly By Wire.A320-Dev.Gear.Autobrakes Max Decel -Autobrakes Max On#(L:A32NX_AUTOBRAKES_ARMED_MODE, Number) 3 == (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Gear.Autobrakes Max On -Autobrakes Med Decel#(L:A32NX_AUTOBRAKES_DECEL_LIGHT, Bool) (L:A32NX_AUTOBRAKES_ARMED_MODE, Number) 2 == and (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Gear.Autobrakes Med Decel -Autobrakes Med On#(L:A32NX_AUTOBRAKES_ARMED_MODE, Number) 2 == (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Gear.Autobrakes Med On -Brake Fan Hot#(L:A32NX_BRAKES_HOT, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_2_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Gear.Brake Fan Hot -Brakes Fan On#(L:A32NX_BRAKE_FAN, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_2_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Gear.Brakes Fan On -Fly By Wire/A320-Dev/Lights#GROUP -A32NX_LIGHTS_GLARESHIELD2_PERCENT#(A:LIGHT POTENTIOMETER:84, percent)#Fly By Wire.A320-Dev.Lights.A32NX_LIGHTS_GLARESHIELD2_PERCENT -A32NX_LIGHTS_GLARESHIELD3_PERCENT#(A:LIGHT POTENTIOMETER:87, percent)#Fly By Wire.A320-Dev.Lights.A32NX_LIGHTS_GLARESHIELD3_PERCENT -Main panel and pedestal backlight#(A:LIGHT POTENTIOMETER:85, Percent)#Fly By Wire.A320-Dev.Lights.Main panel and pedestal backlight -Pedestal Light#(A:LIGHT POTENTIOMETER:76, Percent)#Fly By Wire.A320-Dev.Lights.Pedestal Light -Fly By Wire/A320-Dev/Miscellaneous#GROUP -COCKPIT_DOOR_OPEN#(L:A32NX_COCKPIT_DOOR_LOCKED) !#Fly By Wire.A320-Dev.Miscellaneous.COCKPIT_DOOR_OPEN -RCDR (GND CTL)#(L:A32NX_RCDR_GROUND_CONTROL_ON, Bool) (L:A32NX_OVHD_INTLT_ANN) 0 == or 1 and (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Miscellaneous.RCDR (GND CTL) -Fly By Wire/A320-Dev/Navigation#GROUP -ATC Custom 7 Sec Timeout Handler#(L:XPNDR_timeout) 0 != if{ (E:SIMULATION TIME,second) (L:XPNDR_timeout) > if{ 0 s0 (>L:XPNDR_timeout) l0 (>L:XPNDR_temp) l0 (>L:XPNDR_pos) l0 (>L:XPNDR_clr) } }#Fly By Wire.A320-Dev.Navigation.ATC Custom 7 Sec Timeout Handler -ATC Custom Numeric Keypress Handler#(L:XPNDR_act,bool) if{ 0 (>L:XPNDR_act) (E:SIMULATION TIME,second) 7 + (>L:XPNDR_timeout) (L:XPNDR_clr) 2 == if{ 1 (>L:XPNDR_clr) } (L:XPNDR_key) (L:XPNDR_temp,number) 10 * + (>L:XPNDR_temp,number) (L:XPNDR_pos) ++ 4 min s0 (>L:XPNDR_pos) l0 4 == if{ (L:XPNDR_temp,bco16) (>K:XPNDR_SET) 0 (>L:XPNDR_timeout) 0 (>L:XPNDR_temp,number) 0 (>L:XPNDR_pos) 0 (>L:XPNDR_clr) } } (L:XPNDR_temp)#Fly By Wire.A320-Dev.Navigation.ATC Custom Numeric Keypress Handler -ATC Custom XPNDR_clr#(L:XPNDR_clr)#Fly By Wire.A320-Dev.Navigation.ATC Custom XPNDR_clr -ATC Custom XPNDR_pos#(L:XPNDR_pos)#Fly By Wire.A320-Dev.Navigation.ATC Custom XPNDR_pos -Fly By Wire/A320-Dev/Safety#GROUP -A32NX_OVHD_EMEREXIT_LIGHT_OFF#(L:XMLVAR_SWITCH_OVHD_INTLT_EMEREXIT_Position) 2 ==#Fly By Wire.A320-Dev.Safety.A32NX_OVHD_EMEREXIT_LIGHT_OFF -Fly By Wire/A320-Dev/Warning System#GROUP -Master Caution Active#(L:Generic_Master_Caution_Active) (L:A32NX_OVHD_INTLT_ANN) 0 == or (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) (L:A32NX_ELEC_AC_2_BUS_IS_POWERED, Bool) or and (I:SAFETY_Push_Warning_ButtonAnimVar_IsDown) or (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * max 0 > (A:CIRCUIT GENERAL PANEL ON, Bool) and#Fly By Wire.A320-Dev.Warning System.Master Caution Active -Master Warning Active#(L:Generic_Master_Warning_Active) (L:A32NX_OVHD_INTLT_ANN) 0 == or (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) (L:A32NX_ELEC_AC_2_BUS_IS_POWERED, Bool) or and (I:SAFETY_Push_Warning_ButtonAnimVar_IsDown) or (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * max 0 > (A:CIRCUIT GENERAL PANEL ON, Bool) and#Fly By Wire.A320-Dev.Warning System.Master Warning Active -Terr On ND Active#(L:BTN_TERRONND_1_ACTIVE) (L:A32NX_OVHD_INTLT_ANN) 0 == or 0 ! and 1 and (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool) and (L:A32NX_OVHD_INTLT_ANN, number) 2 == if{ 0.1 } els{ 1 } * (A:CIRCUIT GENERAL PANEL ON, Bool) *#Fly By Wire.A320-Dev.Warning System.Terr On ND Active -Fly By Wire/A320-SDK/ADIRS#GROUP -A32NX_ADIRS_ADIRU_1_STATE#(L:A32NX_ADIRS_ADIRU_1_STATE)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADIRU_1_STATE -A32NX_ADIRS_ADIRU_2_STATE#(L:A32NX_ADIRS_ADIRU_2_STATE)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADIRU_2_STATE -A32NX_ADIRS_ADIRU_3_STATE#(L:A32NX_ADIRS_ADIRU_3_STATE)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADIRU_3_STATE -A32NX_ADIRS_ADR_1_ALTITUDE#(L:A32NX_ADIRS_ADR_1_ALTITUDE)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_1_ALTITUDE -A32NX_ADIRS_ADR_1_BAROMETRIC_VERTICAL_SPEED#(L:A32NX_ADIRS_ADR_1_BAROMETRIC_VERTICAL_SPEED)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_1_BAROMETRIC_VERTICAL_SPEED -A32NX_ADIRS_ADR_1_COMPUTED_AIRSPEED#(L:A32NX_ADIRS_ADR_1_COMPUTED_AIRSPEED)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_1_COMPUTED_AIRSPEED -A32NX_ADIRS_ADR_1_INTERNATIONAL_STANDARD_ATMOSPHERE_DELTA#(L:A32NX_ADIRS_ADR_1_INTERNATIONAL_STANDARD_ATMOSPHERE_DELTA)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_1_INTERNATIONAL_STANDARD_ATMOSPHERE_DELTA -A32NX_ADIRS_ADR_1_MACH#(L:A32NX_ADIRS_ADR_1_MACH)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_1_MACH -A32NX_ADIRS_ADR_1_STATIC_AIR_TEMPERATURE#(L:A32NX_ADIRS_ADR_1_STATIC_AIR_TEMPERATURE)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_1_STATIC_AIR_TEMPERATURE -A32NX_ADIRS_ADR_1_TOTAL_AIR_TEMPERATURE#(L:A32NX_ADIRS_ADR_1_TOTAL_AIR_TEMPERATURE)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_1_TOTAL_AIR_TEMPERATURE -A32NX_ADIRS_ADR_1_TRUE_AIRSPEED#(L:A32NX_ADIRS_ADR_1_TRUE_AIRSPEED)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_1_TRUE_AIRSPEED -A32NX_ADIRS_ADR_2_ALTITUDE#(L:A32NX_ADIRS_ADR_2_ALTITUDE)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_2_ALTITUDE -A32NX_ADIRS_ADR_2_BAROMETRIC_VERTICAL_SPEED#(L:A32NX_ADIRS_ADR_2_BAROMETRIC_VERTICAL_SPEED)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_2_BAROMETRIC_VERTICAL_SPEED -A32NX_ADIRS_ADR_2_COMPUTED_AIRSPEED#(L:A32NX_ADIRS_ADR_2_COMPUTED_AIRSPEED)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_2_COMPUTED_AIRSPEED -A32NX_ADIRS_ADR_2_INTERNATIONAL_STANDARD_ATMOSPHERE_DELTA#(L:A32NX_ADIRS_ADR_2_INTERNATIONAL_STANDARD_ATMOSPHERE_DELTA)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_2_INTERNATIONAL_STANDARD_ATMOSPHERE_DELTA -A32NX_ADIRS_ADR_2_MACH#(L:A32NX_ADIRS_ADR_2_MACH)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_2_MACH -A32NX_ADIRS_ADR_2_STATIC_AIR_TEMPERATURE#(L:A32NX_ADIRS_ADR_2_STATIC_AIR_TEMPERATURE)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_2_STATIC_AIR_TEMPERATURE -A32NX_ADIRS_ADR_2_TOTAL_AIR_TEMPERATURE#(L:A32NX_ADIRS_ADR_2_TOTAL_AIR_TEMPERATURE)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_2_TOTAL_AIR_TEMPERATURE -A32NX_ADIRS_ADR_2_TRUE_AIRSPEED#(L:A32NX_ADIRS_ADR_2_TRUE_AIRSPEED)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_2_TRUE_AIRSPEED -A32NX_ADIRS_ADR_3_ALTITUDE#(L:A32NX_ADIRS_ADR_3_ALTITUDE)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_3_ALTITUDE -A32NX_ADIRS_ADR_3_BAROMETRIC_VERTICAL_SPEED#(L:A32NX_ADIRS_ADR_3_BAROMETRIC_VERTICAL_SPEED)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_3_BAROMETRIC_VERTICAL_SPEED -A32NX_ADIRS_ADR_3_COMPUTED_AIRSPEED#(L:A32NX_ADIRS_ADR_3_COMPUTED_AIRSPEED)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_3_COMPUTED_AIRSPEED -A32NX_ADIRS_ADR_3_INTERNATIONAL_STANDARD_ATMOSPHERE_DELTA#(L:A32NX_ADIRS_ADR_3_INTERNATIONAL_STANDARD_ATMOSPHERE_DELTA)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_3_INTERNATIONAL_STANDARD_ATMOSPHERE_DELTA -A32NX_ADIRS_ADR_3_MACH#(L:A32NX_ADIRS_ADR_3_MACH)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_3_MACH -A32NX_ADIRS_ADR_3_STATIC_AIR_TEMPERATURE#(L:A32NX_ADIRS_ADR_3_STATIC_AIR_TEMPERATURE)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_3_STATIC_AIR_TEMPERATURE -A32NX_ADIRS_ADR_3_TOTAL_AIR_TEMPERATURE#(L:A32NX_ADIRS_ADR_3_TOTAL_AIR_TEMPERATURE)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_3_TOTAL_AIR_TEMPERATURE -A32NX_ADIRS_ADR_3_TRUE_AIRSPEED#(L:A32NX_ADIRS_ADR_3_TRUE_AIRSPEED)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_ADR_3_TRUE_AIRSPEED -A32NX_ADIRS_IR_1_GROUND_SPEED#(L:A32NX_ADIRS_IR_1_GROUND_SPEED)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_1_GROUND_SPEED -A32NX_ADIRS_IR_1_HEADING#(L:A32NX_ADIRS_IR_1_HEADING)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_1_HEADING -A32NX_ADIRS_IR_1_LATITUDE#(L:A32NX_ADIRS_IR_1_LATITUDE)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_1_LATITUDE -A32NX_ADIRS_IR_1_LONGITUDE#(L:A32NX_ADIRS_IR_1_LONGITUDE)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_1_LONGITUDE -A32NX_ADIRS_IR_1_PITCH#(L:A32NX_ADIRS_IR_1_PITCH)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_1_PITCH -A32NX_ADIRS_IR_1_ROLL#(L:A32NX_ADIRS_IR_1_ROLL)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_1_ROLL -A32NX_ADIRS_IR_1_TRACK#(L:A32NX_ADIRS_IR_1_TRACK)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_1_TRACK -A32NX_ADIRS_IR_1_VERTICAL_SPEED#(L:A32NX_ADIRS_IR_1_VERTICAL_SPEED)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_1_VERTICAL_SPEED -A32NX_ADIRS_IR_1_WIND_DIRECTION#(L:A32NX_ADIRS_IR_1_WIND_DIRECTION)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_1_WIND_DIRECTION -A32NX_ADIRS_IR_1_WIND_VELOCITY#(L:A32NX_ADIRS_IR_1_WIND_VELOCITY)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_1_WIND_VELOCITY -A32NX_ADIRS_IR_2_GROUND_SPEED#(L:A32NX_ADIRS_IR_2_GROUND_SPEED)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_2_GROUND_SPEED -A32NX_ADIRS_IR_2_HEADING#(L:A32NX_ADIRS_IR_2_HEADING)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_2_HEADING -A32NX_ADIRS_IR_2_LATITUDE#(L:A32NX_ADIRS_IR_2_LATITUDE)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_2_LATITUDE -A32NX_ADIRS_IR_2_LONGITUDE#(L:A32NX_ADIRS_IR_2_LONGITUDE)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_2_LONGITUDE -A32NX_ADIRS_IR_2_PITCH#(L:A32NX_ADIRS_IR_2_PITCH)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_2_PITCH -A32NX_ADIRS_IR_2_ROLL#(L:A32NX_ADIRS_IR_2_ROLL)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_2_ROLL -A32NX_ADIRS_IR_2_TRACK#(L:A32NX_ADIRS_IR_2_TRACK)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_2_TRACK -A32NX_ADIRS_IR_2_VERTICAL_SPEED#(L:A32NX_ADIRS_IR_2_VERTICAL_SPEED)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_2_VERTICAL_SPEED -A32NX_ADIRS_IR_2_WIND_DIRECTION#(L:A32NX_ADIRS_IR_2_WIND_DIRECTION)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_2_WIND_DIRECTION -A32NX_ADIRS_IR_2_WIND_VELOCITY#(L:A32NX_ADIRS_IR_2_WIND_VELOCITY)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_2_WIND_VELOCITY -A32NX_ADIRS_IR_3_GROUND_SPEED#(L:A32NX_ADIRS_IR_3_GROUND_SPEED)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_3_GROUND_SPEED -A32NX_ADIRS_IR_3_HEADING#(L:A32NX_ADIRS_IR_3_HEADING)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_3_HEADING -A32NX_ADIRS_IR_3_LATITUDE#(L:A32NX_ADIRS_IR_3_LATITUDE)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_3_LATITUDE -A32NX_ADIRS_IR_3_LONGITUDE#(L:A32NX_ADIRS_IR_3_LONGITUDE)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_3_LONGITUDE -A32NX_ADIRS_IR_3_PITCH#(L:A32NX_ADIRS_IR_3_PITCH)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_3_PITCH -A32NX_ADIRS_IR_3_ROLL#(L:A32NX_ADIRS_IR_3_ROLL)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_3_ROLL -A32NX_ADIRS_IR_3_TRACK#(L:A32NX_ADIRS_IR_3_TRACK)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_3_TRACK -A32NX_ADIRS_IR_3_VERTICAL_SPEED#(L:A32NX_ADIRS_IR_3_VERTICAL_SPEED)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_3_VERTICAL_SPEED -A32NX_ADIRS_IR_3_WIND_DIRECTION#(L:A32NX_ADIRS_IR_3_WIND_DIRECTION)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_3_WIND_DIRECTION -A32NX_ADIRS_IR_3_WIND_VELOCITY#(L:A32NX_ADIRS_IR_3_WIND_VELOCITY)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_IR_3_WIND_VELOCITY -A32NX_ADIRS_REMAINING_IR_ALIGNMENT_TIME#(L:A32NX_ADIRS_REMAINING_IR_ALIGNMENT_TIME)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_REMAINING_IR_ALIGNMENT_TIME -A32NX_ADIRS_USES_GPS_AS_PRIMARY#(L:A32NX_ADIRS_USES_GPS_AS_PRIMARY)#Fly By Wire.A320-SDK.ADIRS.A32NX_ADIRS_USES_GPS_AS_PRIMARY -A32NX_AIR_DATA_SWITCHING_KNOB#(L:A32NX_AIR_DATA_SWITCHING_KNOB)#Fly By Wire.A320-SDK.ADIRS.A32NX_AIR_DATA_SWITCHING_KNOB -A32NX_ATT_HDG_SWITCHING_KNOB#(L:A32NX_ATT_HDG_SWITCHING_KNOB)#Fly By Wire.A320-SDK.ADIRS.A32NX_ATT_HDG_SWITCHING_KNOB -A32NX_CONFIG_ADIRS_IR_ALIGN_TIME#(L:A32NX_CONFIG_ADIRS_IR_ALIGN_TIME)#Fly By Wire.A320-SDK.ADIRS.A32NX_CONFIG_ADIRS_IR_ALIGN_TIME -A32NX_OVHD_ADIRS_ADR_1_PB_HAS_FAULT#(L:A32NX_OVHD_ADIRS_ADR_1_PB_HAS_FAULT)#Fly By Wire.A320-SDK.ADIRS.A32NX_OVHD_ADIRS_ADR_1_PB_HAS_FAULT -A32NX_OVHD_ADIRS_ADR_1_PB_IS_ON#(L:A32NX_OVHD_ADIRS_ADR_1_PB_IS_ON)#Fly By Wire.A320-SDK.ADIRS.A32NX_OVHD_ADIRS_ADR_1_PB_IS_ON -A32NX_OVHD_ADIRS_ADR_2_PB_HAS_FAULT#(L:A32NX_OVHD_ADIRS_ADR_2_PB_HAS_FAULT)#Fly By Wire.A320-SDK.ADIRS.A32NX_OVHD_ADIRS_ADR_2_PB_HAS_FAULT -A32NX_OVHD_ADIRS_ADR_2_PB_IS_ON#(L:A32NX_OVHD_ADIRS_ADR_2_PB_IS_ON)#Fly By Wire.A320-SDK.ADIRS.A32NX_OVHD_ADIRS_ADR_2_PB_IS_ON -A32NX_OVHD_ADIRS_ADR_3_PB_HAS_FAULT#(L:A32NX_OVHD_ADIRS_ADR_3_PB_HAS_FAULT)#Fly By Wire.A320-SDK.ADIRS.A32NX_OVHD_ADIRS_ADR_3_PB_HAS_FAULT -A32NX_OVHD_ADIRS_ADR_3_PB_IS_ON#(L:A32NX_OVHD_ADIRS_ADR_3_PB_IS_ON)#Fly By Wire.A320-SDK.ADIRS.A32NX_OVHD_ADIRS_ADR_3_PB_IS_ON -A32NX_OVHD_ADIRS_IR_1_MODE_SELECTOR_KNOB#(L:A32NX_OVHD_ADIRS_IR_1_MODE_SELECTOR_KNOB)#Fly By Wire.A320-SDK.ADIRS.A32NX_OVHD_ADIRS_IR_1_MODE_SELECTOR_KNOB -A32NX_OVHD_ADIRS_IR_1_PB_HAS_FAULT#(L:A32NX_OVHD_ADIRS_IR_1_PB_HAS_FAULT)#Fly By Wire.A320-SDK.ADIRS.A32NX_OVHD_ADIRS_IR_1_PB_HAS_FAULT -A32NX_OVHD_ADIRS_IR_1_PB_IS_ON#(L:A32NX_OVHD_ADIRS_IR_1_PB_IS_ON)#Fly By Wire.A320-SDK.ADIRS.A32NX_OVHD_ADIRS_IR_1_PB_IS_ON -A32NX_OVHD_ADIRS_IR_2_MODE_SELECTOR_KNOB#(L:A32NX_OVHD_ADIRS_IR_2_MODE_SELECTOR_KNOB)#Fly By Wire.A320-SDK.ADIRS.A32NX_OVHD_ADIRS_IR_2_MODE_SELECTOR_KNOB -A32NX_OVHD_ADIRS_IR_2_PB_HAS_FAULT#(L:A32NX_OVHD_ADIRS_IR_2_PB_HAS_FAULT)#Fly By Wire.A320-SDK.ADIRS.A32NX_OVHD_ADIRS_IR_2_PB_HAS_FAULT -A32NX_OVHD_ADIRS_IR_2_PB_IS_ON#(L:A32NX_OVHD_ADIRS_IR_2_PB_IS_ON)#Fly By Wire.A320-SDK.ADIRS.A32NX_OVHD_ADIRS_IR_2_PB_IS_ON -A32NX_OVHD_ADIRS_IR_3_MODE_SELECTOR_KNOB#(L:A32NX_OVHD_ADIRS_IR_3_MODE_SELECTOR_KNOB)#Fly By Wire.A320-SDK.ADIRS.A32NX_OVHD_ADIRS_IR_3_MODE_SELECTOR_KNOB -A32NX_OVHD_ADIRS_IR_3_PB_HAS_FAULT#(L:A32NX_OVHD_ADIRS_IR_3_PB_HAS_FAULT)#Fly By Wire.A320-SDK.ADIRS.A32NX_OVHD_ADIRS_IR_3_PB_HAS_FAULT -A32NX_OVHD_ADIRS_IR_3_PB_IS_ON#(L:A32NX_OVHD_ADIRS_IR_3_PB_IS_ON)#Fly By Wire.A320-SDK.ADIRS.A32NX_OVHD_ADIRS_IR_3_PB_IS_ON -A32NX_OVHD_ADIRS_ON_BAT_IS_ILLUMINATED#(L:A32NX_OVHD_ADIRS_ON_BAT_IS_ILLUMINATED)#Fly By Wire.A320-SDK.ADIRS.A32NX_OVHD_ADIRS_ON_BAT_IS_ILLUMINATED -Fly By Wire/A320-SDK/Air Conditioning / Pressurisation / Ventilation#GROUP -A32NX_OVHD_PRESS_DITCHING_PB_IS_ON#(L:A32NX_OVHD_PRESS_DITCHING_PB_IS_ON)#Fly By Wire.A320-SDK.Air Conditioning / Pressurisation / Ventilation.A32NX_OVHD_PRESS_DITCHING_PB_IS_ON -A32NX_OVHD_PRESS_LDG_ELEV_KNOB#(L:A32NX_OVHD_PRESS_LDG_ELEV_KNOB)#Fly By Wire.A320-SDK.Air Conditioning / Pressurisation / Ventilation.A32NX_OVHD_PRESS_LDG_ELEV_KNOB -A32NX_OVHD_PRESS_MAN_VS_CTL_SWITCH#(L:A32NX_OVHD_PRESS_MAN_VS_CTL_SWITCH)#Fly By Wire.A320-SDK.Air Conditioning / Pressurisation / Ventilation.A32NX_OVHD_PRESS_MAN_VS_CTL_SWITCH -A32NX_OVHD_PRESS_MODE_SEL_PB_HAS_FAULT#(L:A32NX_OVHD_PRESS_MODE_SEL_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Air Conditioning / Pressurisation / Ventilation.A32NX_OVHD_PRESS_MODE_SEL_PB_HAS_FAULT -A32NX_OVHD_PRESS_MODE_SEL_PB_IS_AUTO#(L:A32NX_OVHD_PRESS_MODE_SEL_PB_IS_AUTO)#Fly By Wire.A320-SDK.Air Conditioning / Pressurisation / Ventilation.A32NX_OVHD_PRESS_MODE_SEL_PB_IS_AUTO -A32NX_PACKS_1_IS_SUPPLYING#(L:A32NX_PACKS_1_IS_SUPPLYING)#Fly By Wire.A320-SDK.Air Conditioning / Pressurisation / Ventilation.A32NX_PACKS_1_IS_SUPPLYING -A32NX_PACKS_2_IS_SUPPLYING#(L:A32NX_PACKS_2_IS_SUPPLYING)#Fly By Wire.A320-SDK.Air Conditioning / Pressurisation / Ventilation.A32NX_PACKS_2_IS_SUPPLYING -A32NX_PRESS_ACTIVE_CPC_SYS#(L:A32NX_PRESS_ACTIVE_CPC_SYS)#Fly By Wire.A320-SDK.Air Conditioning / Pressurisation / Ventilation.A32NX_PRESS_ACTIVE_CPC_SYS -A32NX_PRESS_AUTO_LANDING_ELEVATION#(L:A32NX_PRESS_AUTO_LANDING_ELEVATION)#Fly By Wire.A320-SDK.Air Conditioning / Pressurisation / Ventilation.A32NX_PRESS_AUTO_LANDING_ELEVATION -A32NX_PRESS_CABIN_ALTITUDE#(L:A32NX_PRESS_CABIN_ALTITUDE)#Fly By Wire.A320-SDK.Air Conditioning / Pressurisation / Ventilation.A32NX_PRESS_CABIN_ALTITUDE -A32NX_PRESS_CABIN_DELTA_PRESSURE#(L:A32NX_PRESS_CABIN_DELTA_PRESSURE)#Fly By Wire.A320-SDK.Air Conditioning / Pressurisation / Ventilation.A32NX_PRESS_CABIN_DELTA_PRESSURE -A32NX_PRESS_CABIN_VS#(L:A32NX_PRESS_CABIN_VS)#Fly By Wire.A320-SDK.Air Conditioning / Pressurisation / Ventilation.A32NX_PRESS_CABIN_VS -A32NX_PRESS_EXCESS_CAB_ALT#(L:A32NX_PRESS_EXCESS_CAB_ALT)#Fly By Wire.A320-SDK.Air Conditioning / Pressurisation / Ventilation.A32NX_PRESS_EXCESS_CAB_ALT -A32NX_PRESS_EXCESS_RESIDUAL_PR#(L:A32NX_PRESS_EXCESS_RESIDUAL_PR)#Fly By Wire.A320-SDK.Air Conditioning / Pressurisation / Ventilation.A32NX_PRESS_EXCESS_RESIDUAL_PR -A32NX_PRESS_LOW_DIFF_PR#(L:A32NX_PRESS_LOW_DIFF_PR)#Fly By Wire.A320-SDK.Air Conditioning / Pressurisation / Ventilation.A32NX_PRESS_LOW_DIFF_PR -A32NX_PRESS_OUTFLOW_VALVE_OPEN_PERCENTAGE#(L:A32NX_PRESS_OUTFLOW_VALVE_OPEN_PERCENTAGE)#Fly By Wire.A320-SDK.Air Conditioning / Pressurisation / Ventilation.A32NX_PRESS_OUTFLOW_VALVE_OPEN_PERCENTAGE -A32NX_PRESS_SAFETY_VALVE_OPEN_PERCENTAGE#(L:A32NX_PRESS_SAFETY_VALVE_OPEN_PERCENTAGE)#Fly By Wire.A320-SDK.Air Conditioning / Pressurisation / Ventilation.A32NX_PRESS_SAFETY_VALVE_OPEN_PERCENTAGE -Fly By Wire/A320-SDK/Autopilot System#GROUP -A320_Neo_FCU_HDG_SET_DATA#(L:A320_Neo_FCU_HDG_SET_DATA)#Fly By Wire.A320-SDK.Autopilot System.A320_Neo_FCU_HDG_SET_DATA -A320_Neo_FCU_SPEED_SET_DATA#(L:A320_Neo_FCU_SPEED_SET_DATA)#Fly By Wire.A320-SDK.Autopilot System.A320_Neo_FCU_SPEED_SET_DATA -A320_Neo_FCU_VS_SET_DATA#(L:A320_Neo_FCU_VS_SET_DATA)#Fly By Wire.A320-SDK.Autopilot System.A320_Neo_FCU_VS_SET_DATA -A32NX_AUTOPILOT_1_ACTIVE#(L:A32NX_AUTOPILOT_1_ACTIVE)#Fly By Wire.A320-SDK.Autopilot System.A32NX_AUTOPILOT_1_ACTIVE -A32NX_AUTOPILOT_2_ACTIVE#(L:A32NX_AUTOPILOT_2_ACTIVE)#Fly By Wire.A320-SDK.Autopilot System.A32NX_AUTOPILOT_2_ACTIVE -A32NX_AUTOPILOT_ACTIVE#(L:A32NX_AUTOPILOT_ACTIVE)#Fly By Wire.A320-SDK.Autopilot System.A32NX_AUTOPILOT_ACTIVE -A32NX_AUTOPILOT_AUTOLAND_WARNING#(L:A32NX_AUTOPILOT_AUTOLAND_WARNING)#Fly By Wire.A320-SDK.Autopilot System.A32NX_AUTOPILOT_AUTOLAND_WARNING -A32NX_AUTOPILOT_AUTOTHRUST_MODE#(L:A32NX_AUTOPILOT_AUTOTHRUST_MODE)#Fly By Wire.A320-SDK.Autopilot System.A32NX_AUTOPILOT_AUTOTHRUST_MODE -A32NX_AUTOPILOT_FPA_SELECTED#(L:A32NX_AUTOPILOT_FPA_SELECTED)#Fly By Wire.A320-SDK.Autopilot System.A32NX_AUTOPILOT_FPA_SELECTED -A32NX_AUTOPILOT_HEADING_SELECTED#(L:A32NX_AUTOPILOT_HEADING_SELECTED)#Fly By Wire.A320-SDK.Autopilot System.A32NX_AUTOPILOT_HEADING_SELECTED -A32NX_AUTOPILOT_SPEED_SELECTED#(L:A32NX_AUTOPILOT_SPEED_SELECTED)#Fly By Wire.A320-SDK.Autopilot System.A32NX_AUTOPILOT_SPEED_SELECTED -A32NX_AUTOPILOT_VS_SELECTED#(L:A32NX_AUTOPILOT_VS_SELECTED)#Fly By Wire.A320-SDK.Autopilot System.A32NX_AUTOPILOT_VS_SELECTED -A32NX_ApproachCapability#(L:A32NX_ApproachCapability)#Fly By Wire.A320-SDK.Autopilot System.A32NX_ApproachCapability -A32NX_FCU_ALT_MANAGED#(L:A32NX_FCU_ALT_MANAGED)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FCU_ALT_MANAGED -A32NX_FCU_APPR_MODE_ACTIVE#(L:A32NX_FCU_APPR_MODE_ACTIVE)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FCU_APPR_MODE_ACTIVE -A32NX_FCU_HDG_MANAGED_DASHES#(L:A32NX_FCU_HDG_MANAGED_DASHES)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FCU_HDG_MANAGED_DASHES -A32NX_FCU_HDG_MANAGED_DOT#(L:A32NX_FCU_HDG_MANAGED_DOT)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FCU_HDG_MANAGED_DOT -A32NX_FCU_LOC_MODE_ACTIVE#(L:A32NX_FCU_LOC_MODE_ACTIVE)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FCU_LOC_MODE_ACTIVE -A32NX_FCU_MODE_REVERSION_ACTIVE#(L:A32NX_FCU_MODE_REVERSION_ACTIVE)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FCU_MODE_REVERSION_ACTIVE -A32NX_FCU_MODE_REVERSION_TRK_FPA_ACTIVE#(L:A32NX_FCU_MODE_REVERSION_TRK_FPA_ACTIVE)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FCU_MODE_REVERSION_TRK_FPA_ACTIVE -A32NX_FCU_SPD_MANAGED_DASHES#(L:A32NX_FCU_SPD_MANAGED_DASHES)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FCU_SPD_MANAGED_DASHES -A32NX_FCU_SPD_MANAGED_DOT#(L:A32NX_FCU_SPD_MANAGED_DOT)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FCU_SPD_MANAGED_DOT -A32NX_FCU_VS_MANAGED#(L:A32NX_FCU_VS_MANAGED)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FCU_VS_MANAGED -A32NX_FG_ALTITUDE_CONSTRAINT#(L:A32NX_FG_ALTITUDE_CONSTRAINT)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FG_ALTITUDE_CONSTRAINT -A32NX_FG_CROSS_TRACK_ERROR#(L:A32NX_FG_CROSS_TRACK_ERROR)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FG_CROSS_TRACK_ERROR -A32NX_FG_FINAL_CAN_ENGAGE#(L:A32NX_FG_FINAL_CAN_ENGAGE)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FG_FINAL_CAN_ENGAGE -A32NX_FG_PHI_COMMAND#(L:A32NX_FG_PHI_COMMAND)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FG_PHI_COMMAND -A32NX_FG_REQUESTED_VERTICAL_MODE#(L:A32NX_FG_REQUESTED_VERTICAL_MODE)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FG_REQUESTED_VERTICAL_MODE -A32NX_FG_RNAV_APP_SELECTED#(L:A32NX_FG_RNAV_APP_SELECTED)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FG_RNAV_APP_SELECTED -A32NX_FG_TARGET_ALTITUDE#(L:A32NX_FG_TARGET_ALTITUDE)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FG_TARGET_ALTITUDE -A32NX_FG_TARGET_VERTICAL_SPEED#(L:A32NX_FG_TARGET_VERTICAL_SPEED)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FG_TARGET_VERTICAL_SPEED -A32NX_FG_TRACK_ANGLE_ERROR#(L:A32NX_FG_TRACK_ANGLE_ERROR)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FG_TRACK_ANGLE_ERROR -A32NX_FLIGHT_DIRECTOR_BANK#(L:A32NX_FLIGHT_DIRECTOR_BANK)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FLIGHT_DIRECTOR_BANK -A32NX_FLIGHT_DIRECTOR_PITCH#(L:A32NX_FLIGHT_DIRECTOR_PITCH)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FLIGHT_DIRECTOR_PITCH -A32NX_FLIGHT_DIRECTOR_YAW#(L:A32NX_FLIGHT_DIRECTOR_YAW)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FLIGHT_DIRECTOR_YAW -A32NX_FMA_CRUISE_ALT_MODE#(L:A32NX_FMA_CRUISE_ALT_MODE)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FMA_CRUISE_ALT_MODE -A32NX_FMA_EXPEDITE_MODE#(L:A32NX_FMA_EXPEDITE_MODE)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FMA_EXPEDITE_MODE -A32NX_FMA_LATERAL_ARMED#(L:A32NX_FMA_LATERAL_ARMED)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FMA_LATERAL_ARMED -A32NX_FMA_LATERAL_MODE#(L:A32NX_FMA_LATERAL_MODE)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FMA_LATERAL_MODE -A32NX_FMA_SOFT_ALT_MODE#(L:A32NX_FMA_SOFT_ALT_MODE)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FMA_SOFT_ALT_MODE -A32NX_FMA_SPEED_PROTECTION_MODE#(L:A32NX_FMA_SPEED_PROTECTION_MODE)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FMA_SPEED_PROTECTION_MODE -A32NX_FMA_VERTICAL_ARMED#(L:A32NX_FMA_VERTICAL_ARMED)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FMA_VERTICAL_ARMED -A32NX_FMA_VERTICAL_MODE#(L:A32NX_FMA_VERTICAL_MODE)#Fly By Wire.A320-SDK.Autopilot System.A32NX_FMA_VERTICAL_MODE -Fly By Wire/A320-SDK/Autothrust System#GROUP -A32NX_3D_THROTTLE_LEVER_POSITION_1#(L:A32NX_3D_THROTTLE_LEVER_POSITION_1)#Fly By Wire.A320-SDK.Autothrust System.A32NX_3D_THROTTLE_LEVER_POSITION_1 -A32NX_3D_THROTTLE_LEVER_POSITION_2#(L:A32NX_3D_THROTTLE_LEVER_POSITION_2)#Fly By Wire.A320-SDK.Autothrust System.A32NX_3D_THROTTLE_LEVER_POSITION_2 -A32NX_AUTOTHRUST_DISABLED#(L:A32NX_AUTOTHRUST_DISABLED)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_DISABLED -A32NX_AUTOTHRUST_DISCONNECT#(L:A32NX_AUTOTHRUST_DISCONNECT)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_DISCONNECT -A32NX_AUTOTHRUST_MODE#(L:A32NX_AUTOTHRUST_MODE)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_MODE -A32NX_AUTOTHRUST_MODE_MESSAGE#(L:A32NX_AUTOTHRUST_MODE_MESSAGE)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_MODE_MESSAGE -A32NX_AUTOTHRUST_N1_COMMANDED:1#(L:A32NX_AUTOTHRUST_N1_COMMANDED:1)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_N1_COMMANDED:1 -A32NX_AUTOTHRUST_N1_COMMANDED:2#(L:A32NX_AUTOTHRUST_N1_COMMANDED:2)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_N1_COMMANDED:2 -A32NX_AUTOTHRUST_REVERSE:1#(L:A32NX_AUTOTHRUST_REVERSE:1)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_REVERSE:1 -A32NX_AUTOTHRUST_REVERSE:2#(L:A32NX_AUTOTHRUST_REVERSE:2)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_REVERSE:2 -A32NX_AUTOTHRUST_STATUS#(L:A32NX_AUTOTHRUST_STATUS)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_STATUS -A32NX_AUTOTHRUST_THRUST_LEVER_WARNING_FLEX#(L:A32NX_AUTOTHRUST_THRUST_LEVER_WARNING_FLEX)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_THRUST_LEVER_WARNING_FLEX -A32NX_AUTOTHRUST_THRUST_LEVER_WARNING_TOGA#(L:A32NX_AUTOTHRUST_THRUST_LEVER_WARNING_TOGA)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_THRUST_LEVER_WARNING_TOGA -A32NX_AUTOTHRUST_THRUST_LIMIT#(L:A32NX_AUTOTHRUST_THRUST_LIMIT)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_THRUST_LIMIT -A32NX_AUTOTHRUST_THRUST_LIMIT_CLB#(L:A32NX_AUTOTHRUST_THRUST_LIMIT_CLB)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_THRUST_LIMIT_CLB -A32NX_AUTOTHRUST_THRUST_LIMIT_FLX#(L:A32NX_AUTOTHRUST_THRUST_LIMIT_FLX)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_THRUST_LIMIT_FLX -A32NX_AUTOTHRUST_THRUST_LIMIT_IDLE#(L:A32NX_AUTOTHRUST_THRUST_LIMIT_IDLE)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_THRUST_LIMIT_IDLE -A32NX_AUTOTHRUST_THRUST_LIMIT_MCT#(L:A32NX_AUTOTHRUST_THRUST_LIMIT_MCT)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_THRUST_LIMIT_MCT -A32NX_AUTOTHRUST_THRUST_LIMIT_TOGA#(L:A32NX_AUTOTHRUST_THRUST_LIMIT_TOGA)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_THRUST_LIMIT_TOGA -A32NX_AUTOTHRUST_THRUST_LIMIT_TYPE#(L:A32NX_AUTOTHRUST_THRUST_LIMIT_TYPE)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_THRUST_LIMIT_TYPE -A32NX_AUTOTHRUST_TLA_N1:1#(L:A32NX_AUTOTHRUST_TLA_N1:1)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_TLA_N1:1 -A32NX_AUTOTHRUST_TLA_N1:2#(L:A32NX_AUTOTHRUST_TLA_N1:2)#Fly By Wire.A320-SDK.Autothrust System.A32NX_AUTOTHRUST_TLA_N1:2 -Fly By Wire/A320-SDK/EIS Display System#GROUP -A32NX_EFIS_L_NAVAID_MODE#(L:A32NX_EFIS_L_NAVAID_MODE)#Fly By Wire.A320-SDK.EIS Display System.A32NX_EFIS_L_NAVAID_MODE -A32NX_EFIS_L_ND_FM_MESSAGE_FLAGS#(L:A32NX_EFIS_L_ND_FM_MESSAGE_FLAGS)#Fly By Wire.A320-SDK.EIS Display System.A32NX_EFIS_L_ND_FM_MESSAGE_FLAGS -A32NX_EFIS_L_ND_MODE#(L:A32NX_EFIS_L_ND_MODE)#Fly By Wire.A320-SDK.EIS Display System.A32NX_EFIS_L_ND_MODE -A32NX_EFIS_L_ND_RANGE#(L:A32NX_EFIS_L_ND_RANGE)#Fly By Wire.A320-SDK.EIS Display System.A32NX_EFIS_L_ND_RANGE -A32NX_EFIS_L_OPTION#(L:A32NX_EFIS_L_OPTION)#Fly By Wire.A320-SDK.EIS Display System.A32NX_EFIS_L_OPTION -A32NX_EFIS_R_NAVAID_MODE#(L:A32NX_EFIS_R_NAVAID_MODE)#Fly By Wire.A320-SDK.EIS Display System.A32NX_EFIS_R_NAVAID_MODE -A32NX_EFIS_R_ND_FM_MESSAGE_FLAGS#(L:A32NX_EFIS_R_ND_FM_MESSAGE_FLAGS)#Fly By Wire.A320-SDK.EIS Display System.A32NX_EFIS_R_ND_FM_MESSAGE_FLAGS -A32NX_EFIS_R_ND_MODE#(L:A32NX_EFIS_R_ND_MODE)#Fly By Wire.A320-SDK.EIS Display System.A32NX_EFIS_R_ND_MODE -A32NX_EFIS_R_ND_RANGE#(L:A32NX_EFIS_R_ND_RANGE)#Fly By Wire.A320-SDK.EIS Display System.A32NX_EFIS_R_ND_RANGE -A32NX_EFIS_R_OPTION#(L:A32NX_EFIS_R_OPTION)#Fly By Wire.A320-SDK.EIS Display System.A32NX_EFIS_R_OPTION -A32NX_ISIS_BUGS_ACTIVE#(L:A32NX_ISIS_BUGS_ACTIVE)#Fly By Wire.A320-SDK.EIS Display System.A32NX_ISIS_BUGS_ACTIVE -A32NX_ISIS_BUGS_ALT_ACTIVE:0#(L:A32NX_ISIS_BUGS_ALT_ACTIVE:0)#Fly By Wire.A320-SDK.EIS Display System.A32NX_ISIS_BUGS_ALT_ACTIVE:0 -A32NX_ISIS_BUGS_ALT_ACTIVE:1#(L:A32NX_ISIS_BUGS_ALT_ACTIVE:1)#Fly By Wire.A320-SDK.EIS Display System.A32NX_ISIS_BUGS_ALT_ACTIVE:1 -A32NX_ISIS_BUGS_ALT_VALUE:0#(L:A32NX_ISIS_BUGS_ALT_VALUE:0)#Fly By Wire.A320-SDK.EIS Display System.A32NX_ISIS_BUGS_ALT_VALUE:0 -A32NX_ISIS_BUGS_ALT_VALUE:1#(L:A32NX_ISIS_BUGS_ALT_VALUE:1)#Fly By Wire.A320-SDK.EIS Display System.A32NX_ISIS_BUGS_ALT_VALUE:1 -A32NX_ISIS_BUGS_SPD_ACTIVE:0#(L:A32NX_ISIS_BUGS_SPD_ACTIVE:0)#Fly By Wire.A320-SDK.EIS Display System.A32NX_ISIS_BUGS_SPD_ACTIVE:0 -A32NX_ISIS_BUGS_SPD_ACTIVE:1#(L:A32NX_ISIS_BUGS_SPD_ACTIVE:1)#Fly By Wire.A320-SDK.EIS Display System.A32NX_ISIS_BUGS_SPD_ACTIVE:1 -A32NX_ISIS_BUGS_SPD_ACTIVE:2#(L:A32NX_ISIS_BUGS_SPD_ACTIVE:2)#Fly By Wire.A320-SDK.EIS Display System.A32NX_ISIS_BUGS_SPD_ACTIVE:2 -A32NX_ISIS_BUGS_SPD_ACTIVE:3#(L:A32NX_ISIS_BUGS_SPD_ACTIVE:3)#Fly By Wire.A320-SDK.EIS Display System.A32NX_ISIS_BUGS_SPD_ACTIVE:3 -A32NX_ISIS_BUGS_SPD_VALUE:0#(L:A32NX_ISIS_BUGS_SPD_VALUE:0)#Fly By Wire.A320-SDK.EIS Display System.A32NX_ISIS_BUGS_SPD_VALUE:0 -A32NX_ISIS_BUGS_SPD_VALUE:1#(L:A32NX_ISIS_BUGS_SPD_VALUE:1)#Fly By Wire.A320-SDK.EIS Display System.A32NX_ISIS_BUGS_SPD_VALUE:1 -A32NX_ISIS_BUGS_SPD_VALUE:2#(L:A32NX_ISIS_BUGS_SPD_VALUE:2)#Fly By Wire.A320-SDK.EIS Display System.A32NX_ISIS_BUGS_SPD_VALUE:2 -A32NX_ISIS_BUGS_SPD_VALUE:3#(L:A32NX_ISIS_BUGS_SPD_VALUE:3)#Fly By Wire.A320-SDK.EIS Display System.A32NX_ISIS_BUGS_SPD_VALUE:3 -A32NX_ISIS_LS_ACTIVE#(L:A32NX_ISIS_LS_ACTIVE)#Fly By Wire.A320-SDK.EIS Display System.A32NX_ISIS_LS_ACTIVE -A32NX_MCDU_L_ANNUNC_FAIL#(L:A32NX_MCDU_L_ANNUNC_FAIL)#Fly By Wire.A320-SDK.EIS Display System.A32NX_MCDU_L_ANNUNC_FAIL -A32NX_MCDU_L_ANNUNC_FM1#(L:A32NX_MCDU_L_ANNUNC_FM1)#Fly By Wire.A320-SDK.EIS Display System.A32NX_MCDU_L_ANNUNC_FM1 -A32NX_MCDU_L_ANNUNC_FM2#(L:A32NX_MCDU_L_ANNUNC_FM2)#Fly By Wire.A320-SDK.EIS Display System.A32NX_MCDU_L_ANNUNC_FM2 -A32NX_MCDU_L_ANNUNC_FMGC#(L:A32NX_MCDU_L_ANNUNC_FMGC)#Fly By Wire.A320-SDK.EIS Display System.A32NX_MCDU_L_ANNUNC_FMGC -A32NX_MCDU_L_ANNUNC_IND#(L:A32NX_MCDU_L_ANNUNC_IND)#Fly By Wire.A320-SDK.EIS Display System.A32NX_MCDU_L_ANNUNC_IND -A32NX_MCDU_L_ANNUNC_MCDU_MENU#(L:A32NX_MCDU_L_ANNUNC_MCDU_MENU)#Fly By Wire.A320-SDK.EIS Display System.A32NX_MCDU_L_ANNUNC_MCDU_MENU -A32NX_MCDU_L_ANNUNC_RDY#(L:A32NX_MCDU_L_ANNUNC_RDY)#Fly By Wire.A320-SDK.EIS Display System.A32NX_MCDU_L_ANNUNC_RDY -A32NX_MCDU_R_ANNUNC_FAIL#(L:A32NX_MCDU_R_ANNUNC_FAIL)#Fly By Wire.A320-SDK.EIS Display System.A32NX_MCDU_R_ANNUNC_FAIL -A32NX_MCDU_R_ANNUNC_FM1#(L:A32NX_MCDU_R_ANNUNC_FM1)#Fly By Wire.A320-SDK.EIS Display System.A32NX_MCDU_R_ANNUNC_FM1 -A32NX_MCDU_R_ANNUNC_FM2#(L:A32NX_MCDU_R_ANNUNC_FM2)#Fly By Wire.A320-SDK.EIS Display System.A32NX_MCDU_R_ANNUNC_FM2 -A32NX_MCDU_R_ANNUNC_FMGC#(L:A32NX_MCDU_R_ANNUNC_FMGC)#Fly By Wire.A320-SDK.EIS Display System.A32NX_MCDU_R_ANNUNC_FMGC -A32NX_MCDU_R_ANNUNC_IND#(L:A32NX_MCDU_R_ANNUNC_IND)#Fly By Wire.A320-SDK.EIS Display System.A32NX_MCDU_R_ANNUNC_IND -A32NX_MCDU_R_ANNUNC_MCDU_MENU#(L:A32NX_MCDU_R_ANNUNC_MCDU_MENU)#Fly By Wire.A320-SDK.EIS Display System.A32NX_MCDU_R_ANNUNC_MCDU_MENU -A32NX_MCDU_R_ANNUNC_RDY#(L:A32NX_MCDU_R_ANNUNC_RDY)#Fly By Wire.A320-SDK.EIS Display System.A32NX_MCDU_R_ANNUNC_RDY -A32NX_PAX_TOTAL_ROWS_14_21#(L:A32NX_PAX_TOTAL_ROWS_14_21)#Fly By Wire.A320-SDK.EIS Display System.A32NX_PAX_TOTAL_ROWS_14_21 -A32NX_PAX_TOTAL_ROWS_14_21_DESIRED#(L:A32NX_PAX_TOTAL_ROWS_14_21_DESIRED)#Fly By Wire.A320-SDK.EIS Display System.A32NX_PAX_TOTAL_ROWS_14_21_DESIRED -A32NX_PAX_TOTAL_ROWS_1_6#(L:A32NX_PAX_TOTAL_ROWS_1_6)#Fly By Wire.A320-SDK.EIS Display System.A32NX_PAX_TOTAL_ROWS_1_6 -A32NX_PAX_TOTAL_ROWS_1_6_DESIRED#(L:A32NX_PAX_TOTAL_ROWS_1_6_DESIRED)#Fly By Wire.A320-SDK.EIS Display System.A32NX_PAX_TOTAL_ROWS_1_6_DESIRED -A32NX_PAX_TOTAL_ROWS_22_27#(L:A32NX_PAX_TOTAL_ROWS_22_27)#Fly By Wire.A320-SDK.EIS Display System.A32NX_PAX_TOTAL_ROWS_22_27 -A32NX_PAX_TOTAL_ROWS_22_27_DESIRED#(L:A32NX_PAX_TOTAL_ROWS_22_27_DESIRED)#Fly By Wire.A320-SDK.EIS Display System.A32NX_PAX_TOTAL_ROWS_22_27_DESIRED -A32NX_PAX_TOTAL_ROWS_7_13#(L:A32NX_PAX_TOTAL_ROWS_7_13)#Fly By Wire.A320-SDK.EIS Display System.A32NX_PAX_TOTAL_ROWS_7_13 -A32NX_PAX_TOTAL_ROWS_7_13_DESIRED#(L:A32NX_PAX_TOTAL_ROWS_7_13_DESIRED)#Fly By Wire.A320-SDK.EIS Display System.A32NX_PAX_TOTAL_ROWS_7_13_DESIRED -PAYLOAD STATION WEIGHT:5#(L:PAYLOAD STATION WEIGHT:5)#Fly By Wire.A320-SDK.EIS Display System.PAYLOAD STATION WEIGHT:5 -PAYLOAD STATION WEIGHT:6#(L:PAYLOAD STATION WEIGHT:6)#Fly By Wire.A320-SDK.EIS Display System.PAYLOAD STATION WEIGHT:6 -PAYLOAD STATION WEIGHT:7#(L:PAYLOAD STATION WEIGHT:7)#Fly By Wire.A320-SDK.EIS Display System.PAYLOAD STATION WEIGHT:7 -PAYLOAD STATION WEIGHT:8#(L:PAYLOAD STATION WEIGHT:8)#Fly By Wire.A320-SDK.EIS Display System.PAYLOAD STATION WEIGHT:8 -Fly By Wire/A320-SDK/Engine and FADEC System#GROUP -A32NX_ENGINE_CYCLE_TIME#(L:A32NX_ENGINE_CYCLE_TIME)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_CYCLE_TIME -A32NX_ENGINE_EGT:1#(L:A32NX_ENGINE_EGT:1)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_EGT:1 -A32NX_ENGINE_EGT:2#(L:A32NX_ENGINE_EGT:2)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_EGT:2 -A32NX_ENGINE_FF:1#(L:A32NX_ENGINE_FF:1)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_FF:1 -A32NX_ENGINE_FF:2#(L:A32NX_ENGINE_FF:2)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_FF:2 -A32NX_ENGINE_IDLE_EGT#(L:A32NX_ENGINE_IDLE_EGT)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_IDLE_EGT -A32NX_ENGINE_IDLE_FF#(L:A32NX_ENGINE_IDLE_FF)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_IDLE_FF -A32NX_ENGINE_IDLE_N1#(L:A32NX_ENGINE_IDLE_N1)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_IDLE_N1 -A32NX_ENGINE_IDLE_N2#(L:A32NX_ENGINE_IDLE_N2)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_IDLE_N2 -A32NX_ENGINE_IMBALANCE#(L:A32NX_ENGINE_IMBALANCE)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_IMBALANCE -A32NX_ENGINE_N1:1#(L:A32NX_ENGINE_N1:1)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_N1:1 -A32NX_ENGINE_N1:2#(L:A32NX_ENGINE_N1:2)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_N1:2 -A32NX_ENGINE_N2:1#(L:A32NX_ENGINE_N2:1)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_N2:1 -A32NX_ENGINE_N2:2#(L:A32NX_ENGINE_N2:2)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_N2:2 -A32NX_ENGINE_PRE_FF:1#(L:A32NX_ENGINE_PRE_FF:1)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_PRE_FF:1 -A32NX_ENGINE_PRE_FF:2#(L:A32NX_ENGINE_PRE_FF:2)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_PRE_FF:2 -A32NX_ENGINE_STATE:1#(L:A32NX_ENGINE_STATE:1)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_STATE:1 -A32NX_ENGINE_STATE:2#(L:A32NX_ENGINE_STATE:2)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_STATE:2 -A32NX_ENGINE_TANK_OIL:1#(L:A32NX_ENGINE_TANK_OIL:1)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_TANK_OIL:1 -A32NX_ENGINE_TANK_OIL:2#(L:A32NX_ENGINE_TANK_OIL:2)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_TANK_OIL:2 -A32NX_ENGINE_TIMER:1#(L:A32NX_ENGINE_TIMER:1)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_TIMER:1 -A32NX_ENGINE_TIMER:2#(L:A32NX_ENGINE_TIMER:2)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_TIMER:2 -A32NX_ENGINE_TOTAL_OIL:1#(L:A32NX_ENGINE_TOTAL_OIL:1)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_TOTAL_OIL:1 -A32NX_ENGINE_TOTAL_OIL:2#(L:A32NX_ENGINE_TOTAL_OIL:2)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_ENGINE_TOTAL_OIL:2 -A32NX_FUEL_AUX_LEFT_PRE#(L:A32NX_FUEL_AUX_LEFT_PRE)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_FUEL_AUX_LEFT_PRE -A32NX_FUEL_AUX_RIGHT_PRE#(L:A32NX_FUEL_AUX_RIGHT_PRE)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_FUEL_AUX_RIGHT_PRE -A32NX_FUEL_CENTER_PRE#(L:A32NX_FUEL_CENTER_PRE)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_FUEL_CENTER_PRE -A32NX_FUEL_LEFT_PRE#(L:A32NX_FUEL_LEFT_PRE)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_FUEL_LEFT_PRE -A32NX_FUEL_RIGHT_PRE#(L:A32NX_FUEL_RIGHT_PRE)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_FUEL_RIGHT_PRE -A32NX_FUEL_USED:1#(L:A32NX_FUEL_USED:1)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_FUEL_USED:1 -A32NX_FUEL_USED:2#(L:A32NX_FUEL_USED:2)#Fly By Wire.A320-SDK.Engine and FADEC System.A32NX_FUEL_USED:2 -Fly By Wire/A320-SDK/Fly-By-Wire System#GROUP -A32NX_3D_AILERON_LEFT_DEFLECTION#(L:A32NX_3D_AILERON_LEFT_DEFLECTION)#Fly By Wire.A320-SDK.Fly-By-Wire System.A32NX_3D_AILERON_LEFT_DEFLECTION -A32NX_3D_AILERON_RIGHT_DEFLECTION#(L:A32NX_3D_AILERON_RIGHT_DEFLECTION)#Fly By Wire.A320-SDK.Fly-By-Wire System.A32NX_3D_AILERON_RIGHT_DEFLECTION -A32NX_ALPHA_MAX_PERCENTAGE#(L:A32NX_ALPHA_MAX_PERCENTAGE)#Fly By Wire.A320-SDK.Fly-By-Wire System.A32NX_ALPHA_MAX_PERCENTAGE -A32NX_BETA_TARGET#(L:A32NX_BETA_TARGET)#Fly By Wire.A320-SDK.Fly-By-Wire System.A32NX_BETA_TARGET -A32NX_LOGGING_FLIGHT_CONTROLS_ENABLED#(L:A32NX_LOGGING_FLIGHT_CONTROLS_ENABLED)#Fly By Wire.A320-SDK.Fly-By-Wire System.A32NX_LOGGING_FLIGHT_CONTROLS_ENABLED -A32NX_RUDDER_PEDAL_POSITION#(L:A32NX_RUDDER_PEDAL_POSITION)#Fly By Wire.A320-SDK.Fly-By-Wire System.A32NX_RUDDER_PEDAL_POSITION -A32NX_SIDESTICK_POSITION_X#(L:A32NX_SIDESTICK_POSITION_X)#Fly By Wire.A320-SDK.Fly-By-Wire System.A32NX_SIDESTICK_POSITION_X -A32NX_SIDESTICK_POSITION_Y#(L:A32NX_SIDESTICK_POSITION_Y)#Fly By Wire.A320-SDK.Fly-By-Wire System.A32NX_SIDESTICK_POSITION_Y -Fly By Wire/A320-SDK/Pneumatic#GROUP -A32NX_OVHD_PNEU_ENG_1_BLEED_PB_HAS_FAULT#(L:A32NX_OVHD_PNEU_ENG_1_BLEED_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Pneumatic.A32NX_OVHD_PNEU_ENG_1_BLEED_PB_HAS_FAULT -A32NX_OVHD_PNEU_ENG_1_BLEED_PB_IS_AUTO#(L:A32NX_OVHD_PNEU_ENG_1_BLEED_PB_IS_AUTO)#Fly By Wire.A320-SDK.Pneumatic.A32NX_OVHD_PNEU_ENG_1_BLEED_PB_IS_AUTO -A32NX_OVHD_PNEU_ENG_2_BLEED_PB_HAS_FAULT#(L:A32NX_OVHD_PNEU_ENG_2_BLEED_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Pneumatic.A32NX_OVHD_PNEU_ENG_2_BLEED_PB_HAS_FAULT -A32NX_OVHD_PNEU_ENG_2_BLEED_PB_IS_AUTO#(L:A32NX_OVHD_PNEU_ENG_2_BLEED_PB_IS_AUTO)#Fly By Wire.A320-SDK.Pneumatic.A32NX_OVHD_PNEU_ENG_2_BLEED_PB_IS_AUTO -A32NX_PNEU_ENG_1_HP_PRESSURE#(L:A32NX_PNEU_ENG_1_HP_PRESSURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_1_HP_PRESSURE -A32NX_PNEU_ENG_1_HP_TEMPERATURE#(L:A32NX_PNEU_ENG_1_HP_TEMPERATURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_1_HP_TEMPERATURE -A32NX_PNEU_ENG_1_HP_VALVE_OPEN#(L:A32NX_PNEU_ENG_1_HP_VALVE_OPEN)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_1_HP_VALVE_OPEN -A32NX_PNEU_ENG_1_IP_PRESSURE#(L:A32NX_PNEU_ENG_1_IP_PRESSURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_1_IP_PRESSURE -A32NX_PNEU_ENG_1_IP_TEMPERATURE#(L:A32NX_PNEU_ENG_1_IP_TEMPERATURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_1_IP_TEMPERATURE -A32NX_PNEU_ENG_1_IP_VALVE_OPEN#(L:A32NX_PNEU_ENG_1_IP_VALVE_OPEN)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_1_IP_VALVE_OPEN -A32NX_PNEU_ENG_1_PRECOOLER_INLET_PRESSURE#(L:A32NX_PNEU_ENG_1_PRECOOLER_INLET_PRESSURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_1_PRECOOLER_INLET_PRESSURE -A32NX_PNEU_ENG_1_PRECOOLER_INLET_TEMPERATURE#(L:A32NX_PNEU_ENG_1_PRECOOLER_INLET_TEMPERATURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_1_PRECOOLER_INLET_TEMPERATURE -A32NX_PNEU_ENG_1_PRECOOLER_OUTLET_PRESSURE#(L:A32NX_PNEU_ENG_1_PRECOOLER_OUTLET_PRESSURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_1_PRECOOLER_OUTLET_PRESSURE -A32NX_PNEU_ENG_1_PRECOOLER_OUTLET_TEMPERATURE#(L:A32NX_PNEU_ENG_1_PRECOOLER_OUTLET_TEMPERATURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_1_PRECOOLER_OUTLET_TEMPERATURE -A32NX_PNEU_ENG_1_PR_VALVE_OPEN#(L:A32NX_PNEU_ENG_1_PR_VALVE_OPEN)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_1_PR_VALVE_OPEN -A32NX_PNEU_ENG_1_STARTER_CONTAINER_PRESSURE#(L:A32NX_PNEU_ENG_1_STARTER_CONTAINER_PRESSURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_1_STARTER_CONTAINER_PRESSURE -A32NX_PNEU_ENG_1_STARTER_CONTAINER_TEMPERATURE#(L:A32NX_PNEU_ENG_1_STARTER_CONTAINER_TEMPERATURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_1_STARTER_CONTAINER_TEMPERATURE -A32NX_PNEU_ENG_1_STARTER_VALVE_OPEN#(L:A32NX_PNEU_ENG_1_STARTER_VALVE_OPEN)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_1_STARTER_VALVE_OPEN -A32NX_PNEU_ENG_1_TRANSFER_PRESSURE#(L:A32NX_PNEU_ENG_1_TRANSFER_PRESSURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_1_TRANSFER_PRESSURE -A32NX_PNEU_ENG_1_TRANSFER_TEMPERATURE#(L:A32NX_PNEU_ENG_1_TRANSFER_TEMPERATURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_1_TRANSFER_TEMPERATURE -A32NX_PNEU_ENG_2_HP_PRESSURE#(L:A32NX_PNEU_ENG_2_HP_PRESSURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_2_HP_PRESSURE -A32NX_PNEU_ENG_2_HP_TEMPERATURE#(L:A32NX_PNEU_ENG_2_HP_TEMPERATURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_2_HP_TEMPERATURE -A32NX_PNEU_ENG_2_HP_VALVE_OPEN#(L:A32NX_PNEU_ENG_2_HP_VALVE_OPEN)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_2_HP_VALVE_OPEN -A32NX_PNEU_ENG_2_IP_PRESSURE#(L:A32NX_PNEU_ENG_2_IP_PRESSURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_2_IP_PRESSURE -A32NX_PNEU_ENG_2_IP_TEMPERATURE#(L:A32NX_PNEU_ENG_2_IP_TEMPERATURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_2_IP_TEMPERATURE -A32NX_PNEU_ENG_2_IP_VALVE_OPEN#(L:A32NX_PNEU_ENG_2_IP_VALVE_OPEN)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_2_IP_VALVE_OPEN -A32NX_PNEU_ENG_2_PRECOOLER_INLET_PRESSURE#(L:A32NX_PNEU_ENG_2_PRECOOLER_INLET_PRESSURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_2_PRECOOLER_INLET_PRESSURE -A32NX_PNEU_ENG_2_PRECOOLER_INLET_TEMPERATURE#(L:A32NX_PNEU_ENG_2_PRECOOLER_INLET_TEMPERATURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_2_PRECOOLER_INLET_TEMPERATURE -A32NX_PNEU_ENG_2_PRECOOLER_OUTLET_PRESSURE#(L:A32NX_PNEU_ENG_2_PRECOOLER_OUTLET_PRESSURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_2_PRECOOLER_OUTLET_PRESSURE -A32NX_PNEU_ENG_2_PRECOOLER_OUTLET_TEMPERATURE#(L:A32NX_PNEU_ENG_2_PRECOOLER_OUTLET_TEMPERATURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_2_PRECOOLER_OUTLET_TEMPERATURE -A32NX_PNEU_ENG_2_PR_VALVE_OPEN#(L:A32NX_PNEU_ENG_2_PR_VALVE_OPEN)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_2_PR_VALVE_OPEN -A32NX_PNEU_ENG_2_STARTER_CONTAINER_PRESSURE#(L:A32NX_PNEU_ENG_2_STARTER_CONTAINER_PRESSURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_2_STARTER_CONTAINER_PRESSURE -A32NX_PNEU_ENG_2_STARTER_CONTAINER_TEMPERATURE#(L:A32NX_PNEU_ENG_2_STARTER_CONTAINER_TEMPERATURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_2_STARTER_CONTAINER_TEMPERATURE -A32NX_PNEU_ENG_2_STARTER_VALVE_OPEN#(L:A32NX_PNEU_ENG_2_STARTER_VALVE_OPEN)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_2_STARTER_VALVE_OPEN -A32NX_PNEU_ENG_2_TRANSFER_PRESSURE#(L:A32NX_PNEU_ENG_2_TRANSFER_PRESSURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_2_TRANSFER_PRESSURE -A32NX_PNEU_ENG_2_TRANSFER_TEMPERATURE#(L:A32NX_PNEU_ENG_2_TRANSFER_TEMPERATURE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_ENG_2_TRANSFER_TEMPERATURE -A32NX_PNEU_PACK_1_FLOW_VALVE_FLOW_RATE#(L:A32NX_PNEU_PACK_1_FLOW_VALVE_FLOW_RATE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_PACK_1_FLOW_VALVE_FLOW_RATE -A32NX_PNEU_PACK_2_FLOW_VALVE_FLOW_RATE#(L:A32NX_PNEU_PACK_2_FLOW_VALVE_FLOW_RATE)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_PACK_2_FLOW_VALVE_FLOW_RATE -A32NX_PNEU_XBLEED_VALVE_OPEN#(L:A32NX_PNEU_XBLEED_VALVE_OPEN)#Fly By Wire.A320-SDK.Pneumatic.A32NX_PNEU_XBLEED_VALVE_OPEN -Fly By Wire/A320-SDK/Throttle Mapping System#GROUP -A32NX_AUTOTHRUST_TLA:1#(L:A32NX_AUTOTHRUST_TLA:1)#Fly By Wire.A320-SDK.Throttle Mapping System.A32NX_AUTOTHRUST_TLA:1 -A32NX_AUTOTHRUST_TLA:2#(L:A32NX_AUTOTHRUST_TLA:2)#Fly By Wire.A320-SDK.Throttle Mapping System.A32NX_AUTOTHRUST_TLA:2 -A32NX_LOGGING_THROTTLES_ENABLED#(L:A32NX_LOGGING_THROTTLES_ENABLED)#Fly By Wire.A320-SDK.Throttle Mapping System.A32NX_LOGGING_THROTTLES_ENABLED -A32NX_THROTTLE_MAPPING_INPUT:1#(L:A32NX_THROTTLE_MAPPING_INPUT:1)#Fly By Wire.A320-SDK.Throttle Mapping System.A32NX_THROTTLE_MAPPING_INPUT:1 -A32NX_THROTTLE_MAPPING_INPUT:2#(L:A32NX_THROTTLE_MAPPING_INPUT:2)#Fly By Wire.A320-SDK.Throttle Mapping System.A32NX_THROTTLE_MAPPING_INPUT:2 -A32NX_THROTTLE_MAPPING_LOADED_CONFIG:1#(L:A32NX_THROTTLE_MAPPING_LOADED_CONFIG:1)#Fly By Wire.A320-SDK.Throttle Mapping System.A32NX_THROTTLE_MAPPING_LOADED_CONFIG:1 -A32NX_THROTTLE_MAPPING_LOADED_CONFIG:2#(L:A32NX_THROTTLE_MAPPING_LOADED_CONFIG:2)#Fly By Wire.A320-SDK.Throttle Mapping System.A32NX_THROTTLE_MAPPING_LOADED_CONFIG:2 -A32NX_THROTTLE_MAPPING_USE_REVERSE_ON_AXIS:1#(L:A32NX_THROTTLE_MAPPING_USE_REVERSE_ON_AXIS:1)#Fly By Wire.A320-SDK.Throttle Mapping System.A32NX_THROTTLE_MAPPING_USE_REVERSE_ON_AXIS:1 -A32NX_THROTTLE_MAPPING_USE_REVERSE_ON_AXIS:2#(L:A32NX_THROTTLE_MAPPING_USE_REVERSE_ON_AXIS:2)#Fly By Wire.A320-SDK.Throttle Mapping System.A32NX_THROTTLE_MAPPING_USE_REVERSE_ON_AXIS:2 -A32NX_THROTTLE_MAPPING_{REVERSE|REVERSE_IDLE|IDLE|CLIMB|FLEXMCT|TOGA}_{LOW|HIGH}:{index}#(L:A32NX_THROTTLE_MAPPING_{REVERSE|REVERSE_IDLE|IDLE|CLIMB|FLEXMCT|TOGA}_{LOW|HIGH}:{index})#Fly By Wire.A320-SDK.Throttle Mapping System.A32NX_THROTTLE_MAPPING_{REVERSE|REVERSE_IDLE|IDLE|CLIMB|FLEXMCT|TOGA}_{LOW|HIGH}:{index} -Fly By Wire/A320-SDK/Unsorted#GROUP -A32NX_AIDS_PRINT_ON#(L:A32NX_AIDS_PRINT_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_AIDS_PRINT_ON -A32NX_AIRCOND_HOTAIR_FAULT#(L:A32NX_AIRCOND_HOTAIR_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_AIRCOND_HOTAIR_FAULT -A32NX_AIRCOND_HOTAIR_TOGGLE#(L:A32NX_AIRCOND_HOTAIR_TOGGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_AIRCOND_HOTAIR_TOGGLE -A32NX_AIRCOND_PACK1_FAULT#(L:A32NX_AIRCOND_PACK1_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_AIRCOND_PACK1_FAULT -A32NX_AIRCOND_PACK1_TOGGLE#(L:A32NX_AIRCOND_PACK1_TOGGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_AIRCOND_PACK1_TOGGLE -A32NX_AIRCOND_PACK2_FAULT#(L:A32NX_AIRCOND_PACK2_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_AIRCOND_PACK2_FAULT -A32NX_AIRCOND_PACK2_TOGGLE#(L:A32NX_AIRCOND_PACK2_TOGGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_AIRCOND_PACK2_TOGGLE -A32NX_AIRCOND_RAMAIR_TOGGLE#(L:A32NX_AIRCOND_RAMAIR_TOGGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_AIRCOND_RAMAIR_TOGGLE -A32NX_APU_AUTOEXITING_RESET#(L:A32NX_APU_AUTOEXITING_RESET)#Fly By Wire.A320-SDK.Unsorted.A32NX_APU_AUTOEXITING_RESET -A32NX_APU_AUTOEXITING_TEST_OK#(L:A32NX_APU_AUTOEXITING_TEST_OK)#Fly By Wire.A320-SDK.Unsorted.A32NX_APU_AUTOEXITING_TEST_OK -A32NX_APU_AUTOEXITING_TEST_ON#(L:A32NX_APU_AUTOEXITING_TEST_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_APU_AUTOEXITING_TEST_ON -A32NX_APU_BLEED_AIR_VALVE_OPEN#(L:A32NX_APU_BLEED_AIR_VALVE_OPEN)#Fly By Wire.A320-SDK.Unsorted.A32NX_APU_BLEED_AIR_VALVE_OPEN -A32NX_APU_EGT#(L:A32NX_APU_EGT)#Fly By Wire.A320-SDK.Unsorted.A32NX_APU_EGT -A32NX_APU_EGT_CAUTION#(L:A32NX_APU_EGT_CAUTION)#Fly By Wire.A320-SDK.Unsorted.A32NX_APU_EGT_CAUTION -A32NX_APU_EGT_WARNING#(L:A32NX_APU_EGT_WARNING)#Fly By Wire.A320-SDK.Unsorted.A32NX_APU_EGT_WARNING -A32NX_APU_FLAP_FULLY_OPEN#(L:A32NX_APU_FLAP_FULLY_OPEN)#Fly By Wire.A320-SDK.Unsorted.A32NX_APU_FLAP_FULLY_OPEN -A32NX_APU_FLAP_OPEN_PERCENTAGE#(L:A32NX_APU_FLAP_OPEN_PERCENTAGE)#Fly By Wire.A320-SDK.Unsorted.A32NX_APU_FLAP_OPEN_PERCENTAGE -A32NX_APU_IS_AUTO_SHUTDOWN#(L:A32NX_APU_IS_AUTO_SHUTDOWN)#Fly By Wire.A320-SDK.Unsorted.A32NX_APU_IS_AUTO_SHUTDOWN -A32NX_APU_IS_EMERGENCY_SHUTDOWN#(L:A32NX_APU_IS_EMERGENCY_SHUTDOWN)#Fly By Wire.A320-SDK.Unsorted.A32NX_APU_IS_EMERGENCY_SHUTDOWN -A32NX_APU_LOW_FUEL_PRESSURE_FAULT#(L:A32NX_APU_LOW_FUEL_PRESSURE_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_APU_LOW_FUEL_PRESSURE_FAULT -A32NX_APU_N#(L:A32NX_APU_N)#Fly By Wire.A320-SDK.Unsorted.A32NX_APU_N -A32NX_APU_N_RAW#(L:A32NX_APU_N_RAW)#Fly By Wire.A320-SDK.Unsorted.A32NX_APU_N_RAW -A32NX_AUTOBRAKES_ARMED_MODE#(L:A32NX_AUTOBRAKES_ARMED_MODE)#Fly By Wire.A320-SDK.Unsorted.A32NX_AUTOBRAKES_ARMED_MODE -A32NX_AUTOBRAKES_DECEL_con#(L:A32NX_AUTOBRAKES_DECEL_LIGHT)#Fly By Wire.A320-SDK.Unsorted.A32NX_AUTOBRAKES_DECEL_LIGHT -A32NX_AUTOPILOT_FPA_SELECTED#(L:A32NX_AUTOPILOT_FPA_SELECTED)#Fly By Wire.A320-SDK.Unsorted.A32NX_AUTOPILOT_FPA_SELECTED -A32NX_AUTOPILOT_TRACK_SELECTED#(L:A32NX_AUTOPILOT_TRACK_SELECTED)#Fly By Wire.A320-SDK.Unsorted.A32NX_AUTOPILOT_TRACK_SELECTED -A32NX_AVIONICS_COMPLT_ON#(L:A32NX_AVIONICS_COMPLT_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_AVIONICS_COMPLT_ON -A32NX_BRAKES_HOT#(L:A32NX_BRAKES_HOT)#Fly By Wire.A320-SDK.Unsorted.A32NX_BRAKES_HOT -A32NX_BRAKE_FAN#(L:A32NX_BRAKE_FAN)#Fly By Wire.A320-SDK.Unsorted.A32NX_BRAKE_FAN -A32NX_BRAKE_FAN_BTN_PRESSED#(L:A32NX_BRAKE_FAN_BTN_PRESSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_BRAKE_FAN_BTN_PRESSED -A32NX_BRAKE_TEMPERATURE_1#(L:A32NX_BRAKE_TEMPERATURE_1)#Fly By Wire.A320-SDK.Unsorted.A32NX_BRAKE_TEMPERATURE_1 -A32NX_BRAKE_TEMPERATURE_2#(L:A32NX_BRAKE_TEMPERATURE_2)#Fly By Wire.A320-SDK.Unsorted.A32NX_BRAKE_TEMPERATURE_2 -A32NX_BRAKE_TEMPERATURE_3#(L:A32NX_BRAKE_TEMPERATURE_3)#Fly By Wire.A320-SDK.Unsorted.A32NX_BRAKE_TEMPERATURE_3 -A32NX_BRAKE_TEMPERATURE_4#(L:A32NX_BRAKE_TEMPERATURE_4)#Fly By Wire.A320-SDK.Unsorted.A32NX_BRAKE_TEMPERATURE_4 -A32NX_CALLS_EMER_ON#(L:A32NX_CALLS_EMER_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_CALLS_EMER_ON -A32NX_CARGOSMOKE_AFT_DISCHARGED#(L:A32NX_CARGOSMOKE_AFT_DISCHARGED)#Fly By Wire.A320-SDK.Unsorted.A32NX_CARGOSMOKE_AFT_DISCHARGED -A32NX_CARGOSMOKE_FWD_DISCHARGED#(L:A32NX_CARGOSMOKE_FWD_DISCHARGED)#Fly By Wire.A320-SDK.Unsorted.A32NX_CARGOSMOKE_FWD_DISCHARGED -A32NX_CREW_HEAD_SET#(L:A32NX_CREW_HEAD_SET)#Fly By Wire.A320-SDK.Unsorted.A32NX_CREW_HEAD_SET -A32NX_DEPARTURE_ELEVATION#(L:A32NX_DEPARTURE_ELEVATION)#Fly By Wire.A320-SDK.Unsorted.A32NX_DEPARTURE_ELEVATION -A32NX_DESTINATION_QNH#(L:A32NX_DESTINATION_QNH)#Fly By Wire.A320-SDK.Unsorted.A32NX_DESTINATION_QNH -A32NX_DFDR_EVENT_ON#(L:A32NX_DFDR_EVENT_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_DFDR_EVENT_ON -A32NX_DLS_ON#(L:A32NX_DLS_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_DLS_ON -A32NX_ECAM_INOP_SYS_APU#(L:A32NX_ECAM_INOP_SYS_APU)#Fly By Wire.A320-SDK.Unsorted.A32NX_ECAM_INOP_SYS_APU -A32NX_ECAM_ND_XFR_SWITCHING_KNOB#(L:A32NX_ECAM_ND_XFR_SWITCHING_KNOB)#Fly By Wire.A320-SDK.Unsorted.A32NX_ECAM_ND_XFR_SWITCHING_KNOB -A32NX_EIS_DMC_SWITCHING_KNOB#(L:A32NX_EIS_DMC_SWITCHING_KNOB)#Fly By Wire.A320-SDK.Unsorted.A32NX_EIS_DMC_SWITCHING_KNOB -A32NX_ELEC_AC_1_BUS_IS_POWERED#(L:A32NX_ELEC_AC_1_BUS_IS_POWERED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_AC_1_BUS_IS_POWERED -A32NX_ELEC_AC_2_BUS_IS_POWERED#(L:A32NX_ELEC_AC_2_BUS_IS_POWERED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_AC_2_BUS_IS_POWERED -A32NX_ELEC_AC_ESS_BUS_IS_POWERED#(L:A32NX_ELEC_AC_ESS_BUS_IS_POWERED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_AC_ESS_BUS_IS_POWERED -A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED#(L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED -A32NX_ELEC_AC_GND_FLT_SVC_BUS_IS_POWERED#(L:A32NX_ELEC_AC_GND_FLT_SVC_BUS_IS_POWERED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_AC_GND_FLT_SVC_BUS_IS_POWERED -A32NX_ELEC_AC_STAT_INV_BUS_IS_POWERED#(L:A32NX_ELEC_AC_STAT_INV_BUS_IS_POWERED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_AC_STAT_INV_BUS_IS_POWERED -A32NX_ELEC_APU_GEN_1_FREQUENCY#(L:A32NX_ELEC_APU_GEN_1_FREQUENCY)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_APU_GEN_1_FREQUENCY -A32NX_ELEC_APU_GEN_1_FREQUENCY_NORMAL#(L:A32NX_ELEC_APU_GEN_1_FREQUENCY_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_APU_GEN_1_FREQUENCY_NORMAL -A32NX_ELEC_APU_GEN_1_LOAD#(L:A32NX_ELEC_APU_GEN_1_LOAD)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_APU_GEN_1_LOAD -A32NX_ELEC_APU_GEN_1_LOAD_NORMAL#(L:A32NX_ELEC_APU_GEN_1_LOAD_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_APU_GEN_1_LOAD_NORMAL -A32NX_ELEC_APU_GEN_1_POTENTIAL#(L:A32NX_ELEC_APU_GEN_1_POTENTIAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_APU_GEN_1_POTENTIAL -A32NX_ELEC_APU_GEN_1_POTENTIAL_NORMAL#(L:A32NX_ELEC_APU_GEN_1_POTENTIAL_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_APU_GEN_1_POTENTIAL_NORMAL -A32NX_ELEC_BAT_1_CURRENT#(L:A32NX_ELEC_BAT_1_CURRENT)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_BAT_1_CURRENT -A32NX_ELEC_BAT_1_CURRENT_NORMAL#(L:A32NX_ELEC_BAT_1_CURRENT_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_BAT_1_CURRENT_NORMAL -A32NX_ELEC_BAT_1_POTENTIAL#(L:A32NX_ELEC_BAT_1_POTENTIAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_BAT_1_POTENTIAL -A32NX_ELEC_BAT_1_POTENTIAL_NORMAL#(L:A32NX_ELEC_BAT_1_POTENTIAL_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_BAT_1_POTENTIAL_NORMAL -A32NX_ELEC_BAT_2_CURRENT#(L:A32NX_ELEC_BAT_2_CURRENT)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_BAT_2_CURRENT -A32NX_ELEC_BAT_2_CURRENT_NORMAL#(L:A32NX_ELEC_BAT_2_CURRENT_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_BAT_2_CURRENT_NORMAL -A32NX_ELEC_BAT_2_POTENTIAL#(L:A32NX_ELEC_BAT_2_POTENTIAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_BAT_2_POTENTIAL -A32NX_ELEC_BAT_2_POTENTIAL_NORMAL#(L:A32NX_ELEC_BAT_2_POTENTIAL_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_BAT_2_POTENTIAL_NORMAL -A32NX_ELEC_CONTACTOR_10KA_AND_5KA_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_10KA_AND_5KA_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_10KA_AND_5KA_IS_CLOSED -A32NX_ELEC_CONTACTOR_11XU1_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_11XU1_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_11XU1_IS_CLOSED -A32NX_ELEC_CONTACTOR_11XU2_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_11XU2_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_11XU2_IS_CLOSED -A32NX_ELEC_CONTACTOR_12XN_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_12XN_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_12XN_IS_CLOSED -A32NX_ELEC_CONTACTOR_14PU_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_14PU_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_14PU_IS_CLOSED -A32NX_ELEC_CONTACTOR_15XE1_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_15XE1_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_15XE1_IS_CLOSED -A32NX_ELEC_CONTACTOR_15XE2_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_15XE2_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_15XE2_IS_CLOSED -A32NX_ELEC_CONTACTOR_1PC1_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_1PC1_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_1PC1_IS_CLOSED -A32NX_ELEC_CONTACTOR_1PC2_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_1PC2_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_1PC2_IS_CLOSED -A32NX_ELEC_CONTACTOR_2XB1_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_2XB1_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_2XB1_IS_CLOSED -A32NX_ELEC_CONTACTOR_2XB2_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_2XB2_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_2XB2_IS_CLOSED -A32NX_ELEC_CONTACTOR_2XE_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_2XE_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_2XE_IS_CLOSED -A32NX_ELEC_CONTACTOR_3PE_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_3PE_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_3PE_IS_CLOSED -A32NX_ELEC_CONTACTOR_3PX_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_3PX_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_3PX_IS_CLOSED -A32NX_ELEC_CONTACTOR_3XC1_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_3XC1_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_3XC1_IS_CLOSED -A32NX_ELEC_CONTACTOR_3XC2_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_3XC2_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_3XC2_IS_CLOSED -A32NX_ELEC_CONTACTOR_3XG_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_3XG_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_3XG_IS_CLOSED -A32NX_ELEC_CONTACTOR_3XS_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_3XS_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_3XS_IS_CLOSED -A32NX_ELEC_CONTACTOR_4PC_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_4PC_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_4PC_IS_CLOSED -A32NX_ELEC_CONTACTOR_5PU1_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_5PU1_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_5PU1_IS_CLOSED -A32NX_ELEC_CONTACTOR_5PU2_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_5PU2_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_5PU2_IS_CLOSED -A32NX_ELEC_CONTACTOR_6PB1_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_6PB1_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_6PB1_IS_CLOSED -A32NX_ELEC_CONTACTOR_6PB1_SHOW_ARROW_WHEN_CLOSED#(L:A32NX_ELEC_CONTACTOR_6PB1_SHOW_ARROW_WHEN_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_6PB1_SHOW_ARROW_WHEN_CLOSED -A32NX_ELEC_CONTACTOR_6PB2_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_6PB2_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_6PB2_IS_CLOSED -A32NX_ELEC_CONTACTOR_6PB2_SHOW_ARROW_WHEN_CLOSED#(L:A32NX_ELEC_CONTACTOR_6PB2_SHOW_ARROW_WHEN_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_6PB2_SHOW_ARROW_WHEN_CLOSED -A32NX_ELEC_CONTACTOR_8PH_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_8PH_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_8PH_IS_CLOSED -A32NX_ELEC_CONTACTOR_8PN_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_8PN_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_8PN_IS_CLOSED -A32NX_ELEC_CONTACTOR_8XH_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_8XH_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_8XH_IS_CLOSED -A32NX_ELEC_CONTACTOR_9XU1_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_9XU1_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_9XU1_IS_CLOSED -A32NX_ELEC_CONTACTOR_9XU2_IS_CLOSED#(L:A32NX_ELEC_CONTACTOR_9XU2_IS_CLOSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_CONTACTOR_9XU2_IS_CLOSED -A32NX_ELEC_DC_1_BUS_IS_POWERED#(L:A32NX_ELEC_DC_1_BUS_IS_POWERED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_DC_1_BUS_IS_POWERED -A32NX_ELEC_DC_2_BUS_IS_POWERED#(L:A32NX_ELEC_DC_2_BUS_IS_POWERED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_DC_2_BUS_IS_POWERED -A32NX_ELEC_DC_BAT_BUS_IS_POWERED#(L:A32NX_ELEC_DC_BAT_BUS_IS_POWERED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_DC_BAT_BUS_IS_POWERED -A32NX_ELEC_DC_ESS_BUS_IS_POWERED#(L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_DC_ESS_BUS_IS_POWERED -A32NX_ELEC_DC_ESS_SHED_BUS_IS_POWERED#(L:A32NX_ELEC_DC_ESS_SHED_BUS_IS_POWERED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_DC_ESS_SHED_BUS_IS_POWERED -A32NX_ELEC_DC_GND_FLT_SVC_BUS_IS_POWERED#(L:A32NX_ELEC_DC_GND_FLT_SVC_BUS_IS_POWERED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_DC_GND_FLT_SVC_BUS_IS_POWERED -A32NX_ELEC_DC_HOT_1_BUS_IS_POWERED#(L:A32NX_ELEC_DC_HOT_1_BUS_IS_POWERED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_DC_HOT_1_BUS_IS_POWERED -A32NX_ELEC_DC_HOT_2_BUS_IS_POWERED#(L:A32NX_ELEC_DC_HOT_2_BUS_IS_POWERED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_DC_HOT_2_BUS_IS_POWERED -A32NX_ELEC_EMER_GEN_FREQUENCY#(L:A32NX_ELEC_EMER_GEN_FREQUENCY)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_EMER_GEN_FREQUENCY -A32NX_ELEC_EMER_GEN_FREQUENCY_NORMAL#(L:A32NX_ELEC_EMER_GEN_FREQUENCY_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_EMER_GEN_FREQUENCY_NORMAL -A32NX_ELEC_EMER_GEN_POTENTIAL#(L:A32NX_ELEC_EMER_GEN_POTENTIAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_EMER_GEN_POTENTIAL -A32NX_ELEC_EMER_GEN_POTENTIAL_NORMAL#(L:A32NX_ELEC_EMER_GEN_POTENTIAL_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_EMER_GEN_POTENTIAL_NORMAL -A32NX_ELEC_ENG_GEN_1_FREQUENCY#(L:A32NX_ELEC_ENG_GEN_1_FREQUENCY)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_ENG_GEN_1_FREQUENCY -A32NX_ELEC_ENG_GEN_1_FREQUENCY_NORMAL#(L:A32NX_ELEC_ENG_GEN_1_FREQUENCY_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_ENG_GEN_1_FREQUENCY_NORMAL -A32NX_ELEC_ENG_GEN_1_IDG_IS_CONNECTED#(L:A32NX_ELEC_ENG_GEN_1_IDG_IS_CONNECTED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_ENG_GEN_1_IDG_IS_CONNECTED -A32NX_ELEC_ENG_GEN_1_IDG_OIL_OUTLET_TEMPERATURE#(L:A32NX_ELEC_ENG_GEN_1_IDG_OIL_OUTLET_TEMPERATURE)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_ENG_GEN_1_IDG_OIL_OUTLET_TEMPERATURE -A32NX_ELEC_ENG_GEN_1_LOAD#(L:A32NX_ELEC_ENG_GEN_1_LOAD)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_ENG_GEN_1_LOAD -A32NX_ELEC_ENG_GEN_1_LOAD_NORMAL#(L:A32NX_ELEC_ENG_GEN_1_LOAD_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_ENG_GEN_1_LOAD_NORMAL -A32NX_ELEC_ENG_GEN_1_POTENTIAL#(L:A32NX_ELEC_ENG_GEN_1_POTENTIAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_ENG_GEN_1_POTENTIAL -A32NX_ELEC_ENG_GEN_1_POTENTIAL_NORMAL#(L:A32NX_ELEC_ENG_GEN_1_POTENTIAL_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_ENG_GEN_1_POTENTIAL_NORMAL -A32NX_ELEC_ENG_GEN_2_FREQUENCY#(L:A32NX_ELEC_ENG_GEN_2_FREQUENCY)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_ENG_GEN_2_FREQUENCY -A32NX_ELEC_ENG_GEN_2_FREQUENCY_NORMAL#(L:A32NX_ELEC_ENG_GEN_2_FREQUENCY_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_ENG_GEN_2_FREQUENCY_NORMAL -A32NX_ELEC_ENG_GEN_2_IDG_IS_CONNECTED#(L:A32NX_ELEC_ENG_GEN_2_IDG_IS_CONNECTED)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_ENG_GEN_2_IDG_IS_CONNECTED -A32NX_ELEC_ENG_GEN_2_IDG_OIL_OUTLET_TEMPERATURE#(L:A32NX_ELEC_ENG_GEN_2_IDG_OIL_OUTLET_TEMPERATURE)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_ENG_GEN_2_IDG_OIL_OUTLET_TEMPERATURE -A32NX_ELEC_ENG_GEN_2_LOAD#(L:A32NX_ELEC_ENG_GEN_2_LOAD)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_ENG_GEN_2_LOAD -A32NX_ELEC_ENG_GEN_2_LOAD_NORMAL#(L:A32NX_ELEC_ENG_GEN_2_LOAD_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_ENG_GEN_2_LOAD_NORMAL -A32NX_ELEC_ENG_GEN_2_POTENTIAL#(L:A32NX_ELEC_ENG_GEN_2_POTENTIAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_ENG_GEN_2_POTENTIAL -A32NX_ELEC_ENG_GEN_2_POTENTIAL_NORMAL#(L:A32NX_ELEC_ENG_GEN_2_POTENTIAL_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_ENG_GEN_2_POTENTIAL_NORMAL -A32NX_ELEC_EXT_PWR_FREQUENCY#(L:A32NX_ELEC_EXT_PWR_FREQUENCY)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_EXT_PWR_FREQUENCY -A32NX_ELEC_EXT_PWR_FREQUENCY_NORMAL#(L:A32NX_ELEC_EXT_PWR_FREQUENCY_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_EXT_PWR_FREQUENCY_NORMAL -A32NX_ELEC_EXT_PWR_POTENTIAL#(L:A32NX_ELEC_EXT_PWR_POTENTIAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_EXT_PWR_POTENTIAL -A32NX_ELEC_EXT_PWR_POTENTIAL_NORMAL#(L:A32NX_ELEC_EXT_PWR_POTENTIAL_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_EXT_PWR_POTENTIAL_NORMAL -A32NX_ELEC_STAT_INV_FREQUENCY#(L:A32NX_ELEC_STAT_INV_FREQUENCY)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_STAT_INV_FREQUENCY -A32NX_ELEC_STAT_INV_FREQUENCY_NORMAL#(L:A32NX_ELEC_STAT_INV_FREQUENCY_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_STAT_INV_FREQUENCY_NORMAL -A32NX_ELEC_STAT_INV_POTENTIAL#(L:A32NX_ELEC_STAT_INV_POTENTIAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_STAT_INV_POTENTIAL -A32NX_ELEC_STAT_INV_POTENTIAL_NORMAL#(L:A32NX_ELEC_STAT_INV_POTENTIAL_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_STAT_INV_POTENTIAL_NORMAL -A32NX_ELEC_TR_1_CURRENT#(L:A32NX_ELEC_TR_1_CURRENT)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_TR_1_CURRENT -A32NX_ELEC_TR_1_CURRENT_NORMAL#(L:A32NX_ELEC_TR_1_CURRENT_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_TR_1_CURRENT_NORMAL -A32NX_ELEC_TR_1_POTENTIAL#(L:A32NX_ELEC_TR_1_POTENTIAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_TR_1_POTENTIAL -A32NX_ELEC_TR_1_POTENTIAL_NORMAL#(L:A32NX_ELEC_TR_1_POTENTIAL_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_TR_1_POTENTIAL_NORMAL -A32NX_ELEC_TR_2_CURRENT#(L:A32NX_ELEC_TR_2_CURRENT)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_TR_2_CURRENT -A32NX_ELEC_TR_2_CURRENT_NORMAL#(L:A32NX_ELEC_TR_2_CURRENT_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_TR_2_CURRENT_NORMAL -A32NX_ELEC_TR_2_POTENTIAL#(L:A32NX_ELEC_TR_2_POTENTIAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_TR_2_POTENTIAL -A32NX_ELEC_TR_2_POTENTIAL_NORMAL#(L:A32NX_ELEC_TR_2_POTENTIAL_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_TR_2_POTENTIAL_NORMAL -A32NX_ELEC_TR_3: TR ESS_POTENTIAL_NORMAL#(L:A32NX_ELEC_TR_3: TR ESS_POTENTIAL_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_TR_3: TR ESS_POTENTIAL_NORMAL -A32NX_ELEC_TR_3_CURRENT#(L:A32NX_ELEC_TR_3_CURRENT)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_TR_3_CURRENT -A32NX_ELEC_TR_3_CURRENT_NORMAL#(L:A32NX_ELEC_TR_3_CURRENT_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_TR_3_CURRENT_NORMAL -A32NX_ELEC_TR_3_POTENTIAL#(L:A32NX_ELEC_TR_3_POTENTIAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_TR_3_POTENTIAL -A32NX_ELEC_TR_ESS_POTENTIAL#(L:A32NX_ELEC_TR_ESS_POTENTIAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELEC_TR_ESS_POTENTIAL -A32NX_ELT_ON#(L:A32NX_ELT_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELT_ON -A32NX_ELT_TEST_RESET#(L:A32NX_ELT_TEST_RESET)#Fly By Wire.A320-SDK.Unsorted.A32NX_ELT_TEST_RESET -A32NX_EMERELECPWR_GEN_TEST#(L:A32NX_EMERELECPWR_GEN_TEST)#Fly By Wire.A320-SDK.Unsorted.A32NX_EMERELECPWR_GEN_TEST -A32NX_ENGMANSTART1_TOGGLE#(L:A32NX_ENGMANSTART1_TOGGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_ENGMANSTART1_TOGGLE -A32NX_ENGMANSTART2_TOGGLE#(L:A32NX_ENGMANSTART2_TOGGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_ENGMANSTART2_TOGGLE -A32NX_ENG_OUT_ACC_ALT#(L:A32NX_ENG_OUT_ACC_ALT)#Fly By Wire.A320-SDK.Unsorted.A32NX_ENG_OUT_ACC_ALT -A32NX_EVAC_CAPT_TOGGLE#(L:A32NX_EVAC_CAPT_TOGGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_EVAC_CAPT_TOGGLE -A32NX_EVAC_COMMAND_FAULT#(L:A32NX_EVAC_COMMAND_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_EVAC_COMMAND_FAULT -A32NX_EVAC_COMMAND_TOGGLE#(L:A32NX_EVAC_COMMAND_TOGGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_EVAC_COMMAND_TOGGLE -A32NX_FIRE_BUTTON_APU#(L:A32NX_FIRE_BUTTON_APU)#Fly By Wire.A320-SDK.Unsorted.A32NX_FIRE_BUTTON_APU -A32NX_FLAPS_CONF_INDEX#(L:A32NX_FLAPS_CONF_INDEX)#Fly By Wire.A320-SDK.Unsorted.A32NX_FLAPS_CONF_INDEX -A32NX_FLAPS_HANDLE_INDEX#(L:A32NX_FLAPS_HANDLE_INDEX)#Fly By Wire.A320-SDK.Unsorted.A32NX_FLAPS_HANDLE_INDEX -A32NX_FLAPS_HANDLE_PERCENT#(L:A32NX_FLAPS_HANDLE_PERCENT)#Fly By Wire.A320-SDK.Unsorted.A32NX_FLAPS_HANDLE_PERCENT -A32NX_FMGC_FLIGHT_PHASE#(L:A32NX_FMGC_FLIGHT_PHASE)#Fly By Wire.A320-SDK.Unsorted.A32NX_FMGC_FLIGHT_PHASE -A32NX_FM_LS_COURSE#(L:A32NX_FM_LS_COURSE)#Fly By Wire.A320-SDK.Unsorted.A32NX_FM_LS_COURSE -A32NX_FWC_FLIGHT_PHASE#(L:A32NX_FWC_FLIGHT_PHASE)#Fly By Wire.A320-SDK.Unsorted.A32NX_FWC_FLIGHT_PHASE -A32NX_FWC_INHIBOVRD#(L:A32NX_FWC_INHIBOVRD)#Fly By Wire.A320-SDK.Unsorted.A32NX_FWC_INHIBOVRD -A32NX_FWC_LDGMEMO#(L:A32NX_FWC_LDGMEMO)#Fly By Wire.A320-SDK.Unsorted.A32NX_FWC_LDGMEMO -A32NX_FWC_SKIP_STARTUP#(L:A32NX_FWC_SKIP_STARTUP)#Fly By Wire.A320-SDK.Unsorted.A32NX_FWC_SKIP_STARTUP -A32NX_FWC_TOMEMO#(L:A32NX_FWC_TOMEMO)#Fly By Wire.A320-SDK.Unsorted.A32NX_FWC_TOMEMO -A32NX_FWD_DOOR_CARGO_LOCKED#(L:A32NX_FWD_DOOR_CARGO_LOCKED)#Fly By Wire.A320-SDK.Unsorted.A32NX_FWD_DOOR_CARGO_LOCKED -A32NX_FWD_DOOR_CARGO_POSITION#(L:A32NX_FWD_DOOR_CARGO_POSITION)#Fly By Wire.A320-SDK.Unsorted.A32NX_FWD_DOOR_CARGO_POSITION -A32NX_HYD_BLUE_EPUMP_ACTIVE#(L:A32NX_HYD_BLUE_EPUMP_ACTIVE)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_BLUE_EPUMP_ACTIVE -A32NX_HYD_BLUE_EPUMP_LOW_PRESS#(L:A32NX_HYD_BLUE_EPUMP_LOW_PRESS)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_BLUE_EPUMP_LOW_PRESS -A32NX_HYD_BLUE_EPUMP_RPM#(L:A32NX_HYD_BLUE_EPUMP_RPM)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_BLUE_EPUMP_RPM -A32NX_HYD_BLUE_RESERVOIR_LEVEL#(L:A32NX_HYD_BLUE_RESERVOIR_LEVEL)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_BLUE_RESERVOIR_LEVEL -A32NX_HYD_BLUE_SYSTEM_1_SECTION_PRESSURE#(L:A32NX_HYD_BLUE_SYSTEM_1_SECTION_PRESSURE)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_BLUE_SYSTEM_1_SECTION_PRESSURE -A32NX_HYD_BRAKE_ALTN_ACC_PRESS#(L:A32NX_HYD_BRAKE_ALTN_ACC_PRESS)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_BRAKE_ALTN_ACC_PRESS -A32NX_HYD_BRAKE_ALTN_LEFT_PRESS#(L:A32NX_HYD_BRAKE_ALTN_LEFT_PRESS)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_BRAKE_ALTN_LEFT_PRESS -A32NX_HYD_BRAKE_ALTN_RIGHT_PRESS#(L:A32NX_HYD_BRAKE_ALTN_RIGHT_PRESS)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_BRAKE_ALTN_RIGHT_PRESS -A32NX_HYD_BRAKE_NORM_LEFT_PRESS#(L:A32NX_HYD_BRAKE_NORM_LEFT_PRESS)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_BRAKE_NORM_LEFT_PRESS -A32NX_HYD_BRAKE_NORM_RIGHT_PRESS#(L:A32NX_HYD_BRAKE_NORM_RIGHT_PRESS)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_BRAKE_NORM_RIGHT_PRESS -A32NX_HYD_GREEN_EDPUMP_ACTIVE#(L:A32NX_HYD_GREEN_EDPUMP_ACTIVE)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_GREEN_EDPUMP_ACTIVE -A32NX_HYD_GREEN_EDPUMP_LOW_PRESS#(L:A32NX_HYD_GREEN_EDPUMP_LOW_PRESS)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_GREEN_EDPUMP_LOW_PRESS -A32NX_HYD_GREEN_PUMP_1_FIRE_VALVE_OPENED#(L:A32NX_HYD_GREEN_PUMP_1_FIRE_VALVE_OPENED)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_GREEN_PUMP_1_FIRE_VALVE_OPENED -A32NX_HYD_GREEN_RESERVOIR_LEVEL#(L:A32NX_HYD_GREEN_RESERVOIR_LEVEL)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_GREEN_RESERVOIR_LEVEL -A32NX_HYD_GREEN_SYSTEM_1_SECTION_PRESSURE#(L:A32NX_HYD_GREEN_SYSTEM_1_SECTION_PRESSURE)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_GREEN_SYSTEM_1_SECTION_PRESSURE -A32NX_HYD_NW_STRG_DISC_ECAM_MEMO#(L:A32NX_HYD_NW_STRG_DISC_ECAM_MEMO)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_NW_STRG_DISC_ECAM_MEMO -A32NX_HYD_PTU_ACTIVE_L2R#(L:A32NX_HYD_PTU_ACTIVE_L2R)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_PTU_ACTIVE_L2R -A32NX_HYD_PTU_ACTIVE_R2L#(L:A32NX_HYD_PTU_ACTIVE_R2L)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_PTU_ACTIVE_R2L -A32NX_HYD_PTU_MOTOR_FLOW#(L:A32NX_HYD_PTU_MOTOR_FLOW)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_PTU_MOTOR_FLOW -A32NX_HYD_PTU_ON_ECAM_MEMO#(L:A32NX_HYD_PTU_ON_ECAM_MEMO)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_PTU_ON_ECAM_MEMO -A32NX_HYD_PTU_VALVE_OPENED#(L:A32NX_HYD_PTU_VALVE_OPENED)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_PTU_VALVE_OPENED -A32NX_HYD_RAT_RPM#(L:A32NX_HYD_RAT_RPM)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_RAT_RPM -A32NX_HYD_RAT_STOW_POSITION#(L:A32NX_HYD_RAT_STOW_POSITION)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_RAT_STOW_POSITION -A32NX_HYD_YELLOW_EDPUMP_ACTIVE#(L:A32NX_HYD_YELLOW_EDPUMP_ACTIVE)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_YELLOW_EDPUMP_ACTIVE -A32NX_HYD_YELLOW_EDPUMP_LOW_PRESS#(L:A32NX_HYD_YELLOW_EDPUMP_LOW_PRESS)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_YELLOW_EDPUMP_LOW_PRESS -A32NX_HYD_YELLOW_EPUMP_ACTIVE#(L:A32NX_HYD_YELLOW_EPUMP_ACTIVE)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_YELLOW_EPUMP_ACTIVE -A32NX_HYD_YELLOW_EPUMP_LOW_PRESS#(L:A32NX_HYD_YELLOW_EPUMP_LOW_PRESS)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_YELLOW_EPUMP_LOW_PRESS -A32NX_HYD_YELLOW_EPUMP_RPM#(L:A32NX_HYD_YELLOW_EPUMP_RPM)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_YELLOW_EPUMP_RPM -A32NX_HYD_YELLOW_PUMP_1_FIRE_VALVE_OPENED#(L:A32NX_HYD_YELLOW_PUMP_1_FIRE_VALVE_OPENED)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_YELLOW_PUMP_1_FIRE_VALVE_OPENED -A32NX_HYD_YELLOW_RESERVOIR_LEVEL#(L:A32NX_HYD_YELLOW_RESERVOIR_LEVEL)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_YELLOW_RESERVOIR_LEVEL -A32NX_HYD_YELLOW_SYSTEM_1_SECTION_PRESSURE#(L:A32NX_HYD_YELLOW_SYSTEM_1_SECTION_PRESSURE)#Fly By Wire.A320-SDK.Unsorted.A32NX_HYD_YELLOW_SYSTEM_1_SECTION_PRESSURE -A32NX_KNOB_OVHD_AIRCOND_PACKFLOW_Position#(L:A32NX_KNOB_OVHD_AIRCOND_PACKFLOW_Position)#Fly By Wire.A320-SDK.Unsorted.A32NX_KNOB_OVHD_AIRCOND_PACKFLOW_Position -A32NX_KNOB_OVHD_AIRCOND_XBLEED_Position#(L:A32NX_KNOB_OVHD_AIRCOND_XBLEED_Position)#Fly By Wire.A320-SDK.Unsorted.A32NX_KNOB_OVHD_AIRCOND_XBLEED_Position -A32NX_LEFT_BRAKE_PEDAL_INPUT#(L:A32NX_LEFT_BRAKE_PEDAL_INPUT)#Fly By Wire.A320-SDK.Unsorted.A32NX_LEFT_BRAKE_PEDAL_INPUT -A32NX_LEFT_FLAPS_ANGLE#(L:A32NX_LEFT_FLAPS_ANGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_LEFT_FLAPS_ANGLE -A32NX_LEFT_FLAPS_POSITION_PERCENT#(L:A32NX_LEFT_FLAPS_POSITION_PERCENT)#Fly By Wire.A320-SDK.Unsorted.A32NX_LEFT_FLAPS_POSITION_PERCENT -A32NX_LEFT_FLAPS_TARGET_ANGLE#(L:A32NX_LEFT_FLAPS_TARGET_ANGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_LEFT_FLAPS_TARGET_ANGLE -A32NX_LEFT_SLATS_ANGLE#(L:A32NX_LEFT_SLATS_ANGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_LEFT_SLATS_ANGLE -A32NX_LEFT_SLATS_POSITION_PERCENT#(L:A32NX_LEFT_SLATS_POSITION_PERCENT)#Fly By Wire.A320-SDK.Unsorted.A32NX_LEFT_SLATS_POSITION_PERCENT -A32NX_LEFT_SLATS_TARGET_ANGLE#(L:A32NX_LEFT_SLATS_TARGET_ANGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_LEFT_SLATS_TARGET_ANGLE -A32NX_METRIC_ALT_TOGGLE#(L:A32NX_METRIC_ALT_TOGGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_METRIC_ALT_TOGGLE -A32NX_NO_SMOKING_MEMO#(L:A32NX_NO_SMOKING_MEMO)#Fly By Wire.A320-SDK.Unsorted.A32NX_NO_SMOKING_MEMO -A32NX_OVHD_APU_MASTER_SW_PB_HAS_FAULT#(L:A32NX_OVHD_APU_MASTER_SW_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_APU_MASTER_SW_PB_HAS_FAULT -A32NX_OVHD_APU_MASTER_SW_PB_IS_ON#(L:A32NX_OVHD_APU_MASTER_SW_PB_IS_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_APU_MASTER_SW_PB_IS_ON -A32NX_OVHD_APU_START_PB_IS_AVAILABLE#(L:A32NX_OVHD_APU_START_PB_IS_AVAILABLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_APU_START_PB_IS_AVAILABLE -A32NX_OVHD_APU_START_PB_IS_ON#(L:A32NX_OVHD_APU_START_PB_IS_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_APU_START_PB_IS_ON -A32NX_OVHD_AUTOBRK_LOW_ON_IS_PRESSED#(L:A32NX_OVHD_AUTOBRK_LOW_ON_IS_PRESSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_AUTOBRK_LOW_ON_IS_PRESSED -A32NX_OVHD_AUTOBRK_MAX_ON_IS_PRESSED#(L:A32NX_OVHD_AUTOBRK_MAX_ON_IS_PRESSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_AUTOBRK_MAX_ON_IS_PRESSED -A32NX_OVHD_AUTOBRK_MED_ON_IS_PRESSED#(L:A32NX_OVHD_AUTOBRK_MED_ON_IS_PRESSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_AUTOBRK_MED_ON_IS_PRESSED -A32NX_OVHD_COCKPITDOORVIDEO_TOGGLE#(L:A32NX_OVHD_COCKPITDOORVIDEO_TOGGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_COCKPITDOORVIDEO_TOGGLE -A32NX_OVHD_ELEC_AC_ESS_FEED_PB_HAS_FAULT#(L:A32NX_OVHD_ELEC_AC_ESS_FEED_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_ELEC_AC_ESS_FEED_PB_HAS_FAULT -A32NX_OVHD_ELEC_AC_ESS_FEED_PB_IS_NORMAL#(L:A32NX_OVHD_ELEC_AC_ESS_FEED_PB_IS_NORMAL)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_ELEC_AC_ESS_FEED_PB_IS_NORMAL -A32NX_OVHD_ELEC_BAT_1_PB_HAS_FAULT#(L:A32NX_OVHD_ELEC_BAT_1_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_ELEC_BAT_1_PB_HAS_FAULT -A32NX_OVHD_ELEC_BAT_1_PB_IS_AUTO#(L:A32NX_OVHD_ELEC_BAT_1_PB_IS_AUTO)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_ELEC_BAT_1_PB_IS_AUTO -A32NX_OVHD_ELEC_BAT_2_PB_HAS_FAULT#(L:A32NX_OVHD_ELEC_BAT_2_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_ELEC_BAT_2_PB_HAS_FAULT -A32NX_OVHD_ELEC_BAT_2_PB_IS_AUTO#(L:A32NX_OVHD_ELEC_BAT_2_PB_IS_AUTO)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_ELEC_BAT_2_PB_IS_AUTO -A32NX_OVHD_ELEC_BUS_TIE_PB_PB_IS_AUTO#(L:A32NX_OVHD_ELEC_BUS_TIE_PB_PB_IS_AUTO)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_ELEC_BUS_TIE_PB_PB_IS_AUTO -A32NX_OVHD_ELEC_COMMERCIAL_PB_IS_ON#(L:A32NX_OVHD_ELEC_COMMERCIAL_PB_IS_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_ELEC_COMMERCIAL_PB_IS_ON -A32NX_OVHD_ELEC_ENG_GEN_1_PB_HAS_FAULT#(L:A32NX_OVHD_ELEC_ENG_GEN_1_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_ELEC_ENG_GEN_1_PB_HAS_FAULT -A32NX_OVHD_ELEC_ENG_GEN_2_PB_HAS_FAULT#(L:A32NX_OVHD_ELEC_ENG_GEN_2_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_ELEC_ENG_GEN_2_PB_HAS_FAULT -A32NX_OVHD_ELEC_GALY_AND_CAB_PB_HAS_FAULT#(L:A32NX_OVHD_ELEC_GALY_AND_CAB_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_ELEC_GALY_AND_CAB_PB_HAS_FAULT -A32NX_OVHD_ELEC_GALY_AND_CAB_PB_IS_AUTO#(L:A32NX_OVHD_ELEC_GALY_AND_CAB_PB_IS_AUTO)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_ELEC_GALY_AND_CAB_PB_IS_AUTO -A32NX_OVHD_ELEC_IDG_1_PB_HAS_FAULT#(L:A32NX_OVHD_ELEC_IDG_1_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_ELEC_IDG_1_PB_HAS_FAULT -A32NX_OVHD_ELEC_IDG_1_PB_IS_RELEASED#(L:A32NX_OVHD_ELEC_IDG_1_PB_IS_RELEASED)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_ELEC_IDG_1_PB_IS_RELEASED -A32NX_OVHD_ELEC_IDG_2_PB_HAS_FAULT#(L:A32NX_OVHD_ELEC_IDG_2_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_ELEC_IDG_2_PB_HAS_FAULT -A32NX_OVHD_ELEC_IDG_2_PB_IS_RELEASED#(L:A32NX_OVHD_ELEC_IDG_2_PB_IS_RELEASED)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_ELEC_IDG_2_PB_IS_RELEASED -A32NX_OVHD_EMER_ELEC_GEN_1_LINE_PB_HAS_FAULT#(L:A32NX_OVHD_EMER_ELEC_GEN_1_LINE_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_EMER_ELEC_GEN_1_LINE_PB_HAS_FAULT -A32NX_OVHD_EMER_ELEC_GEN_1_LINE_PB_IS_ON#(L:A32NX_OVHD_EMER_ELEC_GEN_1_LINE_PB_IS_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_EMER_ELEC_GEN_1_LINE_PB_IS_ON -A32NX_OVHD_EMER_ELEC_GEN_2_LINE_PB_HAS_FAULT#(L:A32NX_OVHD_EMER_ELEC_GEN_2_LINE_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_EMER_ELEC_GEN_2_LINE_PB_HAS_FAULT -A32NX_OVHD_EMER_ELEC_GEN_2_LINE_PB_IS_ON#(L:A32NX_OVHD_EMER_ELEC_GEN_2_LINE_PB_IS_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_EMER_ELEC_GEN_2_LINE_PB_IS_ON -A32NX_OVHD_EMER_ELEC_RAT_AND_EMER_GEN_HAS_FAULT#(L:A32NX_OVHD_EMER_ELEC_RAT_AND_EMER_GEN_HAS_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_EMER_ELEC_RAT_AND_EMER_GEN_HAS_FAULT -A32NX_OVHD_EMER_ELEC_RAT_AND_EMER_GEN_IS_PRESSED#(L:A32NX_OVHD_EMER_ELEC_RAT_AND_EMER_GEN_IS_PRESSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_EMER_ELEC_RAT_AND_EMER_GEN_IS_PRESSED -A32NX_OVHD_HYD_ENG_1_PUMP_PB_HAS_FAULT#(L:A32NX_OVHD_HYD_ENG_1_PUMP_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_HYD_ENG_1_PUMP_PB_HAS_FAULT -A32NX_OVHD_HYD_ENG_1_PUMP_PB_IS_AUTO#(L:A32NX_OVHD_HYD_ENG_1_PUMP_PB_IS_AUTO)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_HYD_ENG_1_PUMP_PB_IS_AUTO -A32NX_OVHD_HYD_ENG_2_PUMP_PB_HAS_FAULT#(L:A32NX_OVHD_HYD_ENG_2_PUMP_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_HYD_ENG_2_PUMP_PB_HAS_FAULT -A32NX_OVHD_HYD_ENG_2_PUMP_PB_IS_AUTO#(L:A32NX_OVHD_HYD_ENG_2_PUMP_PB_IS_AUTO)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_HYD_ENG_2_PUMP_PB_IS_AUTO -A32NX_OVHD_HYD_EPUMPB_PB_HAS_FAULT#(L:A32NX_OVHD_HYD_EPUMPB_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_HYD_EPUMPB_PB_HAS_FAULT -A32NX_OVHD_HYD_EPUMPB_PB_IS_AUTO#(L:A32NX_OVHD_HYD_EPUMPB_PB_IS_AUTO)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_HYD_EPUMPB_PB_IS_AUTO -A32NX_OVHD_HYD_EPUMPY_OVRD_PB_IS_ON#(L:A32NX_OVHD_HYD_EPUMPY_OVRD_PB_IS_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_HYD_EPUMPY_OVRD_PB_IS_ON -A32NX_OVHD_HYD_EPUMPY_PB_HAS_FAULT#(L:A32NX_OVHD_HYD_EPUMPY_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_HYD_EPUMPY_PB_HAS_FAULT -A32NX_OVHD_HYD_EPUMPY_PB_IS_AUTO#(L:A32NX_OVHD_HYD_EPUMPY_PB_IS_AUTO)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_HYD_EPUMPY_PB_IS_AUTO -A32NX_OVHD_HYD_LEAK_MEASUREMENT_B#(L:A32NX_OVHD_HYD_LEAK_MEASUREMENT_B)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_HYD_LEAK_MEASUREMENT_B -A32NX_OVHD_HYD_LEAK_MEASUREMENT_B_LOCK#(L:A32NX_OVHD_HYD_LEAK_MEASUREMENT_B_LOCK)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_HYD_LEAK_MEASUREMENT_B_LOCK -A32NX_OVHD_HYD_LEAK_MEASUREMENT_G#(L:A32NX_OVHD_HYD_LEAK_MEASUREMENT_G)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_HYD_LEAK_MEASUREMENT_G -A32NX_OVHD_HYD_LEAK_MEASUREMENT_G_LOCK#(L:A32NX_OVHD_HYD_LEAK_MEASUREMENT_G_LOCK)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_HYD_LEAK_MEASUREMENT_G_LOCK -A32NX_OVHD_HYD_LEAK_MEASUREMENT_Y#(L:A32NX_OVHD_HYD_LEAK_MEASUREMENT_Y)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_HYD_LEAK_MEASUREMENT_Y -A32NX_OVHD_HYD_LEAK_MEASUREMENT_Y_LOCK#(L:A32NX_OVHD_HYD_LEAK_MEASUREMENT_Y_LOCK)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_HYD_LEAK_MEASUREMENT_Y_LOCK -A32NX_OVHD_HYD_PTU_PB_HAS_FAULT#(L:A32NX_OVHD_HYD_PTU_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_HYD_PTU_PB_HAS_FAULT -A32NX_OVHD_HYD_PTU_PB_IS_AUTO#(L:A32NX_OVHD_HYD_PTU_PB_IS_AUTO)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_HYD_PTU_PB_IS_AUTO -A32NX_OVHD_HYD_RAT_MAN_ON_IS_PRESSED#(L:A32NX_OVHD_HYD_RAT_MAN_ON_IS_PRESSED)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_HYD_RAT_MAN_ON_IS_PRESSED -A32NX_OVHD_PNEU_APU_BLEED_PB_HAS_FAULT#(L:A32NX_OVHD_PNEU_APU_BLEED_PB_HAS_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_PNEU_APU_BLEED_PB_HAS_FAULT -A32NX_OVHD_PNEU_APU_BLEED_PB_IS_ON#(L:A32NX_OVHD_PNEU_APU_BLEED_PB_IS_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_OVHD_PNEU_APU_BLEED_PB_IS_ON -A32NX_OXYGEN_MASKS_DEPLOYED#(L:A32NX_OXYGEN_MASKS_DEPLOYED)#Fly By Wire.A320-SDK.Unsorted.A32NX_OXYGEN_MASKS_DEPLOYED -A32NX_OXYGEN_PASSENGER_LIGHT_ON#(L:A32NX_OXYGEN_PASSENGER_LIGHT_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_OXYGEN_PASSENGER_LIGHT_ON -A32NX_OXYGEN_TMR_RESET#(L:A32NX_OXYGEN_TMR_RESET)#Fly By Wire.A320-SDK.Unsorted.A32NX_OXYGEN_TMR_RESET -A32NX_OXYGEN_TMR_RESET_FAULT#(L:A32NX_OXYGEN_TMR_RESET_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_OXYGEN_TMR_RESET_FAULT -A32NX_PARK_BRAKE_LEVER_POS#(L:A32NX_PARK_BRAKE_LEVER_POS)#Fly By Wire.A320-SDK.Unsorted.A32NX_PARK_BRAKE_LEVER_POS -A32NX_PERFORMANCE_WARNING_ACTIVE#(L:A32NX_PERFORMANCE_WARNING_ACTIVE)#Fly By Wire.A320-SDK.Unsorted.A32NX_PERFORMANCE_WARNING_ACTIVE -A32NX_PITOT_HEAT_AUTO#(L:A32NX_PITOT_HEAT_AUTO)#Fly By Wire.A320-SDK.Unsorted.A32NX_PITOT_HEAT_AUTO -A32NX_RADAR_GCS_AUTO#(L:A32NX_RADAR_GCS_AUTO)#Fly By Wire.A320-SDK.Unsorted.A32NX_RADAR_GCS_AUTO -A32NX_RADAR_MULTISCAN_AUTO#(L:A32NX_RADAR_MULTISCAN_AUTO)#Fly By Wire.A320-SDK.Unsorted.A32NX_RADAR_MULTISCAN_AUTO -A32NX_RAIN_REPELLENT_LEFT_ON#(L:A32NX_RAIN_REPELLENT_LEFT_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_RAIN_REPELLENT_LEFT_ON -A32NX_RAIN_REPELLENT_RIGHT_ON#(L:A32NX_RAIN_REPELLENT_RIGHT_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_RAIN_REPELLENT_RIGHT_ON -A32NX_RCDR_GROUND_CONTROL_ON#(L:A32NX_RCDR_GROUND_CONTROL_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_RCDR_GROUND_CONTROL_ON -A32NX_RCDR_TEST#(L:A32NX_RCDR_TEST)#Fly By Wire.A320-SDK.Unsorted.A32NX_RCDR_TEST -A32NX_REPORTED_BRAKE_TEMPERATURE_1#(L:A32NX_REPORTED_BRAKE_TEMPERATURE_1)#Fly By Wire.A320-SDK.Unsorted.A32NX_REPORTED_BRAKE_TEMPERATURE_1 -A32NX_REPORTED_BRAKE_TEMPERATURE_2#(L:A32NX_REPORTED_BRAKE_TEMPERATURE_2)#Fly By Wire.A320-SDK.Unsorted.A32NX_REPORTED_BRAKE_TEMPERATURE_2 -A32NX_REPORTED_BRAKE_TEMPERATURE_3#(L:A32NX_REPORTED_BRAKE_TEMPERATURE_3)#Fly By Wire.A320-SDK.Unsorted.A32NX_REPORTED_BRAKE_TEMPERATURE_3 -A32NX_REPORTED_BRAKE_TEMPERATURE_4#(L:A32NX_REPORTED_BRAKE_TEMPERATURE_4)#Fly By Wire.A320-SDK.Unsorted.A32NX_REPORTED_BRAKE_TEMPERATURE_4 -A32NX_RIGHT_BRAKE_PEDAL_INPUT#(L:A32NX_RIGHT_BRAKE_PEDAL_INPUT)#Fly By Wire.A320-SDK.Unsorted.A32NX_RIGHT_BRAKE_PEDAL_INPUT -A32NX_RIGHT_FLAPS_ANGLE#(L:A32NX_RIGHT_FLAPS_ANGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_RIGHT_FLAPS_ANGLE -A32NX_RIGHT_FLAPS_POSITION_PERCENT#(L:A32NX_RIGHT_FLAPS_POSITION_PERCENT)#Fly By Wire.A320-SDK.Unsorted.A32NX_RIGHT_FLAPS_POSITION_PERCENT -A32NX_RIGHT_FLAPS_TARGET_ANGLE#(L:A32NX_RIGHT_FLAPS_TARGET_ANGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_RIGHT_FLAPS_TARGET_ANGLE -A32NX_RIGHT_SLATS_ANGLE#(L:A32NX_RIGHT_SLATS_ANGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_RIGHT_SLATS_ANGLE -A32NX_RIGHT_SLATS_POSITION_PERCENT#(L:A32NX_RIGHT_SLATS_POSITION_PERCENT)#Fly By Wire.A320-SDK.Unsorted.A32NX_RIGHT_SLATS_POSITION_PERCENT -A32NX_RIGHT_SLATS_TARGET_ANGLE#(L:A32NX_RIGHT_SLATS_TARGET_ANGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_RIGHT_SLATS_TARGET_ANGLE -A32NX_RMP_L_SELECTED_MODE#(L:A32NX_RMP_L_SELECTED_MODE)#Fly By Wire.A320-SDK.Unsorted.A32NX_RMP_L_SELECTED_MODE -A32NX_RMP_L_TOGGLE_SWITCH#(L:A32NX_RMP_L_TOGGLE_SWITCH)#Fly By Wire.A320-SDK.Unsorted.A32NX_RMP_L_TOGGLE_SWITCH -A32NX_RMP_L_VHF2_STANDBY#(L:A32NX_RMP_L_VHF2_STANDBY)#Fly By Wire.A320-SDK.Unsorted.A32NX_RMP_L_VHF2_STANDBY -A32NX_RMP_L_VHF3_STANDBY#(L:A32NX_RMP_L_VHF3_STANDBY)#Fly By Wire.A320-SDK.Unsorted.A32NX_RMP_L_VHF3_STANDBY -A32NX_RMP_R_SELECTED_MODE#(L:A32NX_RMP_R_SELECTED_MODE)#Fly By Wire.A320-SDK.Unsorted.A32NX_RMP_R_SELECTED_MODE -A32NX_RMP_R_TOGGLE_SWITCH#(L:A32NX_RMP_R_TOGGLE_SWITCH)#Fly By Wire.A320-SDK.Unsorted.A32NX_RMP_R_TOGGLE_SWITCH -A32NX_RMP_R_VHF1_STANDBY#(L:A32NX_RMP_R_VHF1_STANDBY)#Fly By Wire.A320-SDK.Unsorted.A32NX_RMP_R_VHF1_STANDBY -A32NX_RMP_R_VHF3_STANDBY#(L:A32NX_RMP_R_VHF3_STANDBY)#Fly By Wire.A320-SDK.Unsorted.A32NX_RMP_R_VHF3_STANDBY -A32NX_SLIDES_ARMED#(L:A32NX_SLIDES_ARMED)#Fly By Wire.A320-SDK.Unsorted.A32NX_SLIDES_ARMED -A32NX_SPEEDS_ALPHA_MAX#(L:A32NX_SPEEDS_ALPHA_MAX)#Fly By Wire.A320-SDK.Unsorted.A32NX_SPEEDS_ALPHA_MAX -A32NX_SPEEDS_ALPHA_PROTECTION#(L:A32NX_SPEEDS_ALPHA_PROTECTION)#Fly By Wire.A320-SDK.Unsorted.A32NX_SPEEDS_ALPHA_PROTECTION -A32NX_SPOILERS_ARMED#(L:A32NX_SPOILERS_ARMED)#Fly By Wire.A320-SDK.Unsorted.A32NX_SPOILERS_ARMED -A32NX_SPOILERS_GROUND_SPOILERS_ACTIVE#(L:A32NX_SPOILERS_GROUND_SPOILERS_ACTIVE)#Fly By Wire.A320-SDK.Unsorted.A32NX_SPOILERS_GROUND_SPOILERS_ACTIVE -A32NX_SPOILERS_HANDLE_POSITION#(L:A32NX_SPOILERS_HANDLE_POSITION)#Fly By Wire.A320-SDK.Unsorted.A32NX_SPOILERS_HANDLE_POSITION -A32NX_SVGEINT_OVRD_ON#(L:A32NX_SVGEINT_OVRD_ON)#Fly By Wire.A320-SDK.Unsorted.A32NX_SVGEINT_OVRD_ON -A32NX_TO_CONFIG_FLAPS#(L:A32NX_TO_CONFIG_FLAPS)#Fly By Wire.A320-SDK.Unsorted.A32NX_TO_CONFIG_FLAPS -A32NX_TO_CONFIG_FLAPS_ENTERED#(L:A32NX_TO_CONFIG_FLAPS_ENTERED)#Fly By Wire.A320-SDK.Unsorted.A32NX_TO_CONFIG_FLAPS_ENTERED -A32NX_TO_CONFIG_THS#(L:A32NX_TO_CONFIG_THS)#Fly By Wire.A320-SDK.Unsorted.A32NX_TO_CONFIG_THS -A32NX_TO_CONFIG_THS_ENTERED#(L:A32NX_TO_CONFIG_THS_ENTERED)#Fly By Wire.A320-SDK.Unsorted.A32NX_TO_CONFIG_THS_ENTERED -A32NX_TRK_FPA_MODE_ACTIVE#(L:A32NX_TRK_FPA_MODE_ACTIVE)#Fly By Wire.A320-SDK.Unsorted.A32NX_TRK_FPA_MODE_ACTIVE -A32NX_VENTILATION_BLOWER_FAULT#(L:A32NX_VENTILATION_BLOWER_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_VENTILATION_BLOWER_FAULT -A32NX_VENTILATION_BLOWER_TOGGLE#(L:A32NX_VENTILATION_BLOWER_TOGGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_VENTILATION_BLOWER_TOGGLE -A32NX_VENTILATION_CABFANS_TOGGLE#(L:A32NX_VENTILATION_CABFANS_TOGGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_VENTILATION_CABFANS_TOGGLE -A32NX_VENTILATION_EXTRACT_FAULT#(L:A32NX_VENTILATION_EXTRACT_FAULT)#Fly By Wire.A320-SDK.Unsorted.A32NX_VENTILATION_EXTRACT_FAULT -A32NX_VENTILATION_EXTRACT_TOGGLE#(L:A32NX_VENTILATION_EXTRACT_TOGGLE)#Fly By Wire.A320-SDK.Unsorted.A32NX_VENTILATION_EXTRACT_TOGGLE -A32NX_VSPEEDS_F#(L:A32NX_VSPEEDS_F)#Fly By Wire.A320-SDK.Unsorted.A32NX_VSPEEDS_F -A32NX_VSPEEDS_GD#(L:A32NX_VSPEEDS_GD)#Fly By Wire.A320-SDK.Unsorted.A32NX_VSPEEDS_GD -A32NX_VSPEEDS_LANDING_CONF3#(L:A32NX_VSPEEDS_LANDING_CONF3)#Fly By Wire.A320-SDK.Unsorted.A32NX_VSPEEDS_LANDING_CONF3 -A32NX_VSPEEDS_S#(L:A32NX_VSPEEDS_S)#Fly By Wire.A320-SDK.Unsorted.A32NX_VSPEEDS_S -A32NX_VSPEEDS_TO_CONF#(L:A32NX_VSPEEDS_TO_CONF)#Fly By Wire.A320-SDK.Unsorted.A32NX_VSPEEDS_TO_CONF -A32NX_VSPEEDS_V2#(L:A32NX_VSPEEDS_V2)#Fly By Wire.A320-SDK.Unsorted.A32NX_VSPEEDS_V2 -A32NX_VSPEEDS_VAPP#(L:A32NX_VSPEEDS_VAPP)#Fly By Wire.A320-SDK.Unsorted.A32NX_VSPEEDS_VAPP -A32NX_VSPEEDS_VLS#(L:A32NX_VSPEEDS_VLS)#Fly By Wire.A320-SDK.Unsorted.A32NX_VSPEEDS_VLS -A32NX_VSPEEDS_VLS_APP#(L:A32NX_VSPEEDS_VLS_APP)#Fly By Wire.A320-SDK.Unsorted.A32NX_VSPEEDS_VLS_APP -A32NX_VSPEEDS_VS#(L:A32NX_VSPEEDS_VS)#Fly By Wire.A320-SDK.Unsorted.A32NX_VSPEEDS_VS -PUSH_DOORPANEL_VIDEO#(L:PUSH_DOORPANEL_VIDEO)#Fly By Wire.A320-SDK.Unsorted.PUSH_DOORPANEL_VIDEO -PUSH_OVHD_EVAC_HORN#(L:PUSH_OVHD_EVAC_HORN)#Fly By Wire.A320-SDK.Unsorted.PUSH_OVHD_EVAC_HORN -XMLVAR_ALT_MODE_REQUESTED#(L:XMLVAR_ALT_MODE_REQUESTED)#Fly By Wire.A320-SDK.Unsorted.XMLVAR_ALT_MODE_REQUESTED -XMLVAR_Auto#(L:XMLVAR_Auto)#Fly By Wire.A320-SDK.Unsorted.XMLVAR_Auto -Fly By Wire/A320/Air Condition / Pressurization#GROUP -(L:A32NX_OVHD_PNEU_APU_BLEED_PB_IS_ON, Bool)#(L:A32NX_OVHD_PNEU_APU_BLEED_PB_IS_ON, Bool)#Fly By Wire.A320.Air Condition / Pressurization.(L:A32NX_OVHD_PNEU_APU_BLEED_PB_IS_ON, Bool) -(L:XMLVAR_Momentary_PUSH_OVHD_AIRCOND_ENG1BLEED_Pressed)#(L:XMLVAR_Momentary_PUSH_OVHD_AIRCOND_ENG1BLEED_Pressed)#Fly By Wire.A320.Air Condition / Pressurization.(L:XMLVAR_Momentary_PUSH_OVHD_AIRCOND_ENG1BLEED_Pressed) -(L:XMLVAR_Momentary_PUSH_OVHD_AIRCOND_ENG2BLEED_Pressed)#(L:XMLVAR_Momentary_PUSH_OVHD_AIRCOND_ENG2BLEED_Pressed)#Fly By Wire.A320.Air Condition / Pressurization.(L:XMLVAR_Momentary_PUSH_OVHD_AIRCOND_ENG2BLEED_Pressed) -Fly By Wire/A320/Autopilot#GROUP -(A:AUTOPILOT AIRSPEED HOLD VAR, knot)#(A:AUTOPILOT AIRSPEED HOLD VAR, knot)#Fly By Wire.A320.Autopilot.(A:AUTOPILOT AIRSPEED HOLD VAR, knot) -(A:AUTOPILOT ALTITUDE LOCK VAR:3, Feet)#(A:AUTOPILOT ALTITUDE LOCK VAR:3, Feet)#Fly By Wire.A320.Autopilot.(A:AUTOPILOT ALTITUDE LOCK VAR:3, Feet) -(A:AUTOPILOT ALTITUDE SLOT INDEX, Number)#(A:AUTOPILOT ALTITUDE SLOT INDEX, Number)#Fly By Wire.A320.Autopilot.(A:AUTOPILOT ALTITUDE SLOT INDEX, Number) -(A:AUTOPILOT HEADING SLOT INDEX, Number)#(A:AUTOPILOT HEADING SLOT INDEX, Number)#Fly By Wire.A320.Autopilot.(A:AUTOPILOT HEADING SLOT INDEX, Number) -(A:AUTOPILOT MACH HOLD VAR, Number) 100 * near#(A:AUTOPILOT MACH HOLD VAR, Number) 100 * near#Fly By Wire.A320.Autopilot.(A:AUTOPILOT MACH HOLD VAR, Number) 100 * near -(A:AUTOPILOT SPEED SLOT INDEX, Number)#(A:AUTOPILOT SPEED SLOT INDEX, Number)#Fly By Wire.A320.Autopilot.(A:AUTOPILOT SPEED SLOT INDEX, Number) -(A:AUTOPILOT VS SLOT INDEX. Number)#(A:AUTOPILOT VS SLOT INDEX. Number)#Fly By Wire.A320.Autopilot.(A:AUTOPILOT VS SLOT INDEX. Number) -(L:A32NX_AUTOPILOT_1_ACTIVE)#(L:A32NX_AUTOPILOT_1_ACTIVE)#Fly By Wire.A320.Autopilot.(L:A32NX_AUTOPILOT_1_ACTIVE) -(L:A32NX_AUTOPILOT_2_ACTIVE)#(L:A32NX_AUTOPILOT_2_ACTIVE)#Fly By Wire.A320.Autopilot.(L:A32NX_AUTOPILOT_2_ACTIVE) -(L:A32NX_AUTOPILOT_APPR_MODE)#(L:A32NX_AUTOPILOT_APPR_MODE)#Fly By Wire.A320.Autopilot.(L:A32NX_AUTOPILOT_APPR_MODE) -(L:A32NX_AUTOPILOT_FPA_SELECTED) 10 * near#(L:A32NX_AUTOPILOT_FPA_SELECTED) 10 * near#Fly By Wire.A320.Autopilot.(L:A32NX_AUTOPILOT_FPA_SELECTED) 10 * near -(L:A32NX_AUTOPILOT_HEADING_SELECTED)#(L:A32NX_AUTOPILOT_HEADING_SELECTED)#Fly By Wire.A320.Autopilot.(L:A32NX_AUTOPILOT_HEADING_SELECTED) -(L:A32NX_AUTOPILOT_LOC_MODE)#(L:A32NX_AUTOPILOT_LOC_MODE)#Fly By Wire.A320.Autopilot.(L:A32NX_AUTOPILOT_LOC_MODE) -(L:A32NX_AUTOPILOT_VS_SELECTED)#(L:A32NX_AUTOPILOT_VS_SELECTED)#Fly By Wire.A320.Autopilot.(L:A32NX_AUTOPILOT_VS_SELECTED) -(L:A32NX_AUTOTHRUST_STATUS)#(L:A32NX_AUTOTHRUST_STATUS)#Fly By Wire.A320.Autopilot.(L:A32NX_AUTOTHRUST_STATUS) -(L:A32NX_FCU_APPR_MODE_ACTIVE)#(L:A32NX_FCU_APPR_MODE_ACTIVE)#Fly By Wire.A320.Autopilot.(L:A32NX_FCU_APPR_MODE_ACTIVE) -(L:A32NX_FCU_LOC_MODE_ACTIVE)#(L:A32NX_FCU_LOC_MODE_ACTIVE)#Fly By Wire.A320.Autopilot.(L:A32NX_FCU_LOC_MODE_ACTIVE) -(L:A32NX_FMA_EXPEDITE_MODE)#(L:A32NX_FMA_EXPEDITE_MODE)#Fly By Wire.A320.Autopilot.(L:A32NX_FMA_EXPEDITE_MODE) -(L:XMLVAR_Autopilot_1_Status)#(L:XMLVAR_Autopilot_1_Status)#Fly By Wire.A320.Autopilot.(L:XMLVAR_Autopilot_1_Status) -(L:XMLVAR_Autopilot_2_Status)#(L:XMLVAR_Autopilot_2_Status)#Fly By Wire.A320.Autopilot.(L:XMLVAR_Autopilot_2_Status) -AUTOPILOT SPEED SELECTED#(L:A32NX_AUTOPILOT_SPEED_SELECTED, Number)#Fly By Wire.A320.Autopilot.AUTOPILOT SPEED SELECTED -FCU MACH Value Selected & Pre-Selected Modes#(L:A32NX_AUTOPILOT_SPEED_SELECTED, Number) 100 * near#Fly By Wire.A320.Autopilot.FCU MACH Value Selected & Pre-Selected Modes -XMLVAR_AUTOPILOT_ALTITUDE_INCREMENT#(L:XMLVAR_AUTOPILOT_ALTITUDE_INCREMENT)#Fly By Wire.A320.Autopilot.XMLVAR_AUTOPILOT_ALTITUDE_INCREMENT -Fly By Wire/A320/ECAM#GROUP -A32NX_ECAM_Current_Page_Index#(L:A32NX_ECAM_SD_CURRENT_PAGE_INDEX)#Fly By Wire.A320.ECAM.A32NX_ECAM_Current_Page_Index -Fly By Wire/A320/EFIS#GROUP -(A:AUTOPILOT FLIGHT DIRECTOR ACTIVE)#(A:AUTOPILOT FLIGHT DIRECTOR ACTIVE)#Fly By Wire.A320.EFIS.(A:AUTOPILOT FLIGHT DIRECTOR ACTIVE) -(A:AUTOPILOT FLIGHT DIRECTOR ACTIVE:1, Bool)#(A:AUTOPILOT FLIGHT DIRECTOR ACTIVE:1, Bool)#Fly By Wire.A320.EFIS.(A:AUTOPILOT FLIGHT DIRECTOR ACTIVE:1, Bool) -(A:KOHLSMAN SETTING HG, Number) 100 / near#(A:KOHLSMAN SETTING HG, Number) 100 / near#Fly By Wire.A320.EFIS.(A:KOHLSMAN SETTING HG, Number) 100 / near -(A:KOHLSMAN SETTING HG, Number) 33.866 / near#(A:KOHLSMAN SETTING HG, Number) 33.866 / near#Fly By Wire.A320.EFIS.(A:KOHLSMAN SETTING HG, Number) 33.866 / near -(L:BTN_ARPT_1_FILTER_ACTIVE)#(L:BTN_ARPT_1_FILTER_ACTIVE)#Fly By Wire.A320.EFIS.(L:BTN_ARPT_1_FILTER_ACTIVE) -(L:BTN_ARPT_2_FILTER_ACTIVE)#(L:BTN_ARPT_2_FILTER_ACTIVE)#Fly By Wire.A320.EFIS.(L:BTN_ARPT_2_FILTER_ACTIVE) -(L:BTN_CSTR_1_FILTER_ACTIVE)#(L:BTN_CSTR_1_FILTER_ACTIVE)#Fly By Wire.A320.EFIS.(L:BTN_CSTR_1_FILTER_ACTIVE) -(L:BTN_CSTR_2_FILTER_ACTIVE)#(L:BTN_CSTR_2_FILTER_ACTIVE)#Fly By Wire.A320.EFIS.(L:BTN_CSTR_2_FILTER_ACTIVE) -(L:BTN_LS_1_FILTER_ACTIVE)#(L:BTN_LS_1_FILTER_ACTIVE)#Fly By Wire.A320.EFIS.(L:BTN_LS_1_FILTER_ACTIVE) -(L:BTN_LS_2_FILTER_ACTIVE)#(L:BTN_LS_2_FILTER_ACTIVE)#Fly By Wire.A320.EFIS.(L:BTN_LS_2_FILTER_ACTIVE) -(L:BTN_NDB_1_FILTER_ACTIVE)#(L:BTN_NDB_1_FILTER_ACTIVE)#Fly By Wire.A320.EFIS.(L:BTN_NDB_1_FILTER_ACTIVE) -(L:BTN_NDB_2_FILTER_ACTIVE)#(L:BTN_NDB_2_FILTER_ACTIVE)#Fly By Wire.A320.EFIS.(L:BTN_NDB_2_FILTER_ACTIVE) -(L:BTN_VORD_1_FILTER_ACTIVE)#(L:BTN_VORD_1_FILTER_ACTIVE)#Fly By Wire.A320.EFIS.(L:BTN_VORD_1_FILTER_ACTIVE) -(L:BTN_VORD_2_FILTER_ACTIVE)#(L:BTN_VORD_2_FILTER_ACTIVE)#Fly By Wire.A320.EFIS.(L:BTN_VORD_2_FILTER_ACTIVE) -(L:BTN_WPT_1_FILTER_ACTIVE)#(L:BTN_WPT_1_FILTER_ACTIVE)#Fly By Wire.A320.EFIS.(L:BTN_WPT_1_FILTER_ACTIVE) -(L:BTN_WPT_2_FILTER_ACTIVE)#(L:BTN_WPT_2_FILTER_ACTIVE)#Fly By Wire.A320.EFIS.(L:BTN_WPT_2_FILTER_ACTIVE) -(L:XMLVAR_Baro1_Mode)#(L:XMLVAR_Baro1_Mode)#Fly By Wire.A320.EFIS.(L:XMLVAR_Baro1_Mode) -(L:XMLVAR_Baro2_Mode)#(L:XMLVAR_Baro2_Mode)#Fly By Wire.A320.EFIS.(L:XMLVAR_Baro2_Mode) -(L:XMLVAR_Baro_Selector_HPA_1)#(L:XMLVAR_Baro_Selector_HPA_1)#Fly By Wire.A320.EFIS.(L:XMLVAR_Baro_Selector_HPA_1) -Fly By Wire/A320/Electrical#GROUP -(A:EXTERNAL POWER AVAILABLE:1, bool) (A:EXTERNAL POWER ON:1,bool) ! and if{ 1 } els{ 0 }#(A:EXTERNAL POWER AVAILABLE:1, bool) (A:EXTERNAL POWER ON:1,bool) ! and if{ 1 } els{ 0 }#Fly By Wire.A320.Electrical.(A:EXTERNAL POWER AVAILABLE:1, bool) (A:EXTERNAL POWER ON:1,bool) ! and if{ 1 } els{ 0 } -(A:EXTERNAL POWER ON:1, Bool)#(A:EXTERNAL POWER ON:1, Bool)#Fly By Wire.A320.Electrical.(A:EXTERNAL POWER ON:1, Bool) -(L:A32NX_OVHD_APU_START_PB_IS_AVAILABLE)#(L:A32NX_OVHD_APU_START_PB_IS_AVAILABLE)#Fly By Wire.A320.Electrical.(L:A32NX_OVHD_APU_START_PB_IS_AVAILABLE) -(L:A32NX_OVHD_APU_START_PB_IS_ON)#(L:A32NX_OVHD_APU_START_PB_IS_ON)#Fly By Wire.A320.Electrical.(L:A32NX_OVHD_APU_START_PB_IS_ON) -(L:XMLVAR_Momentary_PUSH_OVHD_ELEC_APUGEN_Pressed)#(L:XMLVAR_Momentary_PUSH_OVHD_ELEC_APUGEN_Pressed)#Fly By Wire.A320.Electrical.(L:XMLVAR_Momentary_PUSH_OVHD_ELEC_APUGEN_Pressed) -(L:XMLVAR_Momentary_PUSH_OVHD_MASTERSW_Pressed)#(L:XMLVAR_Momentary_PUSH_OVHD_MASTERSW_Pressed)#Fly By Wire.A320.Electrical.(L:XMLVAR_Momentary_PUSH_OVHD_MASTERSW_Pressed) -Fly By Wire/A320/Gear#GROUP -A32NX_BRAKE_FAN_ON#(L:A32NX_BRAKE_FAN, Bool)#Fly By Wire.A320.Gear.A32NX_BRAKE_FAN_ON -Autobrake_Level#(L:A32NX_AUTOBRAKES_ARMED_MODE, number)#Fly By Wire.A320.Gear.Autobrake_Level -Fly By Wire/A320/Radio#GROUP -(A:COM ACTIVE FREQUENCY:1, KHz) near#(A:COM ACTIVE FREQUENCY:1, KHz) near#Fly By Wire.A320.Radio.(A:COM ACTIVE FREQUENCY:1, KHz) near -(A:COM STANDBY FREQUENCY:1, KHz) near#(A:COM STANDBY FREQUENCY:1, KHz) near#Fly By Wire.A320.Radio.(A:COM STANDBY FREQUENCY:1, KHz) near -FlyInside/Bell 47 G/Electrical#GROUP -BATTERY_STATUS_ON_OR_OFF#(L:Aircraft.Electric.Battery.On)#FlyInside.Bell 47 G.Electrical.BATTERY_STATUS_ON_OR_OFF -BATTERY_VOLTAGE_DISPLAY#(A:ELECTRICAL BATTERY VOLTAGE, Volts)#FlyInside.Bell 47 G.Electrical.BATTERY_VOLTAGE_DISPLAY -INSTRUMENTS_POWER_LED_ON_OFF#(L:Aircraft.Systems.Instruments.Enabled)#FlyInside.Bell 47 G.Electrical.INSTRUMENTS_POWER_LED_ON_OFF -STARTER_COLLECTIVE_SWITCH_LED_ON_OFF#(L:Aircraft.Systems.Starter.Switch)#FlyInside.Bell 47 G.Electrical.STARTER_COLLECTIVE_SWITCH_LED_ON_OFF -FlyInside/Bell 47 G/Engines#GROUP -CYLINDERS_TEMPERATURE_DEGREES_DISPLAY#(L:Aircraft.Gauges.CylTemp)#FlyInside.Bell 47 G.Engines.CYLINDERS_TEMPERATURE_DEGREES_DISPLAY -ENGINE_RPM_PERC_DISPLAY#(L:Aircraft.Engine.1.Turbine.N2)#FlyInside.Bell 47 G.Engines.ENGINE_RPM_PERC_DISPLAY -MANIF_PRESS_DISPLAY#(A:RECIP ENG MANIFOLD PRESSURE:1, inHg)#FlyInside.Bell 47 G.Engines.MANIF_PRESS_DISPLAY -FlyInside/Bell 47 G/Environment#GROUP -LOCAL_AIR_PRESSURE_DISPLAY#(L:Aircraft.Instruments.Altimeter.Kohlsman.HG) 100 *#FlyInside.Bell 47 G.Environment.LOCAL_AIR_PRESSURE_DISPLAY -OUTSIDE_TEMP_DISPLAY#(A:AMBIENT TEMPERATURE,Celsius) 10 *#FlyInside.Bell 47 G.Environment.OUTSIDE_TEMP_DISPLAY -FlyInside/Bell 47 G/Flight Instrumentation#GROUP -AIRSPEED_INDICATED_MPH_DISPLAY#(L:Aircraft.Position.Airspeed.Indicated, Mph)#FlyInside.Bell 47 G.Flight Instrumentation.AIRSPEED_INDICATED_MPH_DISPLAY -ALTITUDE_INDICATED_FEET_DISPLAY#(L:Aircraft.Position.Altitude.Indicated)#FlyInside.Bell 47 G.Flight Instrumentation.ALTITUDE_INDICATED_FEET_DISPLAY -HEADING_MAGNETIC_DEGREES_DISPLAY#(L:Aircraft.Position.Heading.Magnetic.Value) 57.2957795131 * flr#FlyInside.Bell 47 G.Flight Instrumentation.HEADING_MAGNETIC_DEGREES_DISPLAY -VERTICAL_SPEED_FEET_MINUTE_DISPLAY#(L:Aircraft.Position.VerticalSpeed.value, Feet/Minute) 100 /#FlyInside.Bell 47 G.Flight Instrumentation.VERTICAL_SPEED_FEET_MINUTE_DISPLAY -FlyInside/Bell 47 G/Fuel#GROUP -FUEL_TOTAL_QUANTITY_DISPLAY#(L:Aircraft.Fuel.Total.Quantity) 10 *#FlyInside.Bell 47 G.Fuel.FUEL_TOTAL_QUANTITY_DISPLAY -FlyInside/Bell 47 G/Lights#GROUP -CABIN_LIGHTS_LED#(L:Aircraft.Lights.Strobe.On)#FlyInside.Bell 47 G.Lights.CABIN_LIGHTS_LED -LANDING_LIGHT_LED_ON_OFF#(L:Aircraft.Lights.Landing.On)#FlyInside.Bell 47 G.Lights.LANDING_LIGHT_LED_ON_OFF -NAVIGATION_LIGHTS_LED_ON_OFF#(L:Aircraft.Lights.Nav.On)#FlyInside.Bell 47 G.Lights.NAVIGATION_LIGHTS_LED_ON_OFF -STROBE_LIGHT_LED_ON_OFF#(L:Aircraft.Lights.Strobe.On)#FlyInside.Bell 47 G.Lights.STROBE_LIGHT_LED_ON_OFF -TAIL_BEACON_LIGHT_LED_ON_OFF#(L:Aircraft.Lights.Beacon.On)#FlyInside.Bell 47 G.Lights.TAIL_BEACON_LIGHT_LED_ON_OFF -FlyInside/Bell 47 G/Radio#GROUP -COM_RADIO_ACTIVE_FREQUENCY#(A:COM ACTIVE FREQUENCY:1,KHz)#FlyInside.Bell 47 G.Radio.COM_RADIO_ACTIVE_FREQUENCY -COM_RADIO_STBY_FREQUENCY#(A:COM STANDBY FREQUENCY:1,KHz)#FlyInside.Bell 47 G.Radio.COM_RADIO_STBY_FREQUENCY -TRANSPONDER_CODE#(L:Aircraft.Radios.Transpoder.1.Code)#FlyInside.Bell 47 G.Radio.TRANSPONDER_CODE -TRANSPONDER_IDENT_LED_ON_OFF#(L:Aircraft.Transponder.Flash)#FlyInside.Bell 47 G.Radio.TRANSPONDER_IDENT_LED_ON_OFF -TRANSPONDER_MODE_DISPLAY#(L:Aircraft.Radios.Transponder.State)#FlyInside.Bell 47 G.Radio.TRANSPONDER_MODE_DISPLAY -Hype Performance Group/H145/Air Condition / Pressurization#GROUP -H145_SDK_OH_AIR_CONDITIONING#(L:H145_SDK_OH_AIR_CONDITIONING)#Hype Performance Group.H145.Air Condition / Pressurization.H145_SDK_OH_AIR_CONDITIONING -H145_SDK_OH_BLEED_HEATING_POT#(L:H145_SDK_OH_BLEED_HEATING_POT)#Hype Performance Group.H145.Air Condition / Pressurization.H145_SDK_OH_BLEED_HEATING_POT -H145_SDK_OH_COCKPIT_VENT#(L:H145_SDK_OH_COCKPIT_VENT)#Hype Performance Group.H145.Air Condition / Pressurization.H145_SDK_OH_COCKPIT_VENT -H145_SDK_OH_COCKPIT_VENT_POT#(L:H145_SDK_OH_COCKPIT_VENT_POT)#Hype Performance Group.H145.Air Condition / Pressurization.H145_SDK_OH_COCKPIT_VENT_POT -H145_SDK_OH_IBF_1#(L:H145_SDK_OH_IBF_1)#Hype Performance Group.H145.Air Condition / Pressurization.H145_SDK_OH_IBF_1 -H145_SDK_OH_IBF_2#(L:H145_SDK_OH_IBF_2)#Hype Performance Group.H145.Air Condition / Pressurization.H145_SDK_OH_IBF_2 -H145_SDK_OH_IBF_RECAL#(L:H145_SDK_OH_IBF_RECAL)#Hype Performance Group.H145.Air Condition / Pressurization.H145_SDK_OH_IBF_RECAL -Hype Performance Group/H145/Autopilot#GROUP -H145_SDK_AFCS_CRHT_BUG#(L:H145_SDK_AFCS_CRHT_BUG)#Hype Performance Group.H145.Autopilot.H145_SDK_AFCS_CRHT_BUG -H145_SDK_AFCS_GTCH_ALT#(L:H145_SDK_AFCS_GTCH_ALT)#Hype Performance Group.H145.Autopilot.H145_SDK_AFCS_GTCH_ALT -H145_SDK_AFCS_GTCH_LAT#(L:H145_SDK_AFCS_GTCH_LAT)#Hype Performance Group.H145.Autopilot.H145_SDK_AFCS_GTCH_LAT -H145_SDK_AFCS_GTCH_LON#(L:H145_SDK_AFCS_GTCH_LON)#Hype Performance Group.H145.Autopilot.H145_SDK_AFCS_GTCH_LON -H145_SDK_AFCS_MASTER#(L:H145_SDK_AFCS_MASTER)#Hype Performance Group.H145.Autopilot.H145_SDK_AFCS_MASTER -H145_SDK_AFCS_MODE_COLLECTIVE#(L:H145_SDK_AFCS_MODE_COLLECTIVE)#Hype Performance Group.H145.Autopilot.H145_SDK_AFCS_MODE_COLLECTIVE -H145_SDK_AFCS_MODE_PITCH#(L:H145_SDK_AFCS_MODE_PITCH)#Hype Performance Group.H145.Autopilot.H145_SDK_AFCS_MODE_PITCH -H145_SDK_AFCS_MODE_ROL#(L:H145_SDK_AFCS_MODE_ROL)#Hype Performance Group.H145.Autopilot.H145_SDK_AFCS_MODE_ROL -H145_SDK_APCP_ALT#(L:H145_SDK_APCP_ALT)#Hype Performance Group.H145.Autopilot.H145_SDK_APCP_ALT -H145_SDK_APCP_AP1#(L:H145_SDK_APCP_AP1)#Hype Performance Group.H145.Autopilot.H145_SDK_APCP_AP1 -H145_SDK_APCP_AP2#(L:H145_SDK_APCP_AP2)#Hype Performance Group.H145.Autopilot.H145_SDK_APCP_AP2 -H145_SDK_APCP_ATRIM#(L:H145_SDK_APCP_ATRIM)#Hype Performance Group.H145.Autopilot.H145_SDK_APCP_ATRIM -H145_SDK_APCP_BKUP#(L:H145_SDK_APCP_BKUP)#Hype Performance Group.H145.Autopilot.H145_SDK_APCP_BKUP -H145_SDK_APCP_CRHT#(L:H145_SDK_APCP_CRHT)#Hype Performance Group.H145.Autopilot.H145_SDK_APCP_CRHT -Hype Performance Group/H145/Avionics#GROUP -H145_SDK_SYSTEM_COLLECTIVE#(L:H145_SDK_SYSTEM_COLLECTIVE)#Hype Performance Group.H145.Avionics.H145_SDK_SYSTEM_COLLECTIVE -H145_SDK_SYSTEM_FLIGHTMODE#(L:H145_SDK_SYSTEM_FLIGHTMODE)#Hype Performance Group.H145.Avionics.H145_SDK_SYSTEM_FLIGHTMODE -H145_SDK_SYSTEM_ISACTIVATED#(L:H145_SDK_SYSTEM_ISACTIVATED)#Hype Performance Group.H145.Avionics.H145_SDK_SYSTEM_ISACTIVATED -H145_SDK_SYSTEM_LOADED#(L:H145_SDK_SYSTEM_LOADED)#Hype Performance Group.H145.Avionics.H145_SDK_SYSTEM_LOADED -Hype Performance Group/H145/Electrical#GROUP -H145_SDK_OH_BATTERY_MASTER#(L:H145_SDK_OH_BATTERY_MASTER)#Hype Performance Group.H145.Electrical.H145_SDK_OH_BATTERY_MASTER -H145_SDK_OH_DC_POWER_RECEPTACLES#(L:H145_SDK_OH_DC_POWER_RECEPTACLES)#Hype Performance Group.H145.Electrical.H145_SDK_OH_DC_POWER_RECEPTACLES -Hype Performance Group/H145/Engines#GROUP -H145_SDK_ECP_FADEC_EMER_1#(L:H145_SDK_ECP_FADEC_EMER_1)#Hype Performance Group.H145.Engines.H145_SDK_ECP_FADEC_EMER_1 -H145_SDK_ECP_FADEC_EMER_2#(L:H145_SDK_ECP_FADEC_EMER_2)#Hype Performance Group.H145.Engines.H145_SDK_ECP_FADEC_EMER_2 -H145_SDK_ECP_MAIN_1#(L:H145_SDK_ECP_MAIN_1)#Hype Performance Group.H145.Engines.H145_SDK_ECP_MAIN_1 -H145_SDK_ECP_MAIN_2#(L:H145_SDK_ECP_MAIN_2)#Hype Performance Group.H145.Engines.H145_SDK_ECP_MAIN_2 -H145_SDK_ECP_MAIN_LATCH_1#(L:H145_SDK_ECP_MAIN_LATCH_1)#Hype Performance Group.H145.Engines.H145_SDK_ECP_MAIN_LATCH_1 -H145_SDK_ECP_MAIN_LATCH_2#(L:H145_SDK_ECP_MAIN_LATCH_2)#Hype Performance Group.H145.Engines.H145_SDK_ECP_MAIN_LATCH_2 -H145_SDK_ENG_1_N2#(L:H145_SDK_ENG_1_N2)#Hype Performance Group.H145.Engines.H145_SDK_ENG_1_N2 -H145_SDK_ENG_1_TRQ#(L:H145_SDK_ENG_1_TRQ)#Hype Performance Group.H145.Engines.H145_SDK_ENG_1_TRQ -H145_SDK_ENG_2_N2#(L:H145_SDK_ENG_2_N2)#Hype Performance Group.H145.Engines.H145_SDK_ENG_2_N2 -H145_SDK_ENG_2_TRQ#(L:H145_SDK_ENG_2_TRQ)#Hype Performance Group.H145.Engines.H145_SDK_ENG_2_TRQ -H145_SDK_HYD_1_PRESSURE#(L:H145_SDK_HYD_1_PRESSURE)#Hype Performance Group.H145.Engines.H145_SDK_HYD_1_PRESSURE -H145_SDK_HYD_2_PRESSURE#(L:H145_SDK_HYD_2_PRESSURE)#Hype Performance Group.H145.Engines.H145_SDK_HYD_2_PRESSURE -H145_SDK_IBF_1_CLOGGED#(L:H145_SDK_IBF_1_CLOGGED)#Hype Performance Group.H145.Engines.H145_SDK_IBF_1_CLOGGED -H145_SDK_IBF_2_CLOGGED#(L:H145_SDK_IBF_2_CLOGGED)#Hype Performance Group.H145.Engines.H145_SDK_IBF_2_CLOGGED -H145_SDK_MGB_PRESSURE1#(L:H145_SDK_MGB_PRESSURE1)#Hype Performance Group.H145.Engines.H145_SDK_MGB_PRESSURE1 -H145_SDK_MGB_PRESSURE2#(L:H145_SDK_MGB_PRESSURE2)#Hype Performance Group.H145.Engines.H145_SDK_MGB_PRESSURE2 -H145_SDK_MGB_TEMPERATURE#(L:H145_SDK_MGB_TEMPERATURE)#Hype Performance Group.H145.Engines.H145_SDK_MGB_TEMPERATURE -H145_SDK_ROTOR_RPM#(L:H145_SDK_ROTOR_RPM)#Hype Performance Group.H145.Engines.H145_SDK_ROTOR_RPM -Hype Performance Group/H145/Fuel#GROUP -H145_SDK_OH_FUEL_ENG1_PRIME#(L:H145_SDK_OH_FUEL_ENG1_PRIME)#Hype Performance Group.H145.Fuel.H145_SDK_OH_FUEL_ENG1_PRIME -H145_SDK_OH_FUEL_ENG2_PRIME#(L:H145_SDK_OH_FUEL_ENG2_PRIME)#Hype Performance Group.H145.Fuel.H145_SDK_OH_FUEL_ENG2_PRIME -H145_SDK_OH_FUEL_TRANSFER_AFT#(L:H145_SDK_OH_FUEL_TRANSFER_AFT)#Hype Performance Group.H145.Fuel.H145_SDK_OH_FUEL_TRANSFER_AFT -H145_SDK_OH_FUEL_TRANSFER_FWD#(L:H145_SDK_OH_FUEL_TRANSFER_FWD)#Hype Performance Group.H145.Fuel.H145_SDK_OH_FUEL_TRANSFER_FWD -Hype Performance Group/H145/Lights#GROUP -H145_SDK_OH_INT_LIGHT_CARGO_PAX#(L:H145_SDK_OH_INT_LIGHT_CARGO_PAX)#Hype Performance Group.H145.Lights.H145_SDK_OH_INT_LIGHT_CARGO_PAX -H145_SDK_OH_INT_LIGHT_EMERGENCY_EXITS#(L:H145_SDK_OH_INT_LIGHT_EMERGENCY_EXITS)#Hype Performance Group.H145.Lights.H145_SDK_OH_INT_LIGHT_EMERGENCY_EXITS -H145_SDK_OH_INT_LIGHT_INSTRUMENT_PANE#(L:H145_SDK_OH_INT_LIGHT_INSTRUMENT_PANE)#Hype Performance Group.H145.Lights.H145_SDK_OH_INT_LIGHT_INSTRUMENT_PANE -H145_SDK_OH_INT_LIGHT_INSTRUMENT_PANEL_POT#(L:H145_SDK_OH_INT_LIGHT_INSTRUMENT_PANEL_POT)#Hype Performance Group.H145.Lights.H145_SDK_OH_INT_LIGHT_INSTRUMENT_PANEL_POT -H145_SDK_OH_LAMP_AND_PREFLIGHT_TEST#(L:H145_SDK_OH_LAMP_AND_PREFLIGHT_TEST)#Hype Performance Group.H145.Lights.H145_SDK_OH_LAMP_AND_PREFLIGHT_TEST -Hype Performance Group/H145/Miscellaneous#GROUP -H145_SDK_DOOR_CARGO_L#(L:H145_SDK_DOOR_CARGO_L)#Hype Performance Group.H145.Miscellaneous.H145_SDK_DOOR_CARGO_L -H145_SDK_DOOR_CARGO_R#(L:H145_SDK_DOOR_CARGO_R)#Hype Performance Group.H145.Miscellaneous.H145_SDK_DOOR_CARGO_R -H145_SDK_DOOR_COCKPIT_L#(L:H145_SDK_DOOR_COCKPIT_L)#Hype Performance Group.H145.Miscellaneous.H145_SDK_DOOR_COCKPIT_L -H145_SDK_DOOR_COCKPIT_R#(L:H145_SDK_DOOR_COCKPIT_R)#Hype Performance Group.H145.Miscellaneous.H145_SDK_DOOR_COCKPIT_R -H145_SDK_DOOR_PAX_L#(L:H145_SDK_DOOR_PAX_L)#Hype Performance Group.H145.Miscellaneous.H145_SDK_DOOR_PAX_L -H145_SDK_DOOR_PAX_R#(L:H145_SDK_DOOR_PAX_R)#Hype Performance Group.H145.Miscellaneous.H145_SDK_DOOR_PAX_R -H145_SDK_EQUIP_EMERGENCY_EXITS#(L:H145_SDK_EQUIP_EMERGENCY_EXITS)#Hype Performance Group.H145.Miscellaneous.H145_SDK_EQUIP_EMERGENCY_EXITS -H145_SDK_EQUIP_EMERGENCY_FLOATS#(L:H145_SDK_EQUIP_EMERGENCY_FLOATS)#Hype Performance Group.H145.Miscellaneous.H145_SDK_EQUIP_EMERGENCY_FLOATS -H145_SDK_EQUIP_SEARCHLIGHT_ON#(L:H145_SDK_EQUIP_SEARCHLIGHT_ON)#Hype Performance Group.H145.Miscellaneous.H145_SDK_EQUIP_SEARCHLIGHT_ON -H145_SDK_EQUIP_SEARCHLIGHT_X_POS#(L:H145_SDK_EQUIP_SEARCHLIGHT_X_POS)#Hype Performance Group.H145.Miscellaneous.H145_SDK_EQUIP_SEARCHLIGHT_X_POS -H145_SDK_EQUIP_SEARCHLIGHT_Y_POS#(L:H145_SDK_EQUIP_SEARCHLIGHT_Y_POS)#Hype Performance Group.H145.Miscellaneous.H145_SDK_EQUIP_SEARCHLIGHT_Y_POS -H145_SDK_MISC_DOWNLOAD#(L:H145_SDK_MISC_DOWNLOAD)#Hype Performance Group.H145.Miscellaneous.H145_SDK_MISC_DOWNLOAD -H145_SDK_MISC_RADIOHEIGHT#(L:H145_SDK_MISC_RADIOHEIGHT)#Hype Performance Group.H145.Miscellaneous.H145_SDK_MISC_RADIOHEIGHT -H145_SDK_OH_WINDSHIELD_WIPER#(L:H145_SDK_OH_WINDSHIELD_WIPER)#Hype Performance Group.H145.Miscellaneous.H145_SDK_OH_WINDSHIELD_WIPER -Hype Performance Group/H145/Radio#GROUP -H145_SDK_OH_AUDIO_ACAS#(L:H145_SDK_OH_AUDIO_ACAS)#Hype Performance Group.H145.Radio.H145_SDK_OH_AUDIO_ACAS -H145_SDK_OH_AUDIO_HTAWS#(L:H145_SDK_OH_AUDIO_HTAWS)#Hype Performance Group.H145.Radio.H145_SDK_OH_AUDIO_HTAWS -Hype Performance Group/H145/Safety#GROUP -H145_SDK_OH_EMERGENCY_FLOATS#(L:H145_SDK_OH_EMERGENCY_FLOATS)#Hype Performance Group.H145.Safety.H145_SDK_OH_EMERGENCY_FLOATS -H145_SDK_OH_ENG1_FIRE_TEST#(L:H145_SDK_OH_ENG1_FIRE_TEST)#Hype Performance Group.H145.Safety.H145_SDK_OH_ENG1_FIRE_TEST -H145_SDK_OH_ENG2_FIRE_TEST#(L:H145_SDK_OH_ENG2_FIRE_TEST)#Hype Performance Group.H145.Safety.H145_SDK_OH_ENG2_FIRE_TEST -H145_SDK_OH_FUZZ_CHIP_BURNER#(L:H145_SDK_OH_FUZZ_CHIP_BURNER)#Hype Performance Group.H145.Safety.H145_SDK_OH_FUZZ_CHIP_BURNER -H145_SDK_OH_HYD_TEST#(L:H145_SDK_OH_HYD_TEST)#Hype Performance Group.H145.Safety.H145_SDK_OH_HYD_TEST -H145_SDK_OH_LAVCS_SYSTEM#(L:H145_SDK_OH_LAVCS_SYSTEM)#Hype Performance Group.H145.Safety.H145_SDK_OH_LAVCS_SYSTEM -H145_SDK_TEST_POWERUP#(L:H145_SDK_TEST_POWERUP)#Hype Performance Group.H145.Safety.H145_SDK_TEST_POWERUP -H145_SDK_TEST_PREFLIGHT#(L:H145_SDK_TEST_PREFLIGHT)#Hype Performance Group.H145.Safety.H145_SDK_TEST_PREFLIGHT -H145_SDK_TEST_STARTUP#(L:H145_SDK_TEST_STARTUP)#Hype Performance Group.H145.Safety.H145_SDK_TEST_STARTUP -Just Flight/Piper Arrow III/Autopilot#GROUP -AUTOPILOT_ALT_LOCK_LED#(A:AUTOPILOT ALTITUDE LOCK, Bool)#Just Flight.Piper Arrow III.Autopilot.AUTOPILOT_ALT_LOCK_LED -AUTOPILOT_ENGAGED_LED#(L:AUTOPILOT_onoff)#Just Flight.Piper Arrow III.Autopilot.AUTOPILOT_ENGAGED_LED -AUTOPILOT_HDG_LED#(L:AUTOPILOT_hdg)#Just Flight.Piper Arrow III.Autopilot.AUTOPILOT_HDG_LED -AUTOPILOT_NAV_MODE_LED#(L:AUTOPILOT_mode)#Just Flight.Piper Arrow III.Autopilot.AUTOPILOT_NAV_MODE_LED -Just Flight/Piper Arrow III/Electrical#GROUP -Alternator amps#(L:LEFT_LOWER_alt_amp, number)#Just Flight.Piper Arrow III.Electrical.Alternator amps -Just Flight/Piper Arrow III/Engines#GROUP -Eng Oil Temp#(A:GENERAL ENG OIL TEMPERATURE:1,Rankine)#Just Flight.Piper Arrow III.Engines.Eng Oil Temp -Eng Oil psi#(A:GENERAL ENG OIL PRESSURE:1,Psi)#Just Flight.Piper Arrow III.Engines.Eng Oil psi -Manifold pressure#(L:LEFT_LOWER_manifold, number)#Just Flight.Piper Arrow III.Engines.Manifold pressure -Just Flight/Piper Arrow III/Fuel#GROUP -Fuel Pressure#(L:LEFT_LOWER_fuel_press, number)#Just Flight.Piper Arrow III.Fuel.Fuel Pressure -Fuel flow#(L:LEFT_LOWER_fuelflow, number)#Just Flight.Piper Arrow III.Fuel.Fuel flow -Fuel quantity left tank#(L:LEFT_LOWER_fuel_left, number)#Just Flight.Piper Arrow III.Fuel.Fuel quantity left tank -Fuel quantity right tank#(L:LEFT_LOWER_fuel_right, number)#Just Flight.Piper Arrow III.Fuel.Fuel quantity right tank -Just Flight/Piper Arrow III/Gear#GROUP -LAND_GEAR_LEFT_LED#(L:LDG_GEAR_left_gear)#Just Flight.Piper Arrow III.Gear.LAND_GEAR_LEFT_LED -LAND_GEAR_NOSE_LED#(L:LDG_GEAR_nose_gear)#Just Flight.Piper Arrow III.Gear.LAND_GEAR_NOSE_LED -LAND_GEAR_RIGHT_LED#(L:LDG_GEAR_right_gear)#Just Flight.Piper Arrow III.Gear.LAND_GEAR_RIGHT_LED -LDG_GEAR_AUTO_EXT / AUTO EXT OFF#(L:LDG_GEAR_AUTO_EXT,Bool)#Just Flight.Piper Arrow III.Gear.LDG_GEAR_AUTO_EXT / AUTO EXT OFF -PARKING_BRAKE_LED#(L:ParkingBrake_Position)#Just Flight.Piper Arrow III.Gear.PARKING_BRAKE_LED -Microsoft/A320/EFIS#GROUP -LED QFE ENCENDIDO#(L:XMLVAR_Baro1_Mode) ++ 2 %#Microsoft.A320.EFIS.LED QFE ENCENDIDO -Microsoft/Generic/Autopilot#GROUP -AUTOPILOT AIRSPEED HOLD#(A:AUTOPILOT AIRSPEED HOLD,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT AIRSPEED HOLD -AUTOPILOT AIRSPEED HOLD VAR#(A:AUTOPILOT AIRSPEED HOLD VAR,Knots)#Microsoft.Generic.Autopilot.AUTOPILOT AIRSPEED HOLD VAR -AUTOPILOT ALTITUDE LOCK#(A:AUTOPILOT ALTITUDE LOCK,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT ALTITUDE LOCK -AUTOPILOT ALTITUDE LOCK VAR#(A:AUTOPILOT ALTITUDE LOCK VAR,Feet)#Microsoft.Generic.Autopilot.AUTOPILOT ALTITUDE LOCK VAR -AUTOPILOT ALTITUDE SLOT INDEX#(A:AUTOPILOT ALTITUDE SLOT INDEX,Number)#Microsoft.Generic.Autopilot.AUTOPILOT ALTITUDE SLOT INDEX -AUTOPILOT APPROACH HOLD#(A:AUTOPILOT APPROACH HOLD,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT APPROACH HOLD -AUTOPILOT ATTITUDE HOLD#(A:AUTOPILOT ATTITUDE HOLD,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT ATTITUDE HOLD -AUTOPILOT AVAILABLE#(A:AUTOPILOT AVAILABLE,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT AVAILABLE -AUTOPILOT BACKCOURSE HOLD#(A:AUTOPILOT BACKCOURSE HOLD,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT BACKCOURSE HOLD -AUTOPILOT BANK HOLD#(A:AUTOPILOT BANK HOLD,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT BANK HOLD -AUTOPILOT DISENGAGED#(A:AUTOPILOT DISENGAGED,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT DISENGAGED -AUTOPILOT FLIGHT DIRECTOR ACTIVE#(A:AUTOPILOT FLIGHT DIRECTOR ACTIVE,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT FLIGHT DIRECTOR ACTIVE -AUTOPILOT FLIGHT DIRECTOR BANK#(A:AUTOPILOT FLIGHT DIRECTOR BANK,Radians)#Microsoft.Generic.Autopilot.AUTOPILOT FLIGHT DIRECTOR BANK -AUTOPILOT FLIGHT DIRECTOR BANK EX1#(A:AUTOPILOT FLIGHT DIRECTOR BANK EX1,Radians)#Microsoft.Generic.Autopilot.AUTOPILOT FLIGHT DIRECTOR BANK EX1 -AUTOPILOT FLIGHT DIRECTOR PITCH#(A:AUTOPILOT FLIGHT DIRECTOR PITCH,Radians)#Microsoft.Generic.Autopilot.AUTOPILOT FLIGHT DIRECTOR PITCH -AUTOPILOT FLIGHT DIRECTOR PITCH EX1#(A:AUTOPILOT FLIGHT DIRECTOR PITCH EX1,Radians)#Microsoft.Generic.Autopilot.AUTOPILOT FLIGHT DIRECTOR PITCH EX1 -AUTOPILOT FLIGHT LEVEL CHANGE#(A:AUTOPILOT FLIGHT LEVEL CHANGE,bool)#Microsoft.Generic.Autopilot.AUTOPILOT FLIGHT LEVEL CHANGE -AUTOPILOT GLIDESLOPE ACTIVE#(A:AUTOPILOT GLIDESLOPE ACTIVE,bool)#Microsoft.Generic.Autopilot.AUTOPILOT GLIDESLOPE ACTIVE -AUTOPILOT GLIDESLOPE ARM#(A:AUTOPILOT GLIDESLOPE ARM,bool)#Microsoft.Generic.Autopilot.AUTOPILOT GLIDESLOPE ARM -AUTOPILOT GLIDESLOPE HOLD#(A:AUTOPILOT GLIDESLOPE HOLD,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT GLIDESLOPE HOLD -AUTOPILOT HEADING LOCK#(A:AUTOPILOT HEADING LOCK,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT HEADING LOCK -AUTOPILOT HEADING LOCK DIR#(A:AUTOPILOT HEADING LOCK DIR,Degrees)#Microsoft.Generic.Autopilot.AUTOPILOT HEADING LOCK DIR -AUTOPILOT HEADING SLOT INDEX#(A:AUTOPILOT HEADING SLOT INDEX,Number)#Microsoft.Generic.Autopilot.AUTOPILOT HEADING SLOT INDEX -AUTOPILOT MACH HOLD#(A:AUTOPILOT MACH HOLD,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT MACH HOLD -AUTOPILOT MACH HOLD VAR#(A:AUTOPILOT MACH HOLD VAR,Number)#Microsoft.Generic.Autopilot.AUTOPILOT MACH HOLD VAR -AUTOPILOT MANAGED INDEX#(A:AUTOPILOT MANAGED INDEX,Number)#Microsoft.Generic.Autopilot.AUTOPILOT MANAGED INDEX -AUTOPILOT MANAGED SPEED IN MACH#(A:AUTOPILOT MANAGED SPEED IN MACH,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT MANAGED SPEED IN MACH -AUTOPILOT MANAGED THROTTLE ACTIVE#(A:AUTOPILOT MANAGED THROTTLE ACTIVE,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT MANAGED THROTTLE ACTIVE -AUTOPILOT MASTER#(A:AUTOPILOT MASTER,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT MASTER -AUTOPILOT MAX BANK#(A:AUTOPILOT MAX BANK,Radians)#Microsoft.Generic.Autopilot.AUTOPILOT MAX BANK -AUTOPILOT NAV SELECTED#(A:AUTOPILOT NAV SELECTED,Number)#Microsoft.Generic.Autopilot.AUTOPILOT NAV SELECTED -AUTOPILOT NAV1 LOCK#(A:AUTOPILOT NAV1 LOCK,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT NAV1 LOCK -AUTOPILOT PITCH HOLD#(A:AUTOPILOT PITCH HOLD,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT PITCH HOLD -AUTOPILOT PITCH HOLD REF#(A:AUTOPILOT PITCH HOLD REF,Radians)#Microsoft.Generic.Autopilot.AUTOPILOT PITCH HOLD REF -AUTOPILOT RPM HOLD#(A:AUTOPILOT RPM HOLD,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT RPM HOLD -AUTOPILOT RPM HOLD VAR#(A:AUTOPILOT RPM HOLD VAR,Number)#Microsoft.Generic.Autopilot.AUTOPILOT RPM HOLD VAR -AUTOPILOT RPM SLOT INDEX#(A:AUTOPILOT RPM SLOT INDEX,Number)#Microsoft.Generic.Autopilot.AUTOPILOT RPM SLOT INDEX -AUTOPILOT SPEED SLOT INDEX#(A:AUTOPILOT SPEED SLOT INDEX,Number)#Microsoft.Generic.Autopilot.AUTOPILOT SPEED SLOT INDEX -AUTOPILOT TAKEOFF POWER ACTIVE#(A:AUTOPILOT TAKEOFF POWER ACTIVE,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT TAKEOFF POWER ACTIVE -AUTOPILOT THROTTLE ARM#(A:AUTOPILOT THROTTLE ARM,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT THROTTLE ARM -AUTOPILOT THROTTLE MAX THRUST#(A:AUTOPILOT THROTTLE MAX THRUST,Percent)#Microsoft.Generic.Autopilot.AUTOPILOT THROTTLE MAX THRUST -AUTOPILOT VERTICAL HOLD#(A:AUTOPILOT VERTICAL HOLD,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT VERTICAL HOLD -AUTOPILOT VERTICAL HOLD VAR#(A:AUTOPILOT VERTICAL HOLD VAR,Feet/minute)#Microsoft.Generic.Autopilot.AUTOPILOT VERTICAL HOLD VAR -AUTOPILOT VS SLOT INDEX#(A:AUTOPILOT VS SLOT INDEX,Number)#Microsoft.Generic.Autopilot.AUTOPILOT VS SLOT INDEX -AUTOPILOT WING LEVELER#(A:AUTOPILOT WING LEVELER,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT WING LEVELER -AUTOPILOT YAW DAMPER#(A:AUTOPILOT YAW DAMPER,Bool)#Microsoft.Generic.Autopilot.AUTOPILOT YAW DAMPER -AUTOTHROTTLE ACTIVE#(A:AUTOTHROTTLE ACTIVE,Bool)#Microsoft.Generic.Autopilot.AUTOTHROTTLE ACTIVE -COM SPACING MODE#(A:COM SPACING MODE,Enum)#Microsoft.Generic.Autopilot.COM SPACING MODE -FLY BY WIRE ELAC FAILED#(A:FLY BY WIRE ELAC FAILED,Bool)#Microsoft.Generic.Autopilot.FLY BY WIRE ELAC FAILED -FLY BY WIRE ELAC SWITCH#(A:FLY BY WIRE ELAC SWITCH,Bool)#Microsoft.Generic.Autopilot.FLY BY WIRE ELAC SWITCH -FLY BY WIRE FAC FAILED#(A:FLY BY WIRE FAC FAILED,Bool)#Microsoft.Generic.Autopilot.FLY BY WIRE FAC FAILED -FLY BY WIRE FAC SWITCH#(A:FLY BY WIRE FAC SWITCH,Bool)#Microsoft.Generic.Autopilot.FLY BY WIRE FAC SWITCH -FLY BY WIRE SEC FAILED#(A:FLY BY WIRE SEC FAILED,Bool)#Microsoft.Generic.Autopilot.FLY BY WIRE SEC FAILED -FLY BY WIRE SEC SWITCH#(A:FLY BY WIRE SEC SWITCH,Bool)#Microsoft.Generic.Autopilot.FLY BY WIRE SEC SWITCH -Microsoft/Generic/Avionics#GROUP -ADF ACTIVE FREQUENCY:index#(A:ADF ACTIVE FREQUENCY:index,KHz)#Microsoft.Generic.Avionics.ADF ACTIVE FREQUENCY:index -ADF AVAILABLE#(A:ADF AVAILABLE,Bool)#Microsoft.Generic.Avionics.ADF AVAILABLE -ADF CARD#(A:ADF CARD,Degrees)#Microsoft.Generic.Avionics.ADF CARD -ADF EXT FREQUENCY:index#(A:ADF EXT FREQUENCY:index,KHz)#Microsoft.Generic.Avionics.ADF EXT FREQUENCY:index -ADF FREQUENCY:index#(A:ADF FREQUENCY:index,KHz)#Microsoft.Generic.Avionics.ADF FREQUENCY:index -ADF IDENT#(A:ADF IDENT,String)#Microsoft.Generic.Avionics.ADF IDENT -ADF LATLONALT:index#(A:ADF LATLONALT:index,Number)#Microsoft.Generic.Avionics.ADF LATLONALT:index -ADF NAME#(A:ADF NAME,String)#Microsoft.Generic.Avionics.ADF NAME -ADF RADIAL:index#(A:ADF RADIAL:index,Degrees)#Microsoft.Generic.Avionics.ADF RADIAL:index -ADF SIGNAL:index#(A:ADF SIGNAL:index,Number)#Microsoft.Generic.Avionics.ADF SIGNAL:index -ADF SOUND:index#(A:ADF SOUND:index,Bool)#Microsoft.Generic.Avionics.ADF SOUND:index -ADF STANDBY AVAILABLE#(A:ADF STANDBY AVAILABLE,Bool)#Microsoft.Generic.Avionics.ADF STANDBY AVAILABLE -ADF STANDBY FREQUENCY:index#(A:ADF STANDBY FREQUENCY:index,KHz)#Microsoft.Generic.Avionics.ADF STANDBY FREQUENCY:index -AUDIO PANEL AVAILABLE#(A:AUDIO PANEL AVAILABLE,Bool)#Microsoft.Generic.Avionics.AUDIO PANEL AVAILABLE -AUDIO PANEL VOLUME#(A:AUDIO PANEL VOLUME,Percent)#Microsoft.Generic.Avionics.AUDIO PANEL VOLUME -AVIONICS MASTER SWITCH#(A:AVIONICS MASTER SWITCH,Bool)#Microsoft.Generic.Avionics.AVIONICS MASTER SWITCH -COM ACTIVE FREQUENCY:index#(A:COM ACTIVE FREQUENCY:index,KHz)#Microsoft.Generic.Avionics.COM ACTIVE FREQUENCY:index -COM AVAILABLE#(A:COM AVAILABLE,Bool)#Microsoft.Generic.Avionics.COM AVAILABLE -COM RECEIVE ALL#(A:COM RECEIVE ALL,Bool)#Microsoft.Generic.Avionics.COM RECEIVE ALL -COM RECIEVE ALL#(A:COM RECIEVE ALL,Bool)#Microsoft.Generic.Avionics.COM RECIEVE ALL -COM STANDBY FREQUENCY:index#(A:COM STANDBY FREQUENCY:index,KHz)#Microsoft.Generic.Avionics.COM STANDBY FREQUENCY:index -COM STATUS:index#(A:COM STATUS:index,Enum)#Microsoft.Generic.Avionics.COM STATUS:index -COM TEST:index#(A:COM TEST:index,Bool)#Microsoft.Generic.Avionics.COM TEST:index -COM TRANSMIT:index#(A:COM TRANSMIT:index,Bool)#Microsoft.Generic.Avionics.COM TRANSMIT:index -COPILOT TRANSMITTER TYPE#(A:COPILOT TRANSMITTER TYPE,Enum)#Microsoft.Generic.Avionics.COPILOT TRANSMITTER TYPE -COPILOT TRANSMITTING#(A:COPILOT TRANSMITTING,Bool)#Microsoft.Generic.Avionics.COPILOT TRANSMITTING -DME SOUND#(A:DME SOUND:index,Bool)#Microsoft.Generic.Avionics.DME SOUND -GPS APPROACH APPROACH INDEX#(A:GPS APPROACH APPROACH INDEX,Number)#Microsoft.Generic.Avionics.GPS APPROACH APPROACH INDEX -GPS APPROACH APPROACH TYPE#(A:GPS APPROACH APPROACH TYPE,Enum)#Microsoft.Generic.Avionics.GPS APPROACH APPROACH TYPE -GPS APPROACH IS FINAL#(A:GPS APPROACH IS FINAL,Bool)#Microsoft.Generic.Avionics.GPS APPROACH IS FINAL -GPS APPROACH IS MISSED#(A:GPS APPROACH IS MISSED,Bool)#Microsoft.Generic.Avionics.GPS APPROACH IS MISSED -GPS APPROACH IS WP RUNWAY#(A:GPS APPROACH IS WP RUNWAY,Bool)#Microsoft.Generic.Avionics.GPS APPROACH IS WP RUNWAY -GPS APPROACH MODE#(A:GPS APPROACH MODE,Enum)#Microsoft.Generic.Avionics.GPS APPROACH MODE -GPS APPROACH SEGMENT TYPE#(A:GPS APPROACH SEGMENT TYPE,Enum)#Microsoft.Generic.Avionics.GPS APPROACH SEGMENT TYPE -GPS APPROACH TIMEZONE DEVIATION#(A:GPS APPROACH TIMEZONE DEVIATION,Seconds)#Microsoft.Generic.Avionics.GPS APPROACH TIMEZONE DEVIATION -GPS APPROACH TRANSITION INDEX#(A:GPS APPROACH TRANSITION INDEX,Number)#Microsoft.Generic.Avionics.GPS APPROACH TRANSITION INDEX -GPS APPROACH WP COUNT#(A:GPS APPROACH WP COUNT,Number)#Microsoft.Generic.Avionics.GPS APPROACH WP COUNT -GPS APPROACH WP INDEX#(A:GPS APPROACH WP INDEX,Number)#Microsoft.Generic.Avionics.GPS APPROACH WP INDEX -GPS APPROACH WP TYPE#(A:GPS APPROACH WP TYPE,Enum)#Microsoft.Generic.Avionics.GPS APPROACH WP TYPE -GPS COURSE TO STEER#(A:GPS COURSE TO STEER,Radians)#Microsoft.Generic.Avionics.GPS COURSE TO STEER -GPS DRIVES NAV1#(A:GPS DRIVES NAV1,Bool)#Microsoft.Generic.Avionics.GPS DRIVES NAV1 -GPS ETA#(A:GPS ETA,Seconds)#Microsoft.Generic.Avionics.GPS ETA -GPS ETE#(A:GPS ETE,Seconds)#Microsoft.Generic.Avionics.GPS ETE -GPS FLIGHT PLAN WP COUNT#(A:GPS FLIGHT PLAN WP COUNT,Number)#Microsoft.Generic.Avionics.GPS FLIGHT PLAN WP COUNT -GPS FLIGHT PLAN WP INDEX#(A:GPS FLIGHT PLAN WP INDEX,Number)#Microsoft.Generic.Avionics.GPS FLIGHT PLAN WP INDEX -GPS GROUND MAGNETIC TRACK#(A:GPS GROUND MAGNETIC TRACK,Radians)#Microsoft.Generic.Avionics.GPS GROUND MAGNETIC TRACK -GPS GROUND SPEED#(A:GPS GROUND SPEED,Meters per second)#Microsoft.Generic.Avionics.GPS GROUND SPEED -GPS GROUND TRUE HEADING#(A:GPS GROUND TRUE HEADING,Radians)#Microsoft.Generic.Avionics.GPS GROUND TRUE HEADING -GPS GROUND TRUE TRACK#(A:GPS GROUND TRUE TRACK,Radians)#Microsoft.Generic.Avionics.GPS GROUND TRUE TRACK -GPS IS ACTIVE FLIGHT PLAN#(A:GPS IS ACTIVE FLIGHT PLAN,Bool)#Microsoft.Generic.Avionics.GPS IS ACTIVE FLIGHT PLAN -GPS IS ACTIVE WAY POINT#(A:GPS IS ACTIVE WAY POINT,Bool)#Microsoft.Generic.Avionics.GPS IS ACTIVE WAY POINT -GPS IS ACTIVE WP LOCKED#(A:GPS IS ACTIVE WP LOCKED,Bool)#Microsoft.Generic.Avionics.GPS IS ACTIVE WP LOCKED -GPS IS APPROACH ACTIVE#(A:GPS IS APPROACH ACTIVE,Bool)#Microsoft.Generic.Avionics.GPS IS APPROACH ACTIVE -GPS IS APPROACH LOADED#(A:GPS IS APPROACH LOADED,Bool)#Microsoft.Generic.Avionics.GPS IS APPROACH LOADED -GPS IS ARRIVED#(A:GPS IS ARRIVED,Bool)#Microsoft.Generic.Avionics.GPS IS ARRIVED -GPS IS DIRECTTO FLIGHTPLAN#(A:GPS IS DIRECTTO FLIGHTPLAN,Bool)#Microsoft.Generic.Avionics.GPS IS DIRECTTO FLIGHTPLAN -GPS MAGVAR#(A:GPS MAGVAR,Radians)#Microsoft.Generic.Avionics.GPS MAGVAR -GPS POSITION ALT#(A:GPS POSITION ALT,Meters)#Microsoft.Generic.Avionics.GPS POSITION ALT -GPS POSITION LAT#(A:GPS POSITION LAT,Degrees)#Microsoft.Generic.Avionics.GPS POSITION LAT -GPS POSITION LON#(A:GPS POSITION LON,Degrees)#Microsoft.Generic.Avionics.GPS POSITION LON -GPS TARGET ALTITUDE#(A:GPS TARGET ALTITUDE,Meters)#Microsoft.Generic.Avionics.GPS TARGET ALTITUDE -GPS TARGET DISTANCE#(A:GPS TARGET DISTANCE,Meters)#Microsoft.Generic.Avionics.GPS TARGET DISTANCE -GPS VERTICAL ANGLE#(A:GPS VERTICAL ANGLE,Degrees)#Microsoft.Generic.Avionics.GPS VERTICAL ANGLE -GPS VERTICAL ANGLE ERROR#(A:GPS VERTICAL ANGLE ERROR,Degrees)#Microsoft.Generic.Avionics.GPS VERTICAL ANGLE ERROR -GPS VERTICAL ERROR#(A:GPS VERTICAL ERROR,Meters)#Microsoft.Generic.Avionics.GPS VERTICAL ERROR -GPS WP BEARING#(A:GPS WP BEARING,Radians)#Microsoft.Generic.Avionics.GPS WP BEARING -GPS WP CROSS TRK#(A:GPS WP CROSS TRK,Meters)#Microsoft.Generic.Avionics.GPS WP CROSS TRK -GPS WP DESIRED TRACK#(A:GPS WP DESIRED TRACK,Radians)#Microsoft.Generic.Avionics.GPS WP DESIRED TRACK -GPS WP DISTANCE#(A:GPS WP DISTANCE,Meters)#Microsoft.Generic.Avionics.GPS WP DISTANCE -GPS WP ETA#(A:GPS WP ETA,Seconds)#Microsoft.Generic.Avionics.GPS WP ETA -GPS WP ETE#(A:GPS WP ETE,Seconds)#Microsoft.Generic.Avionics.GPS WP ETE -GPS WP NEXT ALT#(A:GPS WP NEXT ALT,Meters)#Microsoft.Generic.Avionics.GPS WP NEXT ALT -GPS WP NEXT LAT#(A:GPS WP NEXT LAT,Degrees)#Microsoft.Generic.Avionics.GPS WP NEXT LAT -GPS WP NEXT LON#(A:GPS WP NEXT LON,Degrees)#Microsoft.Generic.Avionics.GPS WP NEXT LON -GPS WP PREV ALT#(A:GPS WP PREV ALT,Meters)#Microsoft.Generic.Avionics.GPS WP PREV ALT -GPS WP PREV LAT#(A:GPS WP PREV LAT,Degrees)#Microsoft.Generic.Avionics.GPS WP PREV LAT -GPS WP PREV LON#(A:GPS WP PREV LON,Degrees)#Microsoft.Generic.Avionics.GPS WP PREV LON -GPS WP PREV VALID#(A:GPS WP PREV VALID,Bool)#Microsoft.Generic.Avionics.GPS WP PREV VALID -GPS WP TRACK ANGLE ERROR#(A:GPS WP TRACK ANGLE ERROR,Radians)#Microsoft.Generic.Avionics.GPS WP TRACK ANGLE ERROR -GPS WP TRUE BEARING#(A:GPS WP TRUE BEARING,Radians)#Microsoft.Generic.Avionics.GPS WP TRUE BEARING -GPS WP TRUE REQ HDG#(A:GPS WP TRUE REQ HDG,Radians)#Microsoft.Generic.Avionics.GPS WP TRUE REQ HDG -GPS WP VERTICAL SPEED#(A:GPS WP VERTICAL SPEED,Meters per second)#Microsoft.Generic.Avionics.GPS WP VERTICAL SPEED -HSI BEARING#(A:HSI BEARING,Degrees)#Microsoft.Generic.Avionics.HSI BEARING -HSI BEARING VALID#(A:HSI BEARING VALID,Bool)#Microsoft.Generic.Avionics.HSI BEARING VALID -HSI CDI NEEDLE#(A:HSI CDI NEEDLE,Number)#Microsoft.Generic.Avionics.HSI CDI NEEDLE -HSI CDI NEEDLE VALID#(A:HSI CDI NEEDLE VALID,Bool)#Microsoft.Generic.Avionics.HSI CDI NEEDLE VALID -HSI DISTANCE#(A:HSI DISTANCE,Nautical miles)#Microsoft.Generic.Avionics.HSI DISTANCE -HSI GSI NEEDLE#(A:HSI GSI NEEDLE,Number)#Microsoft.Generic.Avionics.HSI GSI NEEDLE -HSI GSI NEEDLE VALID#(A:HSI GSI NEEDLE VALID,Bool)#Microsoft.Generic.Avionics.HSI GSI NEEDLE VALID -HSI HAS LOCALIZER#(A:HSI HAS LOCALIZER,Bool)#Microsoft.Generic.Avionics.HSI HAS LOCALIZER -HSI SPEED#(A:HSI SPEED,Knots)#Microsoft.Generic.Avionics.HSI SPEED -HSI TF FLAGS#(A:HSI TF FLAGS,Enum)#Microsoft.Generic.Avionics.HSI TF FLAGS -INNER MARKER#(A:INNER MARKER,Bool)#Microsoft.Generic.Avionics.INNER MARKER -INNER MARKER LATLONALT#(A:INNER MARKER LATLONALT,Number)#Microsoft.Generic.Avionics.INNER MARKER LATLONALT -INTERCOM MODE#(A:INTERCOM MODE,Enum)#Microsoft.Generic.Avionics.INTERCOM MODE -INTERCOM SYSTEM ACTIVE#(A:INTERCOM SYSTEM ACTIVE,Bool)#Microsoft.Generic.Avionics.INTERCOM SYSTEM ACTIVE -MARKER AVAILABLE#(A:MARKER AVAILABLE,Bool)#Microsoft.Generic.Avionics.MARKER AVAILABLE -MARKER BEACON SENSITIVITY HIGH#(A:MARKER BEACON SENSITIVITY HIGH,Bool)#Microsoft.Generic.Avionics.MARKER BEACON SENSITIVITY HIGH -MARKER BEACON STATE#(A:MARKER BEACON STATE,Enum)#Microsoft.Generic.Avionics.MARKER BEACON STATE -MARKER BEACON TEST MUTE#(A:MARKER BEACON TEST MUTE,Bool)#Microsoft.Generic.Avionics.MARKER BEACON TEST MUTE -MARKER SOUND#(A:MARKER SOUND:index,Bool)#Microsoft.Generic.Avionics.MARKER SOUND -MIDDLE MARKER#(A:MIDDLE MARKER,Bool)#Microsoft.Generic.Avionics.MIDDLE MARKER -MIDDLE MARKER LATLONALT#(A:MIDDLE MARKER LATLONALT,Number)#Microsoft.Generic.Avionics.MIDDLE MARKER LATLONALT -NAV ACTIVE FREQUENCY:index#(A:NAV ACTIVE FREQUENCY:index,MHz)#Microsoft.Generic.Avionics.NAV ACTIVE FREQUENCY:index -NAV AVAILABLE:index#(A:NAV AVAILABLE:index,Bool)#Microsoft.Generic.Avionics.NAV AVAILABLE:index -NAV BACK COURSE flagsindex#(A:NAV BACK COURSE flagsindex,flags)#Microsoft.Generic.Avionics.NAV BACK COURSE flagsindex -NAV CDI:index#(A:NAV CDI:index,Number)#Microsoft.Generic.Avionics.NAV CDI:index -NAV CLOSE DME#(A:NAV CLOSE DME,Nautical miles)#Microsoft.Generic.Avionics.NAV CLOSE DME -NAV CLOSE FREQUENCY#(A:NAV CLOSE FREQUENCY,KHz)#Microsoft.Generic.Avionics.NAV CLOSE FREQUENCY -NAV CLOSE IDENT#(A:NAV CLOSE IDENT,String)#Microsoft.Generic.Avionics.NAV CLOSE IDENT -NAV CLOSE LOCALIZER#(A:NAV CLOSE LOCALIZER,Degrees)#Microsoft.Generic.Avionics.NAV CLOSE LOCALIZER -NAV CLOSE NAME#(A:NAV CLOSE NAME,String)#Microsoft.Generic.Avionics.NAV CLOSE NAME -NAV CODES:index#(A:NAV CODES:index,flags)#Microsoft.Generic.Avionics.NAV CODES:index -NAV DME LATLONALT:index#(A:NAV DME LATLONALT:index,Number)#Microsoft.Generic.Avionics.NAV DME LATLONALT:index -NAV DME:index#(A:NAV DME:index,Nautical miles)#Microsoft.Generic.Avionics.NAV DME:index -NAV DMESPEED:index#(A:NAV DMESPEED:index,Knots)#Microsoft.Generic.Avionics.NAV DMESPEED:index -NAV FREQUENCY#(A:NAV FREQUENCY,Hz)#Microsoft.Generic.Avionics.NAV FREQUENCY -NAV GLIDE SLOPE#(A:NAV GLIDE SLOPE,Number)#Microsoft.Generic.Avionics.NAV GLIDE SLOPE -NAV GLIDE SLOPE ERROR:index#(A:NAV GLIDE SLOPE ERROR:index,Degrees)#Microsoft.Generic.Avionics.NAV GLIDE SLOPE ERROR:index -NAV GS FLAG:index#(A:NAV GS FLAG:index,Bool)#Microsoft.Generic.Avionics.NAV GS FLAG:index -NAV GS LATLONALT:index#(A:NAV GS LATLONALT:index,Number)#Microsoft.Generic.Avionics.NAV GS LATLONALT:index -NAV GSI:index#(A:NAV GSI:index,Number)#Microsoft.Generic.Avionics.NAV GSI:index -NAV HAS CLOSE DME#(A:NAV HAS CLOSE DME,Bool)#Microsoft.Generic.Avionics.NAV HAS CLOSE DME -NAV HAS CLOSE LOCALIZER#(A:NAV HAS CLOSE LOCALIZER,Bool)#Microsoft.Generic.Avionics.NAV HAS CLOSE LOCALIZER -NAV HAS DME:index#(A:NAV HAS DME:index,Bool)#Microsoft.Generic.Avionics.NAV HAS DME:index -NAV HAS GLIDE SLOPE:index#(A:NAV HAS GLIDE SLOPE:index,Bool)#Microsoft.Generic.Avionics.NAV HAS GLIDE SLOPE:index -NAV HAS LOCALIZER:index#(A:NAV HAS LOCALIZER:index,Bool)#Microsoft.Generic.Avionics.NAV HAS LOCALIZER:index -NAV HAS NAV:index#(A:NAV HAS NAV:index,Bool)#Microsoft.Generic.Avionics.NAV HAS NAV:index -NAV IDENT#(A:NAV IDENT,String)#Microsoft.Generic.Avionics.NAV IDENT -NAV LOCALIZER:index#(A:NAV LOCALIZER:index,Degrees)#Microsoft.Generic.Avionics.NAV LOCALIZER:index -NAV MAGVAR:index#(A:NAV MAGVAR:index,Degrees)#Microsoft.Generic.Avionics.NAV MAGVAR:index -NAV NAME#(A:NAV NAME,String)#Microsoft.Generic.Avionics.NAV NAME -NAV OBS:index#(A:NAV OBS:index,Degrees)#Microsoft.Generic.Avionics.NAV OBS:index -NAV RADIAL ERROR:index#(A:NAV RADIAL ERROR:index,Degrees)#Microsoft.Generic.Avionics.NAV RADIAL ERROR:index -NAV RADIAL:index#(A:NAV RADIAL:index,Degrees)#Microsoft.Generic.Avionics.NAV RADIAL:index -NAV RAW GLIDE SLOPE:index#(A:NAV RAW GLIDE SLOPE:index,Degrees)#Microsoft.Generic.Avionics.NAV RAW GLIDE SLOPE:index -NAV RELATIVE BEARING TO STATION:index#(A:NAV RELATIVE BEARING TO STATION:index,Degrees)#Microsoft.Generic.Avionics.NAV RELATIVE BEARING TO STATION:index -NAV SIGNAL:index#(A:NAV SIGNAL:index,Number)#Microsoft.Generic.Avionics.NAV SIGNAL:index -NAV SOUND:index#(A:NAV SOUND:index,Bool)#Microsoft.Generic.Avionics.NAV SOUND:index -NAV STANDBY FREQUENCY:index#(A:NAV STANDBY FREQUENCY:index,MHz)#Microsoft.Generic.Avionics.NAV STANDBY FREQUENCY:index -NAV TOFROM:index#(A:NAV TOFROM:index,Enum)#Microsoft.Generic.Avionics.NAV TOFROM:index -NAV VOR DISTANCE#(A:NAV VOR DISTANCE,Meters)#Microsoft.Generic.Avionics.NAV VOR DISTANCE -NAV VOR LATLONALT:index#(A:NAV VOR LATLONALT:index,Number)#Microsoft.Generic.Avionics.NAV VOR LATLONALT:index -OUTER MARKER#(A:OUTER MARKER,Bool)#Microsoft.Generic.Avionics.OUTER MARKER -OUTER MARKER LATLONALT#(A:OUTER MARKER LATLONALT,Number)#Microsoft.Generic.Avionics.OUTER MARKER LATLONALT -PILOT TRANSMITTER TYPE#(A:PILOT TRANSMITTER TYPE,Enum)#Microsoft.Generic.Avionics.PILOT TRANSMITTER TYPE -PILOT TRANSMITTING#(A:PILOT TRANSMITTING,Bool)#Microsoft.Generic.Avionics.PILOT TRANSMITTING -SELECTED DME#(A:SELECTED DME,Number)#Microsoft.Generic.Avionics.SELECTED DME -SPEAKER ACTIVE#(A:SPEAKER ACTIVE,Bool)#Microsoft.Generic.Avionics.SPEAKER ACTIVE -TRANSPONDER AVAILABLE#(A:TRANSPONDER AVAILABLE,Bool)#Microsoft.Generic.Avionics.TRANSPONDER AVAILABLE -TRANSPONDER CODE#(A:TRANSPONDER CODE:index,number)#Microsoft.Generic.Avionics.TRANSPONDER CODE -TRANSPONDER IDENT#(A:TRANSPONDER IDENT:index, Bool)#Microsoft.Generic.Avionics.TRANSPONDER IDENT -TRANSPONDER STATE#(A:TRANSPONDER STATE:index,Enum)#Microsoft.Generic.Avionics.TRANSPONDER STATE -Microsoft/Generic/Controls#GROUP -AILERON AVERAGE DEFLECTION#(A:AILERON AVERAGE DEFLECTION,Radians)#Microsoft.Generic.Controls.AILERON AVERAGE DEFLECTION -AILERON LEFT DEFLECTION#(A:AILERON LEFT DEFLECTION,Radians)#Microsoft.Generic.Controls.AILERON LEFT DEFLECTION -AILERON LEFT DEFLECTION PCT#(A:AILERON LEFT DEFLECTION PCT,Percent Over 100)#Microsoft.Generic.Controls.AILERON LEFT DEFLECTION PCT -AILERON POSITION#(A:AILERON POSITION,Position)#Microsoft.Generic.Controls.AILERON POSITION -AILERON RIGHT DEFLECTION#(A:AILERON RIGHT DEFLECTION,Radians)#Microsoft.Generic.Controls.AILERON RIGHT DEFLECTION -AILERON RIGHT DEFLECTION PCT#(A:AILERON RIGHT DEFLECTION PCT,Percent Over 100)#Microsoft.Generic.Controls.AILERON RIGHT DEFLECTION PCT -AILERON TRIM#(A:AILERON TRIM,Radians)#Microsoft.Generic.Controls.AILERON TRIM -AILERON TRIM DISABLED#(A:AILERON TRIM DISABLED,Bool)#Microsoft.Generic.Controls.AILERON TRIM DISABLED -AILERON TRIM PCT#(A:AILERON TRIM PCT,Float. Percent over 100)#Microsoft.Generic.Controls.AILERON TRIM PCT -ALTERNATE STATIC SOURCE OPEN#(A:ALTERNATE STATIC SOURCE OPEN,Bool)#Microsoft.Generic.Controls.ALTERNATE STATIC SOURCE OPEN -ANTISKID BRAKES ACTIVE#(A:ANTISKID BRAKES ACTIVE,Bool)#Microsoft.Generic.Controls.ANTISKID BRAKES ACTIVE -AUTO BRAKE SWITCH CB#(A:AUTO BRAKE SWITCH CB,Number)#Microsoft.Generic.Controls.AUTO BRAKE SWITCH CB -AUTOBRAKES ACTIVE#(A:AUTOBRAKES ACTIVE,Bool)#Microsoft.Generic.Controls.AUTOBRAKES ACTIVE -BRAKE DEPENDENT HYDRAULIC PRESSURE#(A:BRAKE DEPENDENT HYDRAULIC PRESSURE,Pounds per square foot)#Microsoft.Generic.Controls.BRAKE DEPENDENT HYDRAULIC PRESSURE -BRAKE INDICATOR#(A:BRAKE INDICATOR,Position)#Microsoft.Generic.Controls.BRAKE INDICATOR -BRAKE LEFT POSITION#(A:BRAKE LEFT POSITION,Position)#Microsoft.Generic.Controls.BRAKE LEFT POSITION -BRAKE LEFT POSITION EX1#(A:BRAKE LEFT POSITION EX1,Position)#Microsoft.Generic.Controls.BRAKE LEFT POSITION EX1 -BRAKE PARKING INDICATOR#(A:BRAKE PARKING INDICATOR,Bool)#Microsoft.Generic.Controls.BRAKE PARKING INDICATOR -BRAKE PARKING POSITION#(A:BRAKE PARKING POSITION,Position)#Microsoft.Generic.Controls.BRAKE PARKING POSITION -BRAKE RIGHT POSITION#(A:BRAKE RIGHT POSITION,Position)#Microsoft.Generic.Controls.BRAKE RIGHT POSITION -BRAKE RIGHT POSITION EX1#(A:BRAKE RIGHT POSITION EX1,Position)#Microsoft.Generic.Controls.BRAKE RIGHT POSITION EX1 -CIRCUIT AUTO BRAKES ON#(A:CIRCUIT AUTO BRAKES ON,Bool)#Microsoft.Generic.Controls.CIRCUIT AUTO BRAKES ON -ELEVATOR DEFLECTION#(A:ELEVATOR DEFLECTION,Radians)#Microsoft.Generic.Controls.ELEVATOR DEFLECTION -ELEVATOR DEFLECTION PCT#(A:ELEVATOR DEFLECTION PCT,Percent Over 100)#Microsoft.Generic.Controls.ELEVATOR DEFLECTION PCT -ELEVATOR POSITION#(A:ELEVATOR POSITION,Position)#Microsoft.Generic.Controls.ELEVATOR POSITION -ELEVATOR TRIM INDICATOR#(A:ELEVATOR TRIM INDICATOR,Position)#Microsoft.Generic.Controls.ELEVATOR TRIM INDICATOR -ELEVATOR TRIM PCT#(A:ELEVATOR TRIM PCT,Percent Over 100)#Microsoft.Generic.Controls.ELEVATOR TRIM PCT -ELEVATOR TRIM POSITION#(A:ELEVATOR TRIM POSITION,Radians)#Microsoft.Generic.Controls.ELEVATOR TRIM POSITION -FLAP DAMAGE BY SPEED#(A:FLAP DAMAGE BY SPEED,Bool)#Microsoft.Generic.Controls.FLAP DAMAGE BY SPEED -FLAP SPEED EXCEEDED#(A:FLAP SPEED EXCEEDED,Bool)#Microsoft.Generic.Controls.FLAP SPEED EXCEEDED -FLAPS AVAILABLE#(A:FLAPS AVAILABLE,Bool)#Microsoft.Generic.Controls.FLAPS AVAILABLE -FLAPS HANDLE INDEX#(A:FLAPS HANDLE INDEX,Number)#Microsoft.Generic.Controls.FLAPS HANDLE INDEX -FLAPS HANDLE PERCENT#(A:FLAPS HANDLE PERCENT,Percent Over 100)#Microsoft.Generic.Controls.FLAPS HANDLE PERCENT -FLAPS NUM HANDLE POSITIONS#(A:FLAPS NUM HANDLE POSITIONS,Number)#Microsoft.Generic.Controls.FLAPS NUM HANDLE POSITIONS -FOLDING WING HANDLE POSITION#(A:FOLDING WING HANDLE POSITION,Bool)#Microsoft.Generic.Controls.FOLDING WING HANDLE POSITION -FUEL DUMP SWITCH#(A:FUEL DUMP SWITCH,Bool)#Microsoft.Generic.Controls.FUEL DUMP SWITCH -LEADING EDGE FLAPS LEFT ANGLE#(A:LEADING EDGE FLAPS LEFT ANGLE,Radians)#Microsoft.Generic.Controls.LEADING EDGE FLAPS LEFT ANGLE -LEADING EDGE FLAPS LEFT INDEX#(A:LEADING EDGE FLAPS LEFT INDEX,Number)#Microsoft.Generic.Controls.LEADING EDGE FLAPS LEFT INDEX -LEADING EDGE FLAPS LEFT PERCENT#(A:LEADING EDGE FLAPS LEFT PERCENT,Percent Over 100)#Microsoft.Generic.Controls.LEADING EDGE FLAPS LEFT PERCENT -LEADING EDGE FLAPS RIGHT ANGLE#(A:LEADING EDGE FLAPS RIGHT ANGLE,Radians)#Microsoft.Generic.Controls.LEADING EDGE FLAPS RIGHT ANGLE -LEADING EDGE FLAPS RIGHT INDEX#(A:LEADING EDGE FLAPS RIGHT INDEX,Number)#Microsoft.Generic.Controls.LEADING EDGE FLAPS RIGHT INDEX -LEADING EDGE FLAPS RIGHT PERCENT#(A:LEADING EDGE FLAPS RIGHT PERCENT,Percent Over 100)#Microsoft.Generic.Controls.LEADING EDGE FLAPS RIGHT PERCENT -LIGHT BRAKE ON#(A:LIGHT BRAKE ON,Bool)#Microsoft.Generic.Controls.LIGHT BRAKE ON -REJECTED TAKEOFF BRAKES ACTIVE#(A:REJECTED TAKEOFF BRAKES ACTIVE,Bool)#Microsoft.Generic.Controls.REJECTED TAKEOFF BRAKES ACTIVE -RUDDER DEFLECTION#(A:RUDDER DEFLECTION,Radians)#Microsoft.Generic.Controls.RUDDER DEFLECTION -RUDDER DEFLECTION PCT#(A:RUDDER DEFLECTION PCT,Percent Over 100)#Microsoft.Generic.Controls.RUDDER DEFLECTION PCT -RUDDER PEDAL POSITION#(A:RUDDER PEDAL POSITION,Position)#Microsoft.Generic.Controls.RUDDER PEDAL POSITION -RUDDER POSITION#(A:RUDDER POSITION,Position)#Microsoft.Generic.Controls.RUDDER POSITION -RUDDER TRIM#(A:RUDDER TRIM,Radians)#Microsoft.Generic.Controls.RUDDER TRIM -RUDDER TRIM PCT#(A:RUDDER TRIM PCT, Percent over 100)#Microsoft.Generic.Controls.RUDDER TRIM PCT -SPOILERS ARMED#(A:SPOILERS ARMED,Bool)#Microsoft.Generic.Controls.SPOILERS ARMED -SPOILERS HANDLE POSITION#(A:SPOILERS HANDLE POSITION,Position)#Microsoft.Generic.Controls.SPOILERS HANDLE POSITION -SPOILERS LEFT POSITION#(A:SPOILERS LEFT POSITION,Position)#Microsoft.Generic.Controls.SPOILERS LEFT POSITION -SPOILERS RIGHT POSITION#(A:SPOILERS RIGHT POSITION,Position)#Microsoft.Generic.Controls.SPOILERS RIGHT POSITION -TOE BRAKES AVAILABLE#(A:TOE BRAKES AVAILABLE,Bool)#Microsoft.Generic.Controls.TOE BRAKES AVAILABLE -TRAILING EDGE FLAPS LEFT ANGLE#(A:TRAILING EDGE FLAPS LEFT ANGLE,Radians)#Microsoft.Generic.Controls.TRAILING EDGE FLAPS LEFT ANGLE -TRAILING EDGE FLAPS LEFT INDEX#(A:TRAILING EDGE FLAPS LEFT INDEX,Number)#Microsoft.Generic.Controls.TRAILING EDGE FLAPS LEFT INDEX -TRAILING EDGE FLAPS LEFT PERCENT#(A:TRAILING EDGE FLAPS LEFT PERCENT,Percent Over 100)#Microsoft.Generic.Controls.TRAILING EDGE FLAPS LEFT PERCENT -TRAILING EDGE FLAPS RIGHT ANGLE#(A:TRAILING EDGE FLAPS RIGHT ANGLE,Radians)#Microsoft.Generic.Controls.TRAILING EDGE FLAPS RIGHT ANGLE -TRAILING EDGE FLAPS RIGHT INDEX#(A:TRAILING EDGE FLAPS RIGHT INDEX,Number)#Microsoft.Generic.Controls.TRAILING EDGE FLAPS RIGHT INDEX -TRAILING EDGE FLAPS RIGHT PERCENT#(A:TRAILING EDGE FLAPS RIGHT PERCENT,Percent Over 100)#Microsoft.Generic.Controls.TRAILING EDGE FLAPS RIGHT PERCENT -YOKE X POSITION#(A:YOKE X POSITION,Position)#Microsoft.Generic.Controls.YOKE X POSITION -YOKE X POSITION WITH AP#(A:YOKE X POSITION WITH AP,Position)#Microsoft.Generic.Controls.YOKE X POSITION WITH AP -YOKE Y POSITION#(A:YOKE Y POSITION,Position)#Microsoft.Generic.Controls.YOKE Y POSITION -YOKE Y POSITION WITH AP#(A:YOKE Y POSITION WITH AP,Position)#Microsoft.Generic.Controls.YOKE Y POSITION WITH AP -Microsoft/Generic/Engines#GROUP -ELEVATOR TRIM NEUTRAL#(A:ELEVATOR TRIM NEUTRAL,Radians)#Microsoft.Generic.Engines.ELEVATOR TRIM NEUTRAL -ENG ANTI ICE:index#(A:ENG ANTI ICE:index,Bool)#Microsoft.Generic.Engines.ENG ANTI ICE:index -ENG COMBUSTION#(A:ENG COMBUSTION,Bool)#Microsoft.Generic.Engines.ENG COMBUSTION -ENG CYLINDER HEAD TEMPERATURE:index#(A:ENG CYLINDER HEAD TEMPERATURE:index,Rankine)#Microsoft.Generic.Engines.ENG CYLINDER HEAD TEMPERATURE:index -ENG EXHAUST GAS TEMPERATURE GES:index#(A:ENG EXHAUST GAS TEMPERATURE GES:index,Percent over 100)#Microsoft.Generic.Engines.ENG EXHAUST GAS TEMPERATURE GES:index -ENG EXHAUST GAS TEMPERATURE:index#(A:ENG EXHAUST GAS TEMPERATURE:index,Rankine)#Microsoft.Generic.Engines.ENG EXHAUST GAS TEMPERATURE:index -ENG FAILED:index#(A:ENG FAILED:index,Number)#Microsoft.Generic.Engines.ENG FAILED:index -ENG FUEL FLOW BUG POSITION:index#(A:ENG FUEL FLOW BUG POSITION:index,Pounds per hour)#Microsoft.Generic.Engines.ENG FUEL FLOW BUG POSITION:index -ENG FUEL FLOW GPH:index#(A:ENG FUEL FLOW GPH:index,Gallons per hour)#Microsoft.Generic.Engines.ENG FUEL FLOW GPH:index -ENG FUEL FLOW PPH:index#(A:ENG FUEL FLOW PPH:index,Pounds per hour)#Microsoft.Generic.Engines.ENG FUEL FLOW PPH:index -ENG HYDRAULIC PRESSURE:index#(A:ENG HYDRAULIC PRESSURE:index,Pounds per square foot)#Microsoft.Generic.Engines.ENG HYDRAULIC PRESSURE:index -ENG HYDRAULIC QUANTITY:index#(A:ENG HYDRAULIC QUANTITY:index,Percent over 100)#Microsoft.Generic.Engines.ENG HYDRAULIC QUANTITY:index -ENG MANIFOLD PRESSURE:index#(A:ENG MANIFOLD PRESSURE:index,inHG)#Microsoft.Generic.Engines.ENG MANIFOLD PRESSURE:index -ENG MAX RPM#(A:ENG MAX RPM,Rpm)#Microsoft.Generic.Engines.ENG MAX RPM -ENG N1 RPM:index#(A:ENG N1 RPM:index,Rpm)#Microsoft.Generic.Engines.ENG N1 RPM:index -ENG N2 RPM:index#(A:ENG N2 RPM:index,Rpm)#Microsoft.Generic.Engines.ENG N2 RPM:index -ENG OIL PRESSURE:index#(A:ENG OIL PRESSURE:index,Pounds per square foot)#Microsoft.Generic.Engines.ENG OIL PRESSURE:index -ENG OIL QUANTITY:index#(A:ENG OIL QUANTITY:index,Percent over 100)#Microsoft.Generic.Engines.ENG OIL QUANTITY:index -ENG OIL TEMPERATURE:index#(A:ENG OIL TEMPERATURE:index,Rankine)#Microsoft.Generic.Engines.ENG OIL TEMPERATURE:index -ENG ON FIRE:index#(A:ENG ON FIRE:index,Bool)#Microsoft.Generic.Engines.ENG ON FIRE:index -ENG PRESSURE RATIO:index#(A:ENG PRESSURE RATIO:index,Ratio)#Microsoft.Generic.Engines.ENG PRESSURE RATIO:index -ENG RPM ANIMATION PERCENT:index#(A:ENG RPM ANIMATION PERCENT:index,Percent)#Microsoft.Generic.Engines.ENG RPM ANIMATION PERCENT:index -ENG RPM SCALER:index#(A:ENG RPM SCALER:index,Scalar)#Microsoft.Generic.Engines.ENG RPM SCALER:index -ENG TORQUE:index#(A:ENG TORQUE:index,Foot pounds)#Microsoft.Generic.Engines.ENG TORQUE:index -ENG VIBRATION:index#(A:ENG VIBRATION:index,Number)#Microsoft.Generic.Engines.ENG VIBRATION:index -ENGINE CONTROL SELECT#(A:ENGINE CONTROL SELECT,Mask)#Microsoft.Generic.Engines.ENGINE CONTROL SELECT -ENGINE TYPE#(A:ENGINE TYPE,Enum)#Microsoft.Generic.Engines.ENGINE TYPE -GENERAL ENG ANTI ICE POSITION:index#(A:GENERAL ENG ANTI ICE POSITION:index,Bool)#Microsoft.Generic.Engines.GENERAL ENG ANTI ICE POSITION:index -GENERAL ENG COMBUSTION SOUND PERCENT:index#(A:GENERAL ENG COMBUSTION SOUND PERCENT:index,Percent)#Microsoft.Generic.Engines.GENERAL ENG COMBUSTION SOUND PERCENT:index -GENERAL ENG COMBUSTION:index#(A:GENERAL ENG COMBUSTION:index,Bool)#Microsoft.Generic.Engines.GENERAL ENG COMBUSTION:index -GENERAL ENG DAMAGE PERCENT:index#(A:GENERAL ENG DAMAGE PERCENT:index,Percent)#Microsoft.Generic.Engines.GENERAL ENG DAMAGE PERCENT:index -GENERAL ENG ELAPSED TIME:index#(A:GENERAL ENG ELAPSED TIME:index,Hours)#Microsoft.Generic.Engines.GENERAL ENG ELAPSED TIME:index -GENERAL ENG EXHAUST GAS TEMPERATURE:index#(A:GENERAL ENG EXHAUST GAS TEMPERATURE:index,Rankine)#Microsoft.Generic.Engines.GENERAL ENG EXHAUST GAS TEMPERATURE:index -GENERAL ENG FAILED:index#(A:GENERAL ENG FAILED:index,Bool)#Microsoft.Generic.Engines.GENERAL ENG FAILED:index -GENERAL ENG FUEL PRESSURE:index#(A:GENERAL ENG FUEL PRESSURE:index,Psi)#Microsoft.Generic.Engines.GENERAL ENG FUEL PRESSURE:index -GENERAL ENG FUEL PUMP ON:index#(A:GENERAL ENG FUEL PUMP ON:index,Bool)#Microsoft.Generic.Engines.GENERAL ENG FUEL PUMP ON:index -GENERAL ENG FUEL PUMP SWITCH:index#(A:GENERAL ENG FUEL PUMP SWITCH:index,Bool)#Microsoft.Generic.Engines.GENERAL ENG FUEL PUMP SWITCH:index -GENERAL ENG FUEL USED SINCE START#(A:GENERAL ENG FUEL USED SINCE START,Pounds)#Microsoft.Generic.Engines.GENERAL ENG FUEL USED SINCE START -GENERAL ENG FUEL VALVE:index#(A:GENERAL ENG FUEL VALVE:index,Bool)#Microsoft.Generic.Engines.GENERAL ENG FUEL VALVE:index -GENERAL ENG GENERATOR ACTIVE:index#(A:GENERAL ENG GENERATOR ACTIVE:index,Bool)#Microsoft.Generic.Engines.GENERAL ENG GENERATOR ACTIVE:index -GENERAL ENG GENERATOR SWITCH:index#(A:GENERAL ENG GENERATOR SWITCH:index,Bool)#Microsoft.Generic.Engines.GENERAL ENG GENERATOR SWITCH:index -GENERAL ENG MASTER ALTERNATOR:index#(A:GENERAL ENG MASTER ALTERNATOR:index,Bool)#Microsoft.Generic.Engines.GENERAL ENG MASTER ALTERNATOR:index -GENERAL ENG MAX REACHED RPM:index#(A:GENERAL ENG MAX REACHED RPM:index,Rpm)#Microsoft.Generic.Engines.GENERAL ENG MAX REACHED RPM:index -GENERAL ENG MIXTURE LEVER POSITION:index#(A:GENERAL ENG MIXTURE LEVER POSITION:index,Percent)#Microsoft.Generic.Engines.GENERAL ENG MIXTURE LEVER POSITION:index -GENERAL ENG OIL LEAKED PERCENT:index#(A:GENERAL ENG OIL LEAKED PERCENT:index,Percent)#Microsoft.Generic.Engines.GENERAL ENG OIL LEAKED PERCENT:index -GENERAL ENG OIL PRESSURE:index#(A:GENERAL ENG OIL PRESSURE:index,Psf)#Microsoft.Generic.Engines.GENERAL ENG OIL PRESSURE:index -GENERAL ENG OIL TEMPERATURE:index#(A:GENERAL ENG OIL TEMPERATURE:index,Rankine)#Microsoft.Generic.Engines.GENERAL ENG OIL TEMPERATURE:index -GENERAL ENG PCT MAX RPM:index#(A:GENERAL ENG PCT MAX RPM:index,Percent)#Microsoft.Generic.Engines.GENERAL ENG PCT MAX RPM:index -GENERAL ENG PROPELLER LEVER POSITION:index#(A:GENERAL ENG PROPELLER LEVER POSITION:index,Percent)#Microsoft.Generic.Engines.GENERAL ENG PROPELLER LEVER POSITION:index -GENERAL ENG RPM:index#(A:GENERAL ENG RPM:index,Rpm)#Microsoft.Generic.Engines.GENERAL ENG RPM:index -GENERAL ENG STARTER ACTIVE#(A:GENERAL ENG STARTER ACTIVE,Bool)#Microsoft.Generic.Engines.GENERAL ENG STARTER ACTIVE -GENERAL ENG STARTER:index#(A:GENERAL ENG STARTER:index,Bool)#Microsoft.Generic.Engines.GENERAL ENG STARTER:index -GENERAL ENG THROTTLE LEVER POSITION:index#(A:GENERAL ENG THROTTLE LEVER POSITION:index,Percent)#Microsoft.Generic.Engines.GENERAL ENG THROTTLE LEVER POSITION:index -GENERAL ENG THROTTLE MANAGED MODE#(A:GENERAL ENG THROTTLE MANAGED MODE,Number)#Microsoft.Generic.Engines.GENERAL ENG THROTTLE MANAGED MODE -MASTER IGNITION SWITCH#(A:MASTER IGNITION SWITCH,Bool)#Microsoft.Generic.Engines.MASTER IGNITION SWITCH -NUMBER OF ENGINES#(A:NUMBER OF ENGINES,Number)#Microsoft.Generic.Engines.NUMBER OF ENGINES -PANEL AUTO FEATHER SWITCH:index#(A:PANEL AUTO FEATHER SWITCH:index,Bool)#Microsoft.Generic.Engines.PANEL AUTO FEATHER SWITCH:index -PROP AUTO FEATHER ARMED:index#(A:PROP AUTO FEATHER ARMED:index,Bool)#Microsoft.Generic.Engines.PROP AUTO FEATHER ARMED:index -PROP BETA:index#(A:PROP BETA:index,Radians)#Microsoft.Generic.Engines.PROP BETA:index -PROP DEICE SWITCH:index#(A:PROP DEICE SWITCH:index,Bool)#Microsoft.Generic.Engines.PROP DEICE SWITCH:index -PROP FEATHER SWITCH:index#(A:PROP FEATHER SWITCH:index,Bool)#Microsoft.Generic.Engines.PROP FEATHER SWITCH:index -PROP FEATHERED:index#(A:PROP FEATHERED:index,Bool)#Microsoft.Generic.Engines.PROP FEATHERED:index -PROP FEATHERING INHIBIT:index#(A:PROP FEATHERING INHIBIT:index,Bool)#Microsoft.Generic.Engines.PROP FEATHERING INHIBIT:index -PROP MAX RPM PERCENT:index#(A:PROP MAX RPM PERCENT:index,Percent)#Microsoft.Generic.Engines.PROP MAX RPM PERCENT:index -PROP RPM:index#(A:PROP RPM:index,Rpm)#Microsoft.Generic.Engines.PROP RPM:index -PROP SYNC ACTIVE:index#(A:PROP SYNC ACTIVE:index,Bool)#Microsoft.Generic.Engines.PROP SYNC ACTIVE:index -PROP SYNC DELTA LEVER:index#(A:PROP SYNC DELTA LEVER:index,Position)#Microsoft.Generic.Engines.PROP SYNC DELTA LEVER:index -PROP THRUST:index#(A:PROP THRUST:index,Pounds)#Microsoft.Generic.Engines.PROP THRUST:index -RECIP CARBURETOR TEMPERATURE:index#(A:RECIP CARBURETOR TEMPERATURE:index,Celsius)#Microsoft.Generic.Engines.RECIP CARBURETOR TEMPERATURE:index -RECIP ENG ALTERNATE AIR POSITION:index#(A:RECIP ENG ALTERNATE AIR POSITION:index,Position)#Microsoft.Generic.Engines.RECIP ENG ALTERNATE AIR POSITION:index -RECIP ENG BRAKE POWER:index#(A:RECIP ENG BRAKE POWER:index,Number)#Microsoft.Generic.Engines.RECIP ENG BRAKE POWER:index -RECIP ENG COOLANT RESERVOIR PERCENT:index#(A:RECIP ENG COOLANT RESERVOIR PERCENT:index,Percent)#Microsoft.Generic.Engines.RECIP ENG COOLANT RESERVOIR PERCENT:index -RECIP ENG COWL FLAP POSITION:index#(A:RECIP ENG COWL FLAP POSITION:index,Percent)#Microsoft.Generic.Engines.RECIP ENG COWL FLAP POSITION:index -RECIP ENG CYLINDER HEAD TEMPERATURE:index#(A:RECIP ENG CYLINDER HEAD TEMPERATURE:index,Celsius)#Microsoft.Generic.Engines.RECIP ENG CYLINDER HEAD TEMPERATURE:index -RECIP ENG EMERGENCY BOOST ACTIVE:index#(A:RECIP ENG EMERGENCY BOOST ACTIVE:index,Bool)#Microsoft.Generic.Engines.RECIP ENG EMERGENCY BOOST ACTIVE:index -RECIP ENG EMERGENCY BOOST ELAPSED TIME:index#(A:RECIP ENG EMERGENCY BOOST ELAPSED TIME:index,Hours)#Microsoft.Generic.Engines.RECIP ENG EMERGENCY BOOST ELAPSED TIME:index -RECIP ENG FUEL AVAILABLE:index#(A:RECIP ENG FUEL AVAILABLE:index,Bool)#Microsoft.Generic.Engines.RECIP ENG FUEL AVAILABLE:index -RECIP ENG FUEL FLOW:index#(A:RECIP ENG FUEL FLOW:index,Pounds per hour)#Microsoft.Generic.Engines.RECIP ENG FUEL FLOW:index -RECIP ENG FUEL NUMBER TANKS USED:index#(A:RECIP ENG FUEL NUMBER TANKS USED:index,Number)#Microsoft.Generic.Engines.RECIP ENG FUEL NUMBER TANKS USED:index -RECIP ENG FUEL TANK SELECTOR:index#(A:RECIP ENG FUEL TANK SELECTOR:index,Enum)#Microsoft.Generic.Engines.RECIP ENG FUEL TANK SELECTOR:index -RECIP ENG FUEL TANKS USED:index#(A:RECIP ENG FUEL TANKS USED:index,Mask)#Microsoft.Generic.Engines.RECIP ENG FUEL TANKS USED:index -RECIP ENG LEFT MAGNETO:index#(A:RECIP ENG LEFT MAGNETO:index,Bool)#Microsoft.Generic.Engines.RECIP ENG LEFT MAGNETO:index -RECIP ENG MANIFOLD PRESSURE:index#(A:RECIP ENG MANIFOLD PRESSURE:index,Psi)#Microsoft.Generic.Engines.RECIP ENG MANIFOLD PRESSURE:index -RECIP ENG PRIMER:index#(A:RECIP ENG PRIMER:index,Bool)#Microsoft.Generic.Engines.RECIP ENG PRIMER:index -RECIP ENG RADIATOR TEMPERATURE:index#(A:RECIP ENG RADIATOR TEMPERATURE:index,Celsius)#Microsoft.Generic.Engines.RECIP ENG RADIATOR TEMPERATURE:index -RECIP ENG RIGHT MAGNETO:index#(A:RECIP ENG RIGHT MAGNETO:index,Bool)#Microsoft.Generic.Engines.RECIP ENG RIGHT MAGNETO:index -RECIP ENG STARTER TORQUE:index#(A:RECIP ENG STARTER TORQUE:index,Foot pound)#Microsoft.Generic.Engines.RECIP ENG STARTER TORQUE:index -RECIP ENG TURBINE INLET TEMPERATURE:index#(A:RECIP ENG TURBINE INLET TEMPERATURE:index,Celsius)#Microsoft.Generic.Engines.RECIP ENG TURBINE INLET TEMPERATURE:index -RECIP ENG TURBOCHARGER FAILED:index#(A:RECIP ENG TURBOCHARGER FAILED:index,Bool)#Microsoft.Generic.Engines.RECIP ENG TURBOCHARGER FAILED:index -RECIP ENG WASTEGATE POSITION:index#(A:RECIP ENG WASTEGATE POSITION:index,Percent)#Microsoft.Generic.Engines.RECIP ENG WASTEGATE POSITION:index -RECIP MIXTURE RATIO:index#(A:RECIP MIXTURE RATIO:index,Ratio)#Microsoft.Generic.Engines.RECIP MIXTURE RATIO:index -THROTTLE LOWER LIMIT#(A:THROTTLE LOWER LIMIT,Percent)#Microsoft.Generic.Engines.THROTTLE LOWER LIMIT -TURB ENG AFTERBURNER PCT ACTIVE#(A:TURB ENG AFTERBURNER PCT ACTIVE,Percent over 100)#Microsoft.Generic.Engines.TURB ENG AFTERBURNER PCT ACTIVE -TURB ENG AFTERBURNER STAGE ACTIVE#(A:TURB ENG AFTERBURNER STAGE ACTIVE,Number)#Microsoft.Generic.Engines.TURB ENG AFTERBURNER STAGE ACTIVE -TURB ENG AFTERBURNER:index#(A:TURB ENG AFTERBURNER:index,Bool)#Microsoft.Generic.Engines.TURB ENG AFTERBURNER:index -TURB ENG BLEED AIR:index#(A:TURB ENG BLEED AIR:index,Psi)#Microsoft.Generic.Engines.TURB ENG BLEED AIR:index -TURB ENG COMMANDED N1#(A:TURB ENG COMMANDED N1,Percent)#Microsoft.Generic.Engines.TURB ENG COMMANDED N1 -TURB ENG CORRECTED FF:index#(A:TURB ENG CORRECTED FF:index,Pounds per hour)#Microsoft.Generic.Engines.TURB ENG CORRECTED FF:index -TURB ENG CORRECTED N1:index#(A:TURB ENG CORRECTED N1:index,Percent)#Microsoft.Generic.Engines.TURB ENG CORRECTED N1:index -TURB ENG CORRECTED N2:index#(A:TURB ENG CORRECTED N2:index,Percent)#Microsoft.Generic.Engines.TURB ENG CORRECTED N2:index -TURB ENG FREE TURBINE TORQUE#(A:TURB ENG FREE TURBINE TORQUE,Foot Pound)#Microsoft.Generic.Engines.TURB ENG FREE TURBINE TORQUE -TURB ENG FUEL AVAILABLE:index#(A:TURB ENG FUEL AVAILABLE:index,Bool)#Microsoft.Generic.Engines.TURB ENG FUEL AVAILABLE:index -TURB ENG FUEL FLOW PPH:index#(A:TURB ENG FUEL FLOW PPH:index,Pounds per hour)#Microsoft.Generic.Engines.TURB ENG FUEL FLOW PPH:index -TURB ENG IGNITION SWITCH#(A:TURB ENG IGNITION SWITCH,Bool)#Microsoft.Generic.Engines.TURB ENG IGNITION SWITCH -TURB ENG ITT:index#(A:TURB ENG ITT:index,Rankine)#Microsoft.Generic.Engines.TURB ENG ITT:index -TURB ENG JET THRUST:index#(A:TURB ENG JET THRUST:index,Pounds)#Microsoft.Generic.Engines.TURB ENG JET THRUST:index -TURB ENG MASTER STARTER SWITCH#(A:TURB ENG MASTER STARTER SWITCH,Bool)#Microsoft.Generic.Engines.TURB ENG MASTER STARTER SWITCH -TURB ENG MAX TORQUE PERCENT:index#(A:TURB ENG MAX TORQUE PERCENT:index,Percent)#Microsoft.Generic.Engines.TURB ENG MAX TORQUE PERCENT:index -TURB ENG N1:index#(A:TURB ENG N1:index,Percent)#Microsoft.Generic.Engines.TURB ENG N1:index -TURB ENG N2:index#(A:TURB ENG N2:index,Percent)#Microsoft.Generic.Engines.TURB ENG N2:index -TURB ENG NUM TANKS USED:index#(A:TURB ENG NUM TANKS USED:index,Number)#Microsoft.Generic.Engines.TURB ENG NUM TANKS USED:index -TURB ENG PRESSURE RATIO:index#(A:TURB ENG PRESSURE RATIO:index,Ratio)#Microsoft.Generic.Engines.TURB ENG PRESSURE RATIO:index -TURB ENG PRIMARY NOZZLE PERCENT:index#(A:TURB ENG PRIMARY NOZZLE PERCENT:index,Percent over 100)#Microsoft.Generic.Engines.TURB ENG PRIMARY NOZZLE PERCENT:index -TURB ENG REVERSE NOZZLE PERCENT:index#(A:TURB ENG REVERSE NOZZLE PERCENT:index,Percent)#Microsoft.Generic.Engines.TURB ENG REVERSE NOZZLE PERCENT:index -TURB ENG TANK SELECTOR:index#(A:TURB ENG TANK SELECTOR:index,Enum)#Microsoft.Generic.Engines.TURB ENG TANK SELECTOR:index -TURB ENG TANKS USED:index#(A:TURB ENG TANKS USED:index,Mask)#Microsoft.Generic.Engines.TURB ENG TANKS USED:index -TURB ENG THROTTLE COMMANDED N1#(A:TURB ENG THROTTLE COMMANDED N1,Percent)#Microsoft.Generic.Engines.TURB ENG THROTTLE COMMANDED N1 -TURB ENG VIBRATION:index#(A:TURB ENG VIBRATION:index,Number)#Microsoft.Generic.Engines.TURB ENG VIBRATION:index -Microsoft/Generic/Environment#GROUP -AIRCRAFT WIND X#(A:AIRCRAFT WIND X,Knots)#Microsoft.Generic.Environment.AIRCRAFT WIND X -AIRCRAFT WIND Y#(A:AIRCRAFT WIND Y,Knots)#Microsoft.Generic.Environment.AIRCRAFT WIND Y -AIRCRAFT WIND Z#(A:AIRCRAFT WIND Z,Knots)#Microsoft.Generic.Environment.AIRCRAFT WIND Z -AMBIENT DENSITY#(A:AMBIENT DENSITY,Slugs per cubic feet)#Microsoft.Generic.Environment.AMBIENT DENSITY -AMBIENT IN CLOUD#(A:AMBIENT IN CLOUD,Bool)#Microsoft.Generic.Environment.AMBIENT IN CLOUD -AMBIENT PRECIP STATE#(A:AMBIENT PRECIP STATE,mask)#Microsoft.Generic.Environment.AMBIENT PRECIP STATE -AMBIENT PRESSURE#(A:AMBIENT PRESSURE,Inches of mercury, inHg)#Microsoft.Generic.Environment.AMBIENT PRESSURE -AMBIENT TEMPERATURE#(A:AMBIENT TEMPERATURE,Celsius)#Microsoft.Generic.Environment.AMBIENT TEMPERATURE -AMBIENT VISIBILITY#(A:AMBIENT VISIBILITY,Meters)#Microsoft.Generic.Environment.AMBIENT VISIBILITY -AMBIENT WIND DIRECTION#(A:AMBIENT WIND DIRECTION,Degrees)#Microsoft.Generic.Environment.AMBIENT WIND DIRECTION -AMBIENT WIND VELOCITY#(A:AMBIENT WIND VELOCITY,Knots)#Microsoft.Generic.Environment.AMBIENT WIND VELOCITY -AMBIENT WIND X#(A:AMBIENT WIND X,Meters per second)#Microsoft.Generic.Environment.AMBIENT WIND X -AMBIENT WIND Y#(A:AMBIENT WIND Y,Meters per second)#Microsoft.Generic.Environment.AMBIENT WIND Y -AMBIENT WIND Z#(A:AMBIENT WIND Z,Meters per second)#Microsoft.Generic.Environment.AMBIENT WIND Z -BAROMETER PRESSURE#(A:BAROMETER PRESSURE,Millibars)#Microsoft.Generic.Environment.BAROMETER PRESSURE -LOCAL DAY OF MONTH#(E:LOCAL DAY OF MONTH,number)#Microsoft.Generic.Environment.LOCAL DAY OF MONTH -LOCAL DAY OF WEEK#(E:LOCAL DAY OF WEEK,number)#Microsoft.Generic.Environment.LOCAL DAY OF WEEK -LOCAL DAY OF YEAR#(E:LOCAL DAY OF YEAR,number)#Microsoft.Generic.Environment.LOCAL DAY OF YEAR -LOCAL MONTH OF YEAR#(E:LOCAL MONTH OF YEAR,number)#Microsoft.Generic.Environment.LOCAL MONTH OF YEAR -LOCAL TIME#(E:LOCAL TIME,second)#Microsoft.Generic.Environment.LOCAL TIME -LOCAL YEAR#(E:LOCAL YEAR,number)#Microsoft.Generic.Environment.LOCAL YEAR -SEA LEVEL PRESSURE#(A:SEA LEVEL PRESSURE,Millibars)#Microsoft.Generic.Environment.SEA LEVEL PRESSURE -SIMULATION TIME#(E:SIMULATION TIME,second)#Microsoft.Generic.Environment.SIMULATION TIME -SIMULATION_RATE#(E:SIMULATION RATE,number)#Microsoft.Generic.Environment.SIMULATION_RATE -STANDARD ATM TEMPERATURE#(A:STANDARD ATM TEMPERATURE,Rankine)#Microsoft.Generic.Environment.STANDARD ATM TEMPERATURE -STRUCT AMBIENT WIND#(A:STRUCT AMBIENT WIND,Feet_per_second)#Microsoft.Generic.Environment.STRUCT AMBIENT WIND -TIME OF DAY#(E:TIME OF DAY,enum)#Microsoft.Generic.Environment.TIME OF DAY -TIME ZONE OFFSET#(E:TIME ZONE OFFSET,second)#Microsoft.Generic.Environment.TIME ZONE OFFSET -TOTAL AIR TEMPERATURE#(A:TOTAL AIR TEMPERATURE,Celsius)#Microsoft.Generic.Environment.TOTAL AIR TEMPERATURE -WINDSHIELD RAIN EFFECT AVAILABLE#(A:WINDSHIELD RAIN EFFECT AVAILABLE,Bool)#Microsoft.Generic.Environment.WINDSHIELD RAIN EFFECT AVAILABLE -ZULU DAY OF MONTH#(E:ZULU DAY OF MONTH,number)#Microsoft.Generic.Environment.ZULU DAY OF MONTH -ZULU DAY OF WEEK#(E:ZULU DAY OF WEEK,number)#Microsoft.Generic.Environment.ZULU DAY OF WEEK -ZULU DAY OF YEAR#(E:ZULU DAY OF YEAR,number)#Microsoft.Generic.Environment.ZULU DAY OF YEAR -ZULU MONTH OF YEAR#(E:ZULU MONTH OF YEAR,number)#Microsoft.Generic.Environment.ZULU MONTH OF YEAR -ZULU TIME#(E:ZULU TIME,second)#Microsoft.Generic.Environment.ZULU TIME -ZULU YEAR#(E:ZULU YEAR,number)#Microsoft.Generic.Environment.ZULU YEAR -Microsoft/Generic/Flight Instrumentation#GROUP -AIRSPEED BARBER POLE#(A:AIRSPEED BARBER POLE,Knots)#Microsoft.Generic.Flight Instrumentation.AIRSPEED BARBER POLE -AIRSPEED INDICATED#(A:AIRSPEED INDICATED,Knots)#Microsoft.Generic.Flight Instrumentation.AIRSPEED INDICATED -AIRSPEED MACH#(A:AIRSPEED MACH,Mach)#Microsoft.Generic.Flight Instrumentation.AIRSPEED MACH -AIRSPEED TRUE#(A:AIRSPEED TRUE,Knots)#Microsoft.Generic.Flight Instrumentation.AIRSPEED TRUE -AIRSPEED TRUE CALIBRATE#(A:AIRSPEED TRUE CALIBRATE,Degrees)#Microsoft.Generic.Flight Instrumentation.AIRSPEED TRUE CALIBRATE -ANGLE OF ATTACK INDICATOR#(A:ANGLE OF ATTACK INDICATOR,Radians)#Microsoft.Generic.Flight Instrumentation.ANGLE OF ATTACK INDICATOR -ATTITUDE BARS POSITION#(A:ATTITUDE BARS POSITION,Percent Over 100)#Microsoft.Generic.Flight Instrumentation.ATTITUDE BARS POSITION -ATTITUDE CAGE#(A:ATTITUDE CAGE,Bool)#Microsoft.Generic.Flight Instrumentation.ATTITUDE CAGE -ATTITUDE INDICATOR BANK DEGREES#(A:ATTITUDE INDICATOR BANK DEGREES,Radians)#Microsoft.Generic.Flight Instrumentation.ATTITUDE INDICATOR BANK DEGREES -ATTITUDE INDICATOR PITCH DEGREES#(A:ATTITUDE INDICATOR PITCH DEGREES,Radians)#Microsoft.Generic.Flight Instrumentation.ATTITUDE INDICATOR PITCH DEGREES -BARBER POLE MACH#(A:BARBER POLE MACH,Mach)#Microsoft.Generic.Flight Instrumentation.BARBER POLE MACH -DELTA HEADING RATE#(A:DELTA HEADING RATE,Radians per second)#Microsoft.Generic.Flight Instrumentation.DELTA HEADING RATE -GYRO DRIFT ERROR#(A:GYRO DRIFT ERROR,Radians)#Microsoft.Generic.Flight Instrumentation.GYRO DRIFT ERROR -HEADING INDICATOR#(A:HEADING INDICATOR,Degrees)#Microsoft.Generic.Flight Instrumentation.HEADING INDICATOR -INDICATED ALTITUDE#(A:INDICATED ALTITUDE,Feet)#Microsoft.Generic.Flight Instrumentation.INDICATED ALTITUDE -INDICATED ALTITUDE EX1#(A:INDICATED ALTITUDE EX1,Feet)#Microsoft.Generic.Flight Instrumentation.INDICATED ALTITUDE EX1 -KOHLSMAN SETTING HG#(A:KOHLSMAN SETTING HG, inHg)#Microsoft.Generic.Flight Instrumentation.KOHLSMAN SETTING HG -KOHLSMAN SETTING MB#(A:KOHLSMAN SETTING MB,Millibars)#Microsoft.Generic.Flight Instrumentation.KOHLSMAN SETTING MB -KOHLSMAN SETTING STD#(A:KOHLSMAN SETTING STD:index,Bool)#Microsoft.Generic.Flight Instrumentation.KOHLSMAN SETTING STD -MACH MAX OPERATE#(A:MACH MAX OPERATE,Mach)#Microsoft.Generic.Flight Instrumentation.MACH MAX OPERATE -MAX G FORCE#(A:MAX G FORCE,Gforce)#Microsoft.Generic.Flight Instrumentation.MAX G FORCE -MIN G FORCE#(A:MIN G FORCE,Gforce)#Microsoft.Generic.Flight Instrumentation.MIN G FORCE -OVERSPEED WARNING#(A:OVERSPEED WARNING,Bool)#Microsoft.Generic.Flight Instrumentation.OVERSPEED WARNING -PARTIAL PANEL ADF#(A:PARTIAL PANEL ADF,Enum)#Microsoft.Generic.Flight Instrumentation.PARTIAL PANEL ADF -PARTIAL PANEL AIRSPEED#(A:PARTIAL PANEL AIRSPEED,Enum)#Microsoft.Generic.Flight Instrumentation.PARTIAL PANEL AIRSPEED -PARTIAL PANEL ALTIMETER#(A:PARTIAL PANEL ALTIMETER,Enum)#Microsoft.Generic.Flight Instrumentation.PARTIAL PANEL ALTIMETER -PARTIAL PANEL ATTITUDE#(A:PARTIAL PANEL ATTITUDE,Enum)#Microsoft.Generic.Flight Instrumentation.PARTIAL PANEL ATTITUDE -PARTIAL PANEL AVIONICS#(A:PARTIAL PANEL AVIONICS,Enum)#Microsoft.Generic.Flight Instrumentation.PARTIAL PANEL AVIONICS -PARTIAL PANEL COMM#(A:PARTIAL PANEL COMM,Enum)#Microsoft.Generic.Flight Instrumentation.PARTIAL PANEL COMM -PARTIAL PANEL COMPASS#(A:PARTIAL PANEL COMPASS,Enum)#Microsoft.Generic.Flight Instrumentation.PARTIAL PANEL COMPASS -PARTIAL PANEL ELECTRICAL#(A:PARTIAL PANEL ELECTRICAL,Enum)#Microsoft.Generic.Flight Instrumentation.PARTIAL PANEL ELECTRICAL -PARTIAL PANEL ENGINE#(A:PARTIAL PANEL ENGINE,Enum)#Microsoft.Generic.Flight Instrumentation.PARTIAL PANEL ENGINE -PARTIAL PANEL FUEL INDICATOR#(A:PARTIAL PANEL FUEL INDICATOR,Enum)#Microsoft.Generic.Flight Instrumentation.PARTIAL PANEL FUEL INDICATOR -PARTIAL PANEL HEADING#(A:PARTIAL PANEL HEADING,Enum)#Microsoft.Generic.Flight Instrumentation.PARTIAL PANEL HEADING -PARTIAL PANEL NAV#(A:PARTIAL PANEL NAV,Enum)#Microsoft.Generic.Flight Instrumentation.PARTIAL PANEL NAV -PARTIAL PANEL PITOT#(A:PARTIAL PANEL PITOT,Enum)#Microsoft.Generic.Flight Instrumentation.PARTIAL PANEL PITOT -PARTIAL PANEL TRANSPONDER#(A:PARTIAL PANEL TRANSPONDER,Enum)#Microsoft.Generic.Flight Instrumentation.PARTIAL PANEL TRANSPONDER -PARTIAL PANEL TURN COORDINATOR#(A:PARTIAL PANEL TURN COORDINATOR,Enum)#Microsoft.Generic.Flight Instrumentation.PARTIAL PANEL TURN COORDINATOR -PARTIAL PANEL VACUUM#(A:PARTIAL PANEL VACUUM,Enum)#Microsoft.Generic.Flight Instrumentation.PARTIAL PANEL VACUUM -PARTIAL PANEL VERTICAL VELOCITY#(A:PARTIAL PANEL VERTICAL VELOCITY,Enum)#Microsoft.Generic.Flight Instrumentation.PARTIAL PANEL VERTICAL VELOCITY -PLANE HEADING DEGREES GYRO#(A:PLANE HEADING DEGREES GYRO,Radians)#Microsoft.Generic.Flight Instrumentation.PLANE HEADING DEGREES GYRO -RADIO HEIGHT#(A:RADIO HEIGHT,Feet)#Microsoft.Generic.Flight Instrumentation.RADIO HEIGHT -STALL WARNING#(A:STALL WARNING,Bool)#Microsoft.Generic.Flight Instrumentation.STALL WARNING -SUCTION PRESSURE#(A:SUCTION PRESSURE,Inches of Mercury, inHg)#Microsoft.Generic.Flight Instrumentation.SUCTION PRESSURE -TURN COORDINATOR BALL#(A:TURN COORDINATOR BALL,Position)#Microsoft.Generic.Flight Instrumentation.TURN COORDINATOR BALL -TURN COORDINATOR BALL INV#(A:TURN COORDINATOR BALL INV,Position)#Microsoft.Generic.Flight Instrumentation.TURN COORDINATOR BALL INV -VERTICAL SPEED#(A:VERTICAL SPEED,Feet per minute)#Microsoft.Generic.Flight Instrumentation.VERTICAL SPEED -WISKEY COMPASS INDICATION DEGREES#(A:WISKEY COMPASS INDICATION DEGREES,Degrees)#Microsoft.Generic.Flight Instrumentation.WISKEY COMPASS INDICATION DEGREES -Microsoft/Generic/Fuel#GROUP -ESTIMATED FUEL FLOW#(A:ESTIMATED FUEL FLOW,Pounds per hour)#Microsoft.Generic.Fuel.ESTIMATED FUEL FLOW -FUEL CROSS FEED#(A:FUEL CROSS FEED,Enum)#Microsoft.Generic.Fuel.FUEL CROSS FEED -FUEL LEFT CAPACITY#(A:FUEL LEFT CAPACITY,Gallons)#Microsoft.Generic.Fuel.FUEL LEFT CAPACITY -FUEL LEFT QUANTITY#(A:FUEL LEFT QUANTITY,Gallons)#Microsoft.Generic.Fuel.FUEL LEFT QUANTITY -FUEL RIGHT CAPACITY#(A:FUEL RIGHT CAPACITY,Gallons)#Microsoft.Generic.Fuel.FUEL RIGHT CAPACITY -FUEL RIGHT QUANTITY#(A:FUEL RIGHT QUANTITY,Gallons)#Microsoft.Generic.Fuel.FUEL RIGHT QUANTITY -FUEL SELECTED QUANTITY#(A:FUEL SELECTED QUANTITY,Gallons)#Microsoft.Generic.Fuel.FUEL SELECTED QUANTITY -FUEL SELECTED QUANTITY PERCENT#(A:FUEL SELECTED QUANTITY PERCENT,Percent Over 100)#Microsoft.Generic.Fuel.FUEL SELECTED QUANTITY PERCENT -FUEL TANK CENTER CAPACITY#(A:FUEL TANK CENTER CAPACITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK CENTER CAPACITY -FUEL TANK CENTER LEVEL#(A:FUEL TANK CENTER LEVEL,Percent Over 100)#Microsoft.Generic.Fuel.FUEL TANK CENTER LEVEL -FUEL TANK CENTER QUANTITY#(A:FUEL TANK CENTER QUANTITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK CENTER QUANTITY -FUEL TANK CENTER2 CAPACITY#(A:FUEL TANK CENTER2 CAPACITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK CENTER2 CAPACITY -FUEL TANK CENTER2 LEVEL#(A:FUEL TANK CENTER2 LEVEL,Percent Over 100)#Microsoft.Generic.Fuel.FUEL TANK CENTER2 LEVEL -FUEL TANK CENTER2 QUANTITY#(A:FUEL TANK CENTER2 QUANTITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK CENTER2 QUANTITY -FUEL TANK CENTER3 CAPACITY#(A:FUEL TANK CENTER3 CAPACITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK CENTER3 CAPACITY -FUEL TANK CENTER3 LEVEL#(A:FUEL TANK CENTER3 LEVEL,Percent Over 100)#Microsoft.Generic.Fuel.FUEL TANK CENTER3 LEVEL -FUEL TANK CENTER3 QUANTITY#(A:FUEL TANK CENTER3 QUANTITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK CENTER3 QUANTITY -FUEL TANK EXTERNAL1 CAPACITY#(A:FUEL TANK EXTERNAL1 CAPACITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK EXTERNAL1 CAPACITY -FUEL TANK EXTERNAL1 LEVEL#(A:FUEL TANK EXTERNAL1 LEVEL,Percent Over 100)#Microsoft.Generic.Fuel.FUEL TANK EXTERNAL1 LEVEL -FUEL TANK EXTERNAL1 QUANTITY#(A:FUEL TANK EXTERNAL1 QUANTITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK EXTERNAL1 QUANTITY -FUEL TANK EXTERNAL2 CAPACITY#(A:FUEL TANK EXTERNAL2 CAPACITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK EXTERNAL2 CAPACITY -FUEL TANK EXTERNAL2 LEVEL#(A:FUEL TANK EXTERNAL2 LEVEL,Percent Over 100)#Microsoft.Generic.Fuel.FUEL TANK EXTERNAL2 LEVEL -FUEL TANK EXTERNAL2 QUANTITY#(A:FUEL TANK EXTERNAL2 QUANTITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK EXTERNAL2 QUANTITY -FUEL TANK LEFT AUX CAPACITY#(A:FUEL TANK LEFT AUX CAPACITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK LEFT AUX CAPACITY -FUEL TANK LEFT AUX LEVEL#(A:FUEL TANK LEFT AUX LEVEL,Percent Over 100)#Microsoft.Generic.Fuel.FUEL TANK LEFT AUX LEVEL -FUEL TANK LEFT AUX QUANTITY#(A:FUEL TANK LEFT AUX QUANTITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK LEFT AUX QUANTITY -FUEL TANK LEFT MAIN CAPACITY#(A:FUEL TANK LEFT MAIN CAPACITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK LEFT MAIN CAPACITY -FUEL TANK LEFT MAIN LEVEL#(A:FUEL TANK LEFT MAIN LEVEL,Percent Over 100)#Microsoft.Generic.Fuel.FUEL TANK LEFT MAIN LEVEL -FUEL TANK LEFT MAIN QUANTITY#(A:FUEL TANK LEFT MAIN QUANTITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK LEFT MAIN QUANTITY -FUEL TANK LEFT TIP CAPACITY#(A:FUEL TANK LEFT TIP CAPACITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK LEFT TIP CAPACITY -FUEL TANK LEFT TIP LEVEL#(A:FUEL TANK LEFT TIP LEVEL,Percent Over 100)#Microsoft.Generic.Fuel.FUEL TANK LEFT TIP LEVEL -FUEL TANK LEFT TIP QUANTITY#(A:FUEL TANK LEFT TIP QUANTITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK LEFT TIP QUANTITY -FUEL TANK RIGHT AUX CAPACITY#(A:FUEL TANK RIGHT AUX CAPACITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK RIGHT AUX CAPACITY -FUEL TANK RIGHT AUX LEVEL#(A:FUEL TANK RIGHT AUX LEVEL,Percent Over 100)#Microsoft.Generic.Fuel.FUEL TANK RIGHT AUX LEVEL -FUEL TANK RIGHT AUX QUANTITY#(A:FUEL TANK RIGHT AUX QUANTITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK RIGHT AUX QUANTITY -FUEL TANK RIGHT MAIN CAPACITY#(A:FUEL TANK RIGHT MAIN CAPACITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK RIGHT MAIN CAPACITY -FUEL TANK RIGHT MAIN LEVEL#(A:FUEL TANK RIGHT MAIN LEVEL,Percent Over 100)#Microsoft.Generic.Fuel.FUEL TANK RIGHT MAIN LEVEL -FUEL TANK RIGHT MAIN QUANTITY#(A:FUEL TANK RIGHT MAIN QUANTITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK RIGHT MAIN QUANTITY -FUEL TANK RIGHT TIP CAPACITY#(A:FUEL TANK RIGHT TIP CAPACITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK RIGHT TIP CAPACITY -FUEL TANK RIGHT TIP LEVEL#(A:FUEL TANK RIGHT TIP LEVEL,Percent Over 100)#Microsoft.Generic.Fuel.FUEL TANK RIGHT TIP LEVEL -FUEL TANK RIGHT TIP QUANTITY#(A:FUEL TANK RIGHT TIP QUANTITY,Gallons)#Microsoft.Generic.Fuel.FUEL TANK RIGHT TIP QUANTITY -FUEL TANK SELECTOR:index#(A:FUEL TANK SELECTOR:index,Enum)#Microsoft.Generic.Fuel.FUEL TANK SELECTOR:index -FUEL TOTAL CAPACITY#(A:FUEL TOTAL CAPACITY,Gallons)#Microsoft.Generic.Fuel.FUEL TOTAL CAPACITY -FUEL TOTAL QUANTITY#(A:FUEL TOTAL QUANTITY,Gallons)#Microsoft.Generic.Fuel.FUEL TOTAL QUANTITY -FUEL TOTAL QUANTITY WEIGHT#(A:FUEL TOTAL QUANTITY WEIGHT,Pounds)#Microsoft.Generic.Fuel.FUEL TOTAL QUANTITY WEIGHT -FUEL WEIGHT PER GALLON#(A:FUEL WEIGHT PER GALLON,Pounds)#Microsoft.Generic.Fuel.FUEL WEIGHT PER GALLON -NEW FUEL SYSTEM#(A:NEW FUEL SYSTEM,Bool)#Microsoft.Generic.Fuel.NEW FUEL SYSTEM -NUM FUEL SELECTORS#(A:NUM FUEL SELECTORS,Number)#Microsoft.Generic.Fuel.NUM FUEL SELECTORS -UNLIMITED FUEL#(A:UNLIMITED FUEL,Bool)#Microsoft.Generic.Fuel.UNLIMITED FUEL -Microsoft/Generic/Gear#GROUP -AUX WHEEL ROTATION ANGLE#(A:AUX WHEEL ROTATION ANGLE,Radians)#Microsoft.Generic.Gear.AUX WHEEL ROTATION ANGLE -AUX WHEEL RPM#(A:AUX WHEEL RPM,Rpm)#Microsoft.Generic.Gear.AUX WHEEL RPM -CENTER WHEEL ROTATION ANGLE#(A:CENTER WHEEL ROTATION ANGLE,Radians)#Microsoft.Generic.Gear.CENTER WHEEL ROTATION ANGLE -CENTER WHEEL RPM#(A:CENTER WHEEL RPM,Rpm)#Microsoft.Generic.Gear.CENTER WHEEL RPM -GEAR ANIMATION POSITION:index#(A:GEAR ANIMATION POSITION:index,Number)#Microsoft.Generic.Gear.GEAR ANIMATION POSITION:index -GEAR AUX POSITION#(A:GEAR AUX POSITION,Percent Over 100)#Microsoft.Generic.Gear.GEAR AUX POSITION -GEAR AUX STEER ANGLE#(A:GEAR AUX STEER ANGLE,Percent Over 100)#Microsoft.Generic.Gear.GEAR AUX STEER ANGLE -GEAR AUX STEER ANGLE PCT#(A:GEAR AUX STEER ANGLE PCT,Percent Over 100)#Microsoft.Generic.Gear.GEAR AUX STEER ANGLE PCT -GEAR CENTER POSITION#(A:GEAR CENTER POSITION,Percent)#Microsoft.Generic.Gear.GEAR CENTER POSITION -GEAR CENTER STEER ANGLE#(A:GEAR CENTER STEER ANGLE,Percent Over 100)#Microsoft.Generic.Gear.GEAR CENTER STEER ANGLE -GEAR CENTER STEER ANGLE PCT#(A:GEAR CENTER STEER ANGLE PCT,Percent Over 100)#Microsoft.Generic.Gear.GEAR CENTER STEER ANGLE PCT -GEAR DAMAGE BY SPEED#(A:GEAR DAMAGE BY SPEED,Bool)#Microsoft.Generic.Gear.GEAR DAMAGE BY SPEED -GEAR EMERGENCY HANDLE POSITION#(A:GEAR EMERGENCY HANDLE POSITION,Bool)#Microsoft.Generic.Gear.GEAR EMERGENCY HANDLE POSITION -GEAR HANDLE POSITION#(A:GEAR HANDLE POSITION,Bool)#Microsoft.Generic.Gear.GEAR HANDLE POSITION -GEAR HYDRAULIC PRESSURE#(A:GEAR HYDRAULIC PRESSURE,Pound)#Microsoft.Generic.Gear.GEAR HYDRAULIC PRESSURE -GEAR LEFT POSITION#(A:GEAR LEFT POSITION,Percent)#Microsoft.Generic.Gear.GEAR LEFT POSITION -GEAR LEFT STEER ANGLE#(A:GEAR LEFT STEER ANGLE,Percent Over 100)#Microsoft.Generic.Gear.GEAR LEFT STEER ANGLE -GEAR LEFT STEER ANGLE PCT#(A:GEAR LEFT STEER ANGLE PCT,Percent Over 100)#Microsoft.Generic.Gear.GEAR LEFT STEER ANGLE PCT -GEAR POSITION:index#(A:GEAR POSITION:index,Enum)#Microsoft.Generic.Gear.GEAR POSITION:index -GEAR RIGHT POSITION#(A:GEAR RIGHT POSITION,Percent)#Microsoft.Generic.Gear.GEAR RIGHT POSITION -GEAR RIGHT STEER ANGLE#(A:GEAR RIGHT STEER ANGLE,Percent Over 100)#Microsoft.Generic.Gear.GEAR RIGHT STEER ANGLE -GEAR RIGHT STEER ANGLE PCT#(A:GEAR RIGHT STEER ANGLE PCT,Percent Over 100)#Microsoft.Generic.Gear.GEAR RIGHT STEER ANGLE PCT -GEAR SPEED EXCEEDED#(A:GEAR SPEED EXCEEDED,Bool)#Microsoft.Generic.Gear.GEAR SPEED EXCEEDED -GEAR STEER ANGLE PCT:index#(A:GEAR STEER ANGLE PCT:index,Percent Over 100)#Microsoft.Generic.Gear.GEAR STEER ANGLE PCT:index -GEAR STEER ANGLE:index#(A:GEAR STEER ANGLE:index,Percent Over 100)#Microsoft.Generic.Gear.GEAR STEER ANGLE:index -GEAR TAIL POSITION#(A:GEAR TAIL POSITION,Percent Over 100)#Microsoft.Generic.Gear.GEAR TAIL POSITION -GEAR TOTAL PCT EXTENDED#(A:GEAR TOTAL PCT EXTENDED,Percentage)#Microsoft.Generic.Gear.GEAR TOTAL PCT EXTENDED -GEAR WARNING#(A:GEAR WARNING,Enum)#Microsoft.Generic.Gear.GEAR WARNING -IS GEAR FLOATS#(A:IS GEAR FLOATS,Bool)#Microsoft.Generic.Gear.IS GEAR FLOATS -IS GEAR RETRACTABLE#(A:IS GEAR RETRACTABLE,Bool)#Microsoft.Generic.Gear.IS GEAR RETRACTABLE -IS GEAR SKIDS#(A:IS GEAR SKIDS,Bool)#Microsoft.Generic.Gear.IS GEAR SKIDS -IS GEAR SKIS#(A:IS GEAR SKIS,Bool)#Microsoft.Generic.Gear.IS GEAR SKIS -IS GEAR WHEELS#(A:IS GEAR WHEELS,Bool)#Microsoft.Generic.Gear.IS GEAR WHEELS -LEFT WHEEL ROTATION ANGLE#(A:LEFT WHEEL ROTATION ANGLE,Radians)#Microsoft.Generic.Gear.LEFT WHEEL ROTATION ANGLE -LEFT WHEEL RPM#(A:LEFT WHEEL RPM,Rpm)#Microsoft.Generic.Gear.LEFT WHEEL RPM -NOSEWHEEL LOCK ON#(A:NOSEWHEEL LOCK ON,Bool)#Microsoft.Generic.Gear.NOSEWHEEL LOCK ON -RETRACT FLOAT SWITCH#(A:RETRACT FLOAT SWITCH,Bool)#Microsoft.Generic.Gear.RETRACT FLOAT SWITCH -RETRACT LEFT FLOAT EXTENDED#(A:RETRACT LEFT FLOAT EXTENDED,Percent)#Microsoft.Generic.Gear.RETRACT LEFT FLOAT EXTENDED -RETRACT RIGHT FLOAT EXTENDED#(A:RETRACT RIGHT FLOAT EXTENDED,Percent)#Microsoft.Generic.Gear.RETRACT RIGHT FLOAT EXTENDED -RIGHT WHEEL ROTATION ANGLE#(A:RIGHT WHEEL ROTATION ANGLE,Radians)#Microsoft.Generic.Gear.RIGHT WHEEL ROTATION ANGLE -RIGHT WHEEL RPM#(A:RIGHT WHEEL RPM,Rpm)#Microsoft.Generic.Gear.RIGHT WHEEL RPM -STEER INPUT CONTROL#(A:STEER INPUT CONTROL,Percent over 100)#Microsoft.Generic.Gear.STEER INPUT CONTROL -TAILWHEEL LOCK ON#(A:TAILWHEEL LOCK ON,Bool)#Microsoft.Generic.Gear.TAILWHEEL LOCK ON -WATER LEFT RUDDER EXTENDED#(A:WATER LEFT RUDDER EXTENDED,Percentage)#Microsoft.Generic.Gear.WATER LEFT RUDDER EXTENDED -WATER LEFT RUDDER STEER ANGLE#(A:WATER LEFT RUDDER STEER ANGLE,Percent Over 100)#Microsoft.Generic.Gear.WATER LEFT RUDDER STEER ANGLE -WATER LEFT RUDDER STEER ANGLE PCT#(A:WATER LEFT RUDDER STEER ANGLE PCT,Percent Over 100)#Microsoft.Generic.Gear.WATER LEFT RUDDER STEER ANGLE PCT -WATER RIGHT RUDDER EXTENDED#(A:WATER RIGHT RUDDER EXTENDED,Percentage)#Microsoft.Generic.Gear.WATER RIGHT RUDDER EXTENDED -WATER RIGHT RUDDER STEER ANGLE#(A:WATER RIGHT RUDDER STEER ANGLE,Percent Over 100)#Microsoft.Generic.Gear.WATER RIGHT RUDDER STEER ANGLE -WATER RIGHT RUDDER STEER ANGLE PCT#(A:WATER RIGHT RUDDER STEER ANGLE PCT,Percent Over 100)#Microsoft.Generic.Gear.WATER RIGHT RUDDER STEER ANGLE PCT -WATER RUDDER HANDLE POSITION#(A:WATER RUDDER HANDLE POSITION,Percent Over 100)#Microsoft.Generic.Gear.WATER RUDDER HANDLE POSITION -WHEEL ROTATION ANGLE#(A:WHEEL ROTATION ANGLE,Radians)#Microsoft.Generic.Gear.WHEEL ROTATION ANGLE -WHEEL RPM#(A:WHEEL RPM,Rpm)#Microsoft.Generic.Gear.WHEEL RPM -Microsoft/Generic/Interaction#GROUP -EXIT OPEN:index#(A:EXIT OPEN:index,Percent Over 100)#Microsoft.Generic.Interaction.EXIT OPEN:index -EXIT POSX#(A:EXIT POSX,Feet)#Microsoft.Generic.Interaction.EXIT POSX -EXIT POSY#(A:EXIT POSY,Feet)#Microsoft.Generic.Interaction.EXIT POSY -EXIT POSZ#(A:EXIT POSZ,Feet)#Microsoft.Generic.Interaction.EXIT POSZ -EXIT TYPE#(A:EXIT TYPE,Enum)#Microsoft.Generic.Interaction.EXIT TYPE -INTERACTIVE POINT BANK#(A:INTERACTIVE POINT BANK,Degrees)#Microsoft.Generic.Interaction.INTERACTIVE POINT BANK -INTERACTIVE POINT HEADING#(A:INTERACTIVE POINT HEADING,Degrees)#Microsoft.Generic.Interaction.INTERACTIVE POINT HEADING -INTERACTIVE POINT JETWAY LEFT BEND#(A:INTERACTIVE POINT JETWAY LEFT BEND,Percent)#Microsoft.Generic.Interaction.INTERACTIVE POINT JETWAY LEFT BEND -INTERACTIVE POINT JETWAY LEFT DEPLOYMENT#(A:INTERACTIVE POINT JETWAY LEFT DEPLOYMENT,Degrees)#Microsoft.Generic.Interaction.INTERACTIVE POINT JETWAY LEFT DEPLOYMENT -INTERACTIVE POINT JETWAY RIGHT BEND#(A:INTERACTIVE POINT JETWAY RIGHT BEND,Percent)#Microsoft.Generic.Interaction.INTERACTIVE POINT JETWAY RIGHT BEND -INTERACTIVE POINT JETWAY RIGHT DEPLOYMENT#(A:INTERACTIVE POINT JETWAY RIGHT DEPLOYMENT,Degrees)#Microsoft.Generic.Interaction.INTERACTIVE POINT JETWAY RIGHT DEPLOYMENT -INTERACTIVE POINT JETWAY TOP HORIZONTAL#(A:INTERACTIVE POINT JETWAY TOP HORIZONTAL,Percent)#Microsoft.Generic.Interaction.INTERACTIVE POINT JETWAY TOP HORIZONTAL -INTERACTIVE POINT JETWAY TOP VERTICAL#(A:INTERACTIVE POINT JETWAY TOP VERTICAL,Percent)#Microsoft.Generic.Interaction.INTERACTIVE POINT JETWAY TOP VERTICAL -INTERACTIVE POINT OPEN#(A:INTERACTIVE POINT OPEN,Percent over 100)#Microsoft.Generic.Interaction.INTERACTIVE POINT OPEN -INTERACTIVE POINT PITCH#(A:INTERACTIVE POINT PITCH,Degrees)#Microsoft.Generic.Interaction.INTERACTIVE POINT PITCH -INTERACTIVE POINT POSX#(A:INTERACTIVE POINT POSX,Feet)#Microsoft.Generic.Interaction.INTERACTIVE POINT POSX -INTERACTIVE POINT POSY#(A:INTERACTIVE POINT POSY,Feet)#Microsoft.Generic.Interaction.INTERACTIVE POINT POSY -INTERACTIVE POINT POSZ#(A:INTERACTIVE POINT POSZ,Feet)#Microsoft.Generic.Interaction.INTERACTIVE POINT POSZ -INTERACTIVE POINT TYPE#(A:INTERACTIVE POINT TYPE,Enum)#Microsoft.Generic.Interaction.INTERACTIVE POINT TYPE -Microsoft/Generic/Lights#GROUP -LANDING LIGHT PBH#(A:LANDING LIGHT PBH,Number)#Microsoft.Generic.Lights.LANDING LIGHT PBH -LIGHT BACKLIGHT INTENSITY#(A:LIGHT BACKLIGHT INTENSITY,Percent over 100)#Microsoft.Generic.Lights.LIGHT BACKLIGHT INTENSITY -LIGHT BEACON#(A:LIGHT BEACON,Bool)#Microsoft.Generic.Lights.LIGHT BEACON -LIGHT BEACON ON#(A:LIGHT BEACON ON,Bool)#Microsoft.Generic.Lights.LIGHT BEACON ON -LIGHT CABIN#(A:LIGHT CABIN,Bool)#Microsoft.Generic.Lights.LIGHT CABIN -LIGHT CABIN ON#(A:LIGHT CABIN ON,Bool)#Microsoft.Generic.Lights.LIGHT CABIN ON -LIGHT GYROLIGHT INTENSITY#(A:LIGHT GYROLIGHT INTENSITY,Percent over 100)#Microsoft.Generic.Lights.LIGHT GYROLIGHT INTENSITY -LIGHT HEAD ON#(A:LIGHT HEAD ON,Bool)#Microsoft.Generic.Lights.LIGHT HEAD ON -LIGHT HEADLIGHT INTENSITY#(A:LIGHT HEADLIGHT INTENSITY,Percent over 100)#Microsoft.Generic.Lights.LIGHT HEADLIGHT INTENSITY -LIGHT LANDING#(A:LIGHT LANDING,Bool)#Microsoft.Generic.Lights.LIGHT LANDING -LIGHT LANDING ON#(A:LIGHT LANDING ON,Bool)#Microsoft.Generic.Lights.LIGHT LANDING ON -LIGHT LOGO#(A:LIGHT LOGO,Bool)#Microsoft.Generic.Lights.LIGHT LOGO -LIGHT LOGO ON#(A:LIGHT LOGO ON,Bool)#Microsoft.Generic.Lights.LIGHT LOGO ON -LIGHT NAV#(A:LIGHT NAV,Bool)#Microsoft.Generic.Lights.LIGHT NAV -LIGHT NAV ON#(A:LIGHT NAV ON,Bool)#Microsoft.Generic.Lights.LIGHT NAV ON -LIGHT ON STATES#(A:LIGHT ON STATES,Mask)#Microsoft.Generic.Lights.LIGHT ON STATES -LIGHT PANEL#(A:LIGHT PANEL,Bool)#Microsoft.Generic.Lights.LIGHT PANEL -LIGHT PANEL ON#(A:LIGHT PANEL ON,Bool)#Microsoft.Generic.Lights.LIGHT PANEL ON -LIGHT RECOGNITION#(A:LIGHT RECOGNITION,Bool)#Microsoft.Generic.Lights.LIGHT RECOGNITION -LIGHT RECOGNITION ON#(A:LIGHT RECOGNITION ON,Bool)#Microsoft.Generic.Lights.LIGHT RECOGNITION ON -LIGHT STATES#(A:LIGHT STATES,Mask)#Microsoft.Generic.Lights.LIGHT STATES -LIGHT STROBE#(A:LIGHT STROBE,Bool)#Microsoft.Generic.Lights.LIGHT STROBE -LIGHT STROBE ON#(A:LIGHT STROBE ON,Bool)#Microsoft.Generic.Lights.LIGHT STROBE ON -LIGHT TAXI#(A:LIGHT TAXI,Bool)#Microsoft.Generic.Lights.LIGHT TAXI -LIGHT TAXI ON#(A:LIGHT TAXI ON,Bool)#Microsoft.Generic.Lights.LIGHT TAXI ON -LIGHT WING#(A:LIGHT WING,Bool)#Microsoft.Generic.Lights.LIGHT WING -LIGHT WING ON#(A:LIGHT WING ON,Bool)#Microsoft.Generic.Lights.LIGHT WING ON -Microsoft/Generic/Miscellaneous#GROUP -AIRSPEED SELECT INDICATED OR TRUE#(A:AIRSPEED SELECT INDICATED OR TRUE,Knots)#Microsoft.Generic.Miscellaneous.AIRSPEED SELECT INDICATED OR TRUE -ANEMOMETER PCT RPM#(A:ANEMOMETER PCT RPM,Percent over 100)#Microsoft.Generic.Miscellaneous.ANEMOMETER PCT RPM -ANIMATION DELTA TIME#(A:ANIMATION DELTA TIME,Seconds)#Microsoft.Generic.Miscellaneous.ANIMATION DELTA TIME -ANNUNCIATOR SWITCH#(A:ANNUNCIATOR SWITCH,Bool)#Microsoft.Generic.Miscellaneous.ANNUNCIATOR SWITCH -APPLY HEAT TO SYSTEMS#(A:APPLY HEAT TO SYSTEMS,Bool)#Microsoft.Generic.Miscellaneous.APPLY HEAT TO SYSTEMS -APU GENERATOR ACTIVE#(A:APU GENERATOR ACTIVE,Bool)#Microsoft.Generic.Miscellaneous.APU GENERATOR ACTIVE -APU GENERATOR SWITCH#(A:APU GENERATOR SWITCH,Bool)#Microsoft.Generic.Miscellaneous.APU GENERATOR SWITCH -APU ON FIRE DETECTED#(A:APU ON FIRE DETECTED,Bool)#Microsoft.Generic.Miscellaneous.APU ON FIRE DETECTED -APU PCT RPM#(A:APU PCT RPM,Percent over 100)#Microsoft.Generic.Miscellaneous.APU PCT RPM -APU PCT STARTER#(A:APU PCT STARTER,Percent over 100)#Microsoft.Generic.Miscellaneous.APU PCT STARTER -APU VOLTS#(A:APU VOLTS,Volts)#Microsoft.Generic.Miscellaneous.APU VOLTS -ARTIFICIAL GROUND ELEVATION#(A:ARTIFICIAL GROUND ELEVATION,Feet)#Microsoft.Generic.Miscellaneous.ARTIFICIAL GROUND ELEVATION -ATC AIRLINE#(A:ATC AIRLINE,String)#Microsoft.Generic.Miscellaneous.ATC AIRLINE -ATC FLIGHT NUMBER#(A:ATC FLIGHT NUMBER,String)#Microsoft.Generic.Miscellaneous.ATC FLIGHT NUMBER -ATC HEAVY#(A:ATC HEAVY,Bool)#Microsoft.Generic.Miscellaneous.ATC HEAVY -ATC ID#(A:ATC ID,String)#Microsoft.Generic.Miscellaneous.ATC ID -ATC MODEL#(A:ATC MODEL,String)#Microsoft.Generic.Miscellaneous.ATC MODEL -ATC ON PARKING SPOT#(A:ATC ON PARKING SPOT,Bool)#Microsoft.Generic.Miscellaneous.ATC ON PARKING SPOT -ATC SUGGESTED MIN RWY LANDING#(A:ATC SUGGESTED MIN RWY LANDING,Feet)#Microsoft.Generic.Miscellaneous.ATC SUGGESTED MIN RWY LANDING -ATC SUGGESTED MIN RWY TAKEOFF#(A:ATC SUGGESTED MIN RWY TAKEOFF,Feet)#Microsoft.Generic.Miscellaneous.ATC SUGGESTED MIN RWY TAKEOFF -ATC TYPE#(A:ATC TYPE,String)#Microsoft.Generic.Miscellaneous.ATC TYPE -AUTO COORDINATION#(A:AUTO COORDINATION,Bool)#Microsoft.Generic.Miscellaneous.AUTO COORDINATION -BETA DOT#(A:BETA DOT,Radians per second)#Microsoft.Generic.Miscellaneous.BETA DOT -BLEED AIR SOURCE CONTROL#(A:BLEED AIR SOURCE CONTROL,Enum)#Microsoft.Generic.Miscellaneous.BLEED AIR SOURCE CONTROL -CABIN NO SMOKING ALERT SWITCH#(A:CABIN NO SMOKING ALERT SWITCH,Bool)#Microsoft.Generic.Miscellaneous.CABIN NO SMOKING ALERT SWITCH -CANOPY OPEN#(A:CANOPY OPEN,Percent Over 100)#Microsoft.Generic.Miscellaneous.CANOPY OPEN -CARB HEAT AVAILABLE#(A:CARB HEAT AVAILABLE,Bool)#Microsoft.Generic.Miscellaneous.CARB HEAT AVAILABLE -CATEGORY#(A:CATEGORY,String)#Microsoft.Generic.Miscellaneous.CATEGORY -CG AFT LIMIT#(A:CG AFT LIMIT,Percent over 100)#Microsoft.Generic.Miscellaneous.CG AFT LIMIT -CG FWD LIMIT#(A:CG FWD LIMIT,Percent over 100)#Microsoft.Generic.Miscellaneous.CG FWD LIMIT -CG MAX MACH#(A:CG MAX MACH,Machs)#Microsoft.Generic.Miscellaneous.CG MAX MACH -CG MIN MACH#(A:CG MIN MACH,Machs)#Microsoft.Generic.Miscellaneous.CG MIN MACH -CG PERCENT#(A:CG PERCENT,Percent over 100)#Microsoft.Generic.Miscellaneous.CG PERCENT -CG PERCENT LATERAL#(A:CG PERCENT LATERAL,Percent over 100)#Microsoft.Generic.Miscellaneous.CG PERCENT LATERAL -CIRCUIT AUTO FEATHER ON#(A:CIRCUIT AUTO FEATHER ON,Bool)#Microsoft.Generic.Miscellaneous.CIRCUIT AUTO FEATHER ON -CIRCUIT AUTOPILOT ON#(A:CIRCUIT AUTOPILOT ON,Bool)#Microsoft.Generic.Miscellaneous.CIRCUIT AUTOPILOT ON -CIRCUIT AVIONICS ON#(A:CIRCUIT AVIONICS ON,Bool)#Microsoft.Generic.Miscellaneous.CIRCUIT AVIONICS ON -CIRCUIT FLAP MOTOR ON#(A:CIRCUIT FLAP MOTOR ON,Bool)#Microsoft.Generic.Miscellaneous.CIRCUIT FLAP MOTOR ON -CIRCUIT GEAR MOTOR ON#(A:CIRCUIT GEAR MOTOR ON,Bool)#Microsoft.Generic.Miscellaneous.CIRCUIT GEAR MOTOR ON -CIRCUIT GEAR WARNING ON#(A:CIRCUIT GEAR WARNING ON,Bool)#Microsoft.Generic.Miscellaneous.CIRCUIT GEAR WARNING ON -CIRCUIT GENERAL PANEL ON#(A:CIRCUIT GENERAL PANEL ON,Bool)#Microsoft.Generic.Miscellaneous.CIRCUIT GENERAL PANEL ON -CIRCUIT HYDRAULIC PUMP ON#(A:CIRCUIT HYDRAULIC PUMP ON,Bool)#Microsoft.Generic.Miscellaneous.CIRCUIT HYDRAULIC PUMP ON -CIRCUIT MARKER BEACON ON#(A:CIRCUIT MARKER BEACON ON,Bool)#Microsoft.Generic.Miscellaneous.CIRCUIT MARKER BEACON ON -CIRCUIT PITOT HEAT ON#(A:CIRCUIT PITOT HEAT ON,Bool)#Microsoft.Generic.Miscellaneous.CIRCUIT PITOT HEAT ON -CIRCUIT PROP SYNC ON#(A:CIRCUIT PROP SYNC ON,Bool)#Microsoft.Generic.Miscellaneous.CIRCUIT PROP SYNC ON -CIRCUIT STANDY VACUUM ON#(A:CIRCUIT STANDY VACUUM ON,Bool)#Microsoft.Generic.Miscellaneous.CIRCUIT STANDY VACUUM ON -CONCORDE NOSE ANGLE#(A:CONCORDE NOSE ANGLE,Radians)#Microsoft.Generic.Miscellaneous.CONCORDE NOSE ANGLE -CONCORDE VISOR NOSE HANDLE#(A:CONCORDE VISOR NOSE HANDLE,Enum)#Microsoft.Generic.Miscellaneous.CONCORDE VISOR NOSE HANDLE -CONCORDE VISOR POSITION PERCENT#(A:CONCORDE VISOR POSITION PERCENT,Percent over 100)#Microsoft.Generic.Miscellaneous.CONCORDE VISOR POSITION PERCENT -CRASH FLAG#(A:CRASH FLAG,Enum)#Microsoft.Generic.Miscellaneous.CRASH FLAG -CRASH SEQUENCE#(A:CRASH SEQUENCE,Enum)#Microsoft.Generic.Miscellaneous.CRASH SEQUENCE -DECISION ALTITUDE MSL#(A:DECISION ALTITUDE MSL,Feet)#Microsoft.Generic.Miscellaneous.DECISION ALTITUDE MSL -DECISION HEIGHT#(A:DECISION HEIGHT,Feet)#Microsoft.Generic.Miscellaneous.DECISION HEIGHT -DESIGN SPEED VC#(A:DESIGN SPEED VC,Feet per second)#Microsoft.Generic.Miscellaneous.DESIGN SPEED VC -DESIGN SPEED VS0#(A:DESIGN SPEED VS0,Feet per second)#Microsoft.Generic.Miscellaneous.DESIGN SPEED VS0 -DESIGN SPEED VS1#(A:DESIGN SPEED VS1,Feet per second)#Microsoft.Generic.Miscellaneous.DESIGN SPEED VS1 -DISK BANK ANGLE#(A:DISK BANK ANGLE,Radians)#Microsoft.Generic.Miscellaneous.DISK BANK ANGLE -DISK BANK PCT#(A:DISK BANK PCT,Percent over 100)#Microsoft.Generic.Miscellaneous.DISK BANK PCT -DISK CONING PCT#(A:DISK CONING PCT,Percent over 100)#Microsoft.Generic.Miscellaneous.DISK CONING PCT -DISK PITCH ANGLE#(A:DISK PITCH ANGLE,Radians)#Microsoft.Generic.Miscellaneous.DISK PITCH ANGLE -DISK PITCH PCT#(A:DISK PITCH PCT,Percent over 100)#Microsoft.Generic.Miscellaneous.DISK PITCH PCT -DROPPABLE OBJECTS COUNT:index#(A:DROPPABLE OBJECTS COUNT:index,Number)#Microsoft.Generic.Miscellaneous.DROPPABLE OBJECTS COUNT:index -DROPPABLE OBJECTS TYPE:index#(A:DROPPABLE OBJECTS TYPE:index,String)#Microsoft.Generic.Miscellaneous.DROPPABLE OBJECTS TYPE:index -DROPPABLE OBJECTS UI NAME#(A:DROPPABLE OBJECTS UI NAME,String)#Microsoft.Generic.Miscellaneous.DROPPABLE OBJECTS UI NAME -DYNAMIC PRESSURE#(A:DYNAMIC PRESSURE,Pounds)#Microsoft.Generic.Miscellaneous.DYNAMIC PRESSURE -ELECTRICAL AVIONICS BUS AMPS#(A:ELECTRICAL AVIONICS BUS AMPS,Amperes)#Microsoft.Generic.Miscellaneous.ELECTRICAL AVIONICS BUS AMPS -ELECTRICAL AVIONICS BUS VOLTAGE#(A:ELECTRICAL AVIONICS BUS VOLTAGE,Volts)#Microsoft.Generic.Miscellaneous.ELECTRICAL AVIONICS BUS VOLTAGE -ELECTRICAL BATTERY BUS AMPS#(A:ELECTRICAL BATTERY BUS AMPS,Amperes)#Microsoft.Generic.Miscellaneous.ELECTRICAL BATTERY BUS AMPS -ELECTRICAL BATTERY BUS VOLTAGE#(A:ELECTRICAL BATTERY BUS VOLTAGE,Volts)#Microsoft.Generic.Miscellaneous.ELECTRICAL BATTERY BUS VOLTAGE -ELECTRICAL BATTERY LOAD#(A:ELECTRICAL BATTERY LOAD,Amperes)#Microsoft.Generic.Miscellaneous.ELECTRICAL BATTERY LOAD -ELECTRICAL BATTERY VOLTAGE#(A:ELECTRICAL BATTERY VOLTAGE,Volts)#Microsoft.Generic.Miscellaneous.ELECTRICAL BATTERY VOLTAGE -ELECTRICAL GENALT BUS AMPS:index#(A:ELECTRICAL GENALT BUS AMPS:index,Amperes)#Microsoft.Generic.Miscellaneous.ELECTRICAL GENALT BUS AMPS:index -ELECTRICAL GENALT BUS VOLTAGE:index#(A:ELECTRICAL GENALT BUS VOLTAGE:index,Volts)#Microsoft.Generic.Miscellaneous.ELECTRICAL GENALT BUS VOLTAGE:index -ELECTRICAL HOT BATTERY BUS AMPS#(A:ELECTRICAL HOT BATTERY BUS AMPS,Amperes)#Microsoft.Generic.Miscellaneous.ELECTRICAL HOT BATTERY BUS AMPS -ELECTRICAL HOT BATTERY BUS VOLTAGE#(A:ELECTRICAL HOT BATTERY BUS VOLTAGE,Volts)#Microsoft.Generic.Miscellaneous.ELECTRICAL HOT BATTERY BUS VOLTAGE -ELECTRICAL MAIN BUS AMPS#(A:ELECTRICAL MAIN BUS AMPS,Amperes)#Microsoft.Generic.Miscellaneous.ELECTRICAL MAIN BUS AMPS -ELECTRICAL MAIN BUS VOLTAGE#(A:ELECTRICAL MAIN BUS VOLTAGE,Volts)#Microsoft.Generic.Miscellaneous.ELECTRICAL MAIN BUS VOLTAGE -ELECTRICAL MASTER BATTERY#(A:ELECTRICAL MASTER BATTERY,Bool)#Microsoft.Generic.Miscellaneous.ELECTRICAL MASTER BATTERY -ELECTRICAL OLD CHARGING AMPS#(A:ELECTRICAL OLD CHARGING AMPS,Amps)#Microsoft.Generic.Miscellaneous.ELECTRICAL OLD CHARGING AMPS -ELECTRICAL TOTAL LOAD AMPS#(A:ELECTRICAL TOTAL LOAD AMPS,Amperes)#Microsoft.Generic.Miscellaneous.ELECTRICAL TOTAL LOAD AMPS -ELEVON DEFLECTION#(A:ELEVON DEFLECTION,Radians)#Microsoft.Generic.Miscellaneous.ELEVON DEFLECTION -EMPTY WEIGHT#(A:EMPTY WEIGHT,Pounds)#Microsoft.Generic.Miscellaneous.EMPTY WEIGHT -EMPTY WEIGHT CROSS COUPLED MOI#(A:EMPTY WEIGHT CROSS COUPLED MOI,Slugs per feet squared)#Microsoft.Generic.Miscellaneous.EMPTY WEIGHT CROSS COUPLED MOI -EMPTY WEIGHT PITCH MOI#(A:EMPTY WEIGHT PITCH MOI,Slugs per feet squared)#Microsoft.Generic.Miscellaneous.EMPTY WEIGHT PITCH MOI -EMPTY WEIGHT ROLL MOI#(A:EMPTY WEIGHT ROLL MOI,Slugs per feet squared)#Microsoft.Generic.Miscellaneous.EMPTY WEIGHT ROLL MOI -EMPTY WEIGHT YAW MOI#(A:EMPTY WEIGHT YAW MOI,Slugs per feet squared)#Microsoft.Generic.Miscellaneous.EMPTY WEIGHT YAW MOI -ENGINE MIXURE AVAILABLE#(A:ENGINE MIXURE AVAILABLE,Bool)#Microsoft.Generic.Miscellaneous.ENGINE MIXURE AVAILABLE -ESTIMATED CRUISE SPEED#(A:ESTIMATED CRUISE SPEED,Feet per second)#Microsoft.Generic.Miscellaneous.ESTIMATED CRUISE SPEED -FIRE BOTTLE DISCHARGED#(A:FIRE BOTTLE DISCHARGED,Bool)#Microsoft.Generic.Miscellaneous.FIRE BOTTLE DISCHARGED -FIRE BOTTLE SWITCH#(A:FIRE BOTTLE SWITCH,Bool)#Microsoft.Generic.Miscellaneous.FIRE BOTTLE SWITCH -FOLDING WING LEFT PERCENT#(A:FOLDING WING LEFT PERCENT,Percent Over 100)#Microsoft.Generic.Miscellaneous.FOLDING WING LEFT PERCENT -FOLDING WING RIGHT PERCENT#(A:FOLDING WING RIGHT PERCENT,Percent Over 100)#Microsoft.Generic.Miscellaneous.FOLDING WING RIGHT PERCENT -FUEL SELECTED TRANSFER MODE#(A:FUEL SELECTED TRANSFER MODE,Enum)#Microsoft.Generic.Miscellaneous.FUEL SELECTED TRANSFER MODE -FULL THROTTLE THRUST TO WEIGHT RATIO#(A:FULL THROTTLE THRUST TO WEIGHT RATIO,Number)#Microsoft.Generic.Miscellaneous.FULL THROTTLE THRUST TO WEIGHT RATIO -G FORCE#(A:G FORCE,GForce)#Microsoft.Generic.Miscellaneous.G FORCE -GPS APPROACH AIRPORT ID#(A:GPS APPROACH AIRPORT ID,String)#Microsoft.Generic.Miscellaneous.GPS APPROACH AIRPORT ID -GPS APPROACH APPROACH ID#(A:GPS APPROACH APPROACH ID,String)#Microsoft.Generic.Miscellaneous.GPS APPROACH APPROACH ID -GPS APPROACH TRANSITION ID#(A:GPS APPROACH TRANSITION ID,String)#Microsoft.Generic.Miscellaneous.GPS APPROACH TRANSITION ID -GPS WP NEXT ID#(A:GPS WP NEXT ID,String)#Microsoft.Generic.Miscellaneous.GPS WP NEXT ID -GPS WP PREV ID#(A:GPS WP PREV ID,String)#Microsoft.Generic.Miscellaneous.GPS WP PREV ID -GPWS SYSTEM ACTIVE#(A:GPWS SYSTEM ACTIVE,Bool)#Microsoft.Generic.Miscellaneous.GPWS SYSTEM ACTIVE -GPWS WARNING#(A:GPWS WARNING,Bool)#Microsoft.Generic.Miscellaneous.GPWS WARNING -HSI STATION IDENT#(A:HSI STATION IDENT,String)#Microsoft.Generic.Miscellaneous.HSI STATION IDENT -HYDRAULIC PRESSURE:index#(A:HYDRAULIC PRESSURE:index,Pound force per square foot)#Microsoft.Generic.Miscellaneous.HYDRAULIC PRESSURE:index -HYDRAULIC RESERVOIR PERCENT:index#(A:HYDRAULIC RESERVOIR PERCENT:index,Percent Over 100)#Microsoft.Generic.Miscellaneous.HYDRAULIC RESERVOIR PERCENT:index -HYDRAULIC SWITCH#(A:HYDRAULIC SWITCH,Bool)#Microsoft.Generic.Miscellaneous.HYDRAULIC SWITCH -HYDRAULIC SYSTEM INTEGRITY#(A:HYDRAULIC SYSTEM INTEGRITY,Percent Over 100)#Microsoft.Generic.Miscellaneous.HYDRAULIC SYSTEM INTEGRITY -INDUCTOR COMPASS HEADING REF#(A:INDUCTOR COMPASS HEADING REF,Radians)#Microsoft.Generic.Miscellaneous.INDUCTOR COMPASS HEADING REF -INDUCTOR COMPASS PERCENT DEVIATION#(A:INDUCTOR COMPASS PERCENT DEVIATION,Percent over 100)#Microsoft.Generic.Miscellaneous.INDUCTOR COMPASS PERCENT DEVIATION -IS ALTITUDE FREEZE ON#(A:IS ALTITUDE FREEZE ON,Bool)#Microsoft.Generic.Miscellaneous.IS ALTITUDE FREEZE ON -IS ATTITUDE FREEZE ON#(A:IS ATTITUDE FREEZE ON,Bool)#Microsoft.Generic.Miscellaneous.IS ATTITUDE FREEZE ON -IS LATITUDE LONGITUDE FREEZE ON#(A:IS LATITUDE LONGITUDE FREEZE ON,Bool)#Microsoft.Generic.Miscellaneous.IS LATITUDE LONGITUDE FREEZE ON -IS SLEW ACTIVE#(A:IS SLEW ACTIVE,Bool)#Microsoft.Generic.Miscellaneous.IS SLEW ACTIVE -IS SLEW ALLOWED#(A:IS SLEW ALLOWED,Bool)#Microsoft.Generic.Miscellaneous.IS SLEW ALLOWED -IS TAIL DRAGGER#(A:IS TAIL DRAGGER,Bool)#Microsoft.Generic.Miscellaneous.IS TAIL DRAGGER -IS USER SIM#(A:IS USER SIM,Bool)#Microsoft.Generic.Miscellaneous.IS USER SIM -LINEAR CL ALPHA#(A:LINEAR CL ALPHA,Per radian)#Microsoft.Generic.Miscellaneous.LINEAR CL ALPHA -MAGNETIC COMPASS#(A:MAGNETIC COMPASS,Degrees)#Microsoft.Generic.Miscellaneous.MAGNETIC COMPASS -MANUAL FUEL PUMP HANDLE#(A:MANUAL FUEL PUMP HANDLE,Percent over 100)#Microsoft.Generic.Miscellaneous.MANUAL FUEL PUMP HANDLE -MANUAL INSTRUMENT LIGHTS#(A:MANUAL INSTRUMENT LIGHTS,Bool)#Microsoft.Generic.Miscellaneous.MANUAL INSTRUMENT LIGHTS -MAX GROSS WEIGHT#(A:MAX GROSS WEIGHT,Pounds)#Microsoft.Generic.Miscellaneous.MAX GROSS WEIGHT -MAX RATED ENGINE RPM#(A:MAX RATED ENGINE RPM,Rpm)#Microsoft.Generic.Miscellaneous.MAX RATED ENGINE RPM -MIN DRAG VELOCITY#(A:MIN DRAG VELOCITY,Feet per second)#Microsoft.Generic.Miscellaneous.MIN DRAG VELOCITY -NAV GS LLAF64#(A:NAV GS LLAF64,Number)#Microsoft.Generic.Miscellaneous.NAV GS LLAF64 -NAV VOR LLAF64#(A:NAV VOR LLAF64,Number)#Microsoft.Generic.Miscellaneous.NAV VOR LLAF64 -PANEL ANTI ICE SWITCH#(A:PANEL ANTI ICE SWITCH,Bool)#Microsoft.Generic.Miscellaneous.PANEL ANTI ICE SWITCH -PAYLOAD STATION COUNT#(A:PAYLOAD STATION COUNT,Number)#Microsoft.Generic.Miscellaneous.PAYLOAD STATION COUNT -PAYLOAD STATION NAME#(A:PAYLOAD STATION NAME,String)#Microsoft.Generic.Miscellaneous.PAYLOAD STATION NAME -PAYLOAD STATION WEIGHT:index#(A:PAYLOAD STATION WEIGHT:index,Pounds)#Microsoft.Generic.Miscellaneous.PAYLOAD STATION WEIGHT:index -PITOT HEAT#(A:PITOT HEAT,Bool)#Microsoft.Generic.Miscellaneous.PITOT HEAT -PITOT HEAT SWITCH#(A:PITOT HEAT SWITCH,Enum)#Microsoft.Generic.Miscellaneous.PITOT HEAT SWITCH -PITOT ICE PCT#(A:PITOT ICE PCT,Percent over 100)#Microsoft.Generic.Miscellaneous.PITOT ICE PCT -PRESSURE ALTITUDE#(A:PRESSURE ALTITUDE,Meters)#Microsoft.Generic.Miscellaneous.PRESSURE ALTITUDE -PRESSURIZATION CABIN ALTITUDE#(A:PRESSURIZATION CABIN ALTITUDE,Feet)#Microsoft.Generic.Miscellaneous.PRESSURIZATION CABIN ALTITUDE -PRESSURIZATION CABIN ALTITUDE GOAL#(A:PRESSURIZATION CABIN ALTITUDE GOAL,Feet)#Microsoft.Generic.Miscellaneous.PRESSURIZATION CABIN ALTITUDE GOAL -PRESSURIZATION CABIN ALTITUDE RATE#(A:PRESSURIZATION CABIN ALTITUDE RATE,Feet per second)#Microsoft.Generic.Miscellaneous.PRESSURIZATION CABIN ALTITUDE RATE -PRESSURIZATION DUMP SWITCH#(A:PRESSURIZATION DUMP SWITCH,Bool)#Microsoft.Generic.Miscellaneous.PRESSURIZATION DUMP SWITCH -PRESSURIZATION PRESSURE DIFFERENTIAL#(A:PRESSURIZATION PRESSURE DIFFERENTIAL,Pounds per square foot)#Microsoft.Generic.Miscellaneous.PRESSURIZATION PRESSURE DIFFERENTIAL -PROP AUTO CRUISE ACTIVE#(A:PROP AUTO CRUISE ACTIVE,Bool)#Microsoft.Generic.Miscellaneous.PROP AUTO CRUISE ACTIVE -PROP BETA MAX#(A:PROP BETA MAX,Radians)#Microsoft.Generic.Miscellaneous.PROP BETA MAX -PROP BETA MIN#(A:PROP BETA MIN,Radians)#Microsoft.Generic.Miscellaneous.PROP BETA MIN -PROP BETA MIN REVERSE#(A:PROP BETA MIN REVERSE,Radians)#Microsoft.Generic.Miscellaneous.PROP BETA MIN REVERSE -PROP ROTATION ANGLE#(A:PROP ROTATION ANGLE,Radians)#Microsoft.Generic.Miscellaneous.PROP ROTATION ANGLE -PUSHBACK ANGLE#(A:PUSHBACK ANGLE,Radians)#Microsoft.Generic.Miscellaneous.PUSHBACK ANGLE -PUSHBACK CONTACTX#(A:PUSHBACK CONTACTX,Feet)#Microsoft.Generic.Miscellaneous.PUSHBACK CONTACTX -PUSHBACK CONTACTY#(A:PUSHBACK CONTACTY,Feet)#Microsoft.Generic.Miscellaneous.PUSHBACK CONTACTY -PUSHBACK CONTACTZ#(A:PUSHBACK CONTACTZ,Feet)#Microsoft.Generic.Miscellaneous.PUSHBACK CONTACTZ -PUSHBACK STATE#(A:PUSHBACK STATE,Enum)#Microsoft.Generic.Miscellaneous.PUSHBACK STATE -PUSHBACK WAIT#(A:PUSHBACK WAIT,Bool)#Microsoft.Generic.Miscellaneous.PUSHBACK WAIT -RAD INS SWITCH#(A:RAD INS SWITCH,Bool)#Microsoft.Generic.Miscellaneous.RAD INS SWITCH -REALISM#(A:REALISM,Number)#Microsoft.Generic.Miscellaneous.REALISM -REALISM CRASH DETECTION#(A:REALISM CRASH DETECTION,Bool)#Microsoft.Generic.Miscellaneous.REALISM CRASH DETECTION -REALISM CRASH WITH OTHERS#(A:REALISM CRASH WITH OTHERS,Bool)#Microsoft.Generic.Miscellaneous.REALISM CRASH WITH OTHERS -ROTOR ROTATION ANGLE#(A:ROTOR ROTATION ANGLE,Radians)#Microsoft.Generic.Miscellaneous.ROTOR ROTATION ANGLE -RUDDER PEDAL INDICATOR#(A:RUDDER PEDAL INDICATOR,Position)#Microsoft.Generic.Miscellaneous.RUDDER PEDAL INDICATOR -SEMIBODY LOADFACTOR Y#(A:SEMIBODY LOADFACTOR Y,Number)#Microsoft.Generic.Miscellaneous.SEMIBODY LOADFACTOR Y -SEMIBODY LOADFACTOR YDOT#(A:SEMIBODY LOADFACTOR YDOT,Per second)#Microsoft.Generic.Miscellaneous.SEMIBODY LOADFACTOR YDOT -SIGMA SQRT#(A:SIGMA SQRT,Number)#Microsoft.Generic.Miscellaneous.SIGMA SQRT -SIM DISABLED#(A:SIM DISABLED,Bool)#Microsoft.Generic.Miscellaneous.SIM DISABLED -SIMULATED RADIUS#(A:SIMULATED RADIUS,Feet)#Microsoft.Generic.Miscellaneous.SIMULATED RADIUS -SMOKE ENABLE#(A:SMOKE ENABLE,Bool)#Microsoft.Generic.Miscellaneous.SMOKE ENABLE -SMOKESYSTEM AVAILABLE#(A:SMOKESYSTEM AVAILABLE,Bool)#Microsoft.Generic.Miscellaneous.SMOKESYSTEM AVAILABLE -SPOILER AVAILABLE#(A:SPOILER AVAILABLE,Bool)#Microsoft.Generic.Miscellaneous.SPOILER AVAILABLE -STALL ALPHA#(A:STALL ALPHA,Radians)#Microsoft.Generic.Miscellaneous.STALL ALPHA -STALL HORN AVAILABLE#(A:STALL HORN AVAILABLE,Bool)#Microsoft.Generic.Miscellaneous.STALL HORN AVAILABLE -STATIC CG TO GROUND#(A:STATIC CG TO GROUND,Feet)#Microsoft.Generic.Miscellaneous.STATIC CG TO GROUND -STATIC PITCH#(A:STATIC PITCH,Radians)#Microsoft.Generic.Miscellaneous.STATIC PITCH -STROBES AVAILABLE#(A:STROBES AVAILABLE,Bool)#Microsoft.Generic.Miscellaneous.STROBES AVAILABLE -STRUCTURAL DEICE SWITCH#(A:STRUCTURAL DEICE SWITCH,Bool)#Microsoft.Generic.Miscellaneous.STRUCTURAL DEICE SWITCH -STRUCTURAL ICE PCT#(A:STRUCTURAL ICE PCT,Percent over 100)#Microsoft.Generic.Miscellaneous.STRUCTURAL ICE PCT -SURFACE CONDITION#(A:SURFACE CONDITION,Enum)#Microsoft.Generic.Miscellaneous.SURFACE CONDITION -SURFACE INFO VALID#(A:SURFACE INFO VALID,Bool)#Microsoft.Generic.Miscellaneous.SURFACE INFO VALID -TAILHOOK POSITION#(A:TAILHOOK POSITION,Percent Over 100)#Microsoft.Generic.Miscellaneous.TAILHOOK POSITION -TITLE#(A:TITLE,String)#Microsoft.Generic.Miscellaneous.TITLE -TOTAL VELOCITY#(A:TOTAL VELOCITY,Feet per second)#Microsoft.Generic.Miscellaneous.TOTAL VELOCITY -TOTAL WEIGHT#(A:TOTAL WEIGHT,Pounds)#Microsoft.Generic.Miscellaneous.TOTAL WEIGHT -TOTAL WEIGHT CROSS COUPLED MOI#(A:TOTAL WEIGHT CROSS COUPLED MOI,Slugs per feet squared)#Microsoft.Generic.Miscellaneous.TOTAL WEIGHT CROSS COUPLED MOI -TOTAL WEIGHT PITCH MOI#(A:TOTAL WEIGHT PITCH MOI,Slugs per feet squared)#Microsoft.Generic.Miscellaneous.TOTAL WEIGHT PITCH MOI -TOTAL WEIGHT ROLL MOI#(A:TOTAL WEIGHT ROLL MOI,Slugs per feet squared)#Microsoft.Generic.Miscellaneous.TOTAL WEIGHT ROLL MOI -TOTAL WEIGHT YAW MOI#(A:TOTAL WEIGHT YAW MOI,Slugs per feet squared)#Microsoft.Generic.Miscellaneous.TOTAL WEIGHT YAW MOI -TOW CONNECTION#(A:TOW CONNECTION,Bool)#Microsoft.Generic.Miscellaneous.TOW CONNECTION -TOW RELEASE HANDLE#(A:TOW RELEASE HANDLE,Percent over 100)#Microsoft.Generic.Miscellaneous.TOW RELEASE HANDLE -TRUE AIRSPEED SELECTED#(A:TRUE AIRSPEED SELECTED,Bool)#Microsoft.Generic.Miscellaneous.TRUE AIRSPEED SELECTED -TURN INDICATOR RATE#(A:TURN INDICATOR RATE,Radians per second)#Microsoft.Generic.Miscellaneous.TURN INDICATOR RATE -TURN INDICATOR SWITCH#(A:TURN INDICATOR SWITCH,Bool)#Microsoft.Generic.Miscellaneous.TURN INDICATOR SWITCH -TYPICAL DESCENT RATE#(A:TYPICAL DESCENT RATE,Feet per minute)#Microsoft.Generic.Miscellaneous.TYPICAL DESCENT RATE -USER INPUT ENABLED#(A:USER INPUT ENABLED,Bool)#Microsoft.Generic.Miscellaneous.USER INPUT ENABLED -VARIOMETER RATE#(A:VARIOMETER RATE,Feet per second)#Microsoft.Generic.Miscellaneous.VARIOMETER RATE -VARIOMETER SWITCH#(A:VARIOMETER SWITCH,Bool)#Microsoft.Generic.Miscellaneous.VARIOMETER SWITCH -VISUAL MODEL RADIUS#(A:VISUAL MODEL RADIUS,Meters)#Microsoft.Generic.Miscellaneous.VISUAL MODEL RADIUS -WATER BALLAST VALVE#(A:WATER BALLAST VALVE,Bool)#Microsoft.Generic.Miscellaneous.WATER BALLAST VALVE -WINDSHIELD DEICE SWITCH#(A:WINDSHIELD DEICE SWITCH,Bool)#Microsoft.Generic.Miscellaneous.WINDSHIELD DEICE SWITCH -WING AREA#(A:WING AREA,Square feet)#Microsoft.Generic.Miscellaneous.WING AREA -WING SPAN#(A:WING SPAN,Feet)#Microsoft.Generic.Miscellaneous.WING SPAN -YAW STRING ANGLE#(A:YAW STRING ANGLE,Radians)#Microsoft.Generic.Miscellaneous.YAW STRING ANGLE -YAW STRING PCT EXTENDED#(A:YAW STRING PCT EXTENDED,Percent over 100)#Microsoft.Generic.Miscellaneous.YAW STRING PCT EXTENDED -YOKE X INDICATOR#(A:YOKE X INDICATOR,Position)#Microsoft.Generic.Miscellaneous.YOKE X INDICATOR -YOKE Y INDICATOR#(A:YOKE Y INDICATOR,Position)#Microsoft.Generic.Miscellaneous.YOKE Y INDICATOR -ZERO LIFT ALPHA#(A:ZERO LIFT ALPHA,Radians)#Microsoft.Generic.Miscellaneous.ZERO LIFT ALPHA -Microsoft/Generic/Position and Speed#GROUP -ACCELERATION BODY X#(A:ACCELERATION BODY X,Feet per second squared)#Microsoft.Generic.Position and Speed.ACCELERATION BODY X -ACCELERATION BODY Y#(A:ACCELERATION BODY Y,Feet per second squared)#Microsoft.Generic.Position and Speed.ACCELERATION BODY Y -ACCELERATION BODY Z#(A:ACCELERATION BODY Z,Feet per second squared)#Microsoft.Generic.Position and Speed.ACCELERATION BODY Z -ACCELERATION WORLD X#(A:ACCELERATION WORLD X,Feet per second squared)#Microsoft.Generic.Position and Speed.ACCELERATION WORLD X -ACCELERATION WORLD Y#(A:ACCELERATION WORLD Y,Feet per second squared)#Microsoft.Generic.Position and Speed.ACCELERATION WORLD Y -ACCELERATION WORLD Z#(A:ACCELERATION WORLD Z,Feet per second squared)#Microsoft.Generic.Position and Speed.ACCELERATION WORLD Z -ATC AIRPORT IS TOWERED#(A:ATC AIRPORT IS TOWERED,Bool)#Microsoft.Generic.Position and Speed.ATC AIRPORT IS TOWERED -ATC CLEARED LANDING#(A:ATC CLEARED LANDING,Bool)#Microsoft.Generic.Position and Speed.ATC CLEARED LANDING -ATC CLEARED TAKEOFF#(A:ATC CLEARED TAKEOFF,Bool)#Microsoft.Generic.Position and Speed.ATC CLEARED TAKEOFF -ATC CLEARED TAXI#(A:ATC CLEARED TAXI,Bool)#Microsoft.Generic.Position and Speed.ATC CLEARED TAXI -ATC RUNWAY AIRPORT NAME#(A:ATC RUNWAY AIRPORT NAME,String)#Microsoft.Generic.Position and Speed.ATC RUNWAY AIRPORT NAME -ATC RUNWAY DISTANCE#(A:ATC RUNWAY DISTANCE,Meters)#Microsoft.Generic.Position and Speed.ATC RUNWAY DISTANCE -ATC RUNWAY END DISTANCE#(A:ATC RUNWAY END DISTANCE,Meters)#Microsoft.Generic.Position and Speed.ATC RUNWAY END DISTANCE -ATC RUNWAY HEADING DEGREES TRUE#(A:ATC RUNWAY HEADING DEGREES TRUE,Degrees)#Microsoft.Generic.Position and Speed.ATC RUNWAY HEADING DEGREES TRUE -ATC RUNWAY LENGTH#(A:ATC RUNWAY LENGTH,Meters)#Microsoft.Generic.Position and Speed.ATC RUNWAY LENGTH -ATC RUNWAY RELATIVE POSITION X#(A:ATC RUNWAY RELATIVE POSITION X,Meters)#Microsoft.Generic.Position and Speed.ATC RUNWAY RELATIVE POSITION X -ATC RUNWAY RELATIVE POSITION Y#(A:ATC RUNWAY RELATIVE POSITION Y,Meters)#Microsoft.Generic.Position and Speed.ATC RUNWAY RELATIVE POSITION Y -ATC RUNWAY RELATIVE POSITION Z#(A:ATC RUNWAY RELATIVE POSITION Z,Meters)#Microsoft.Generic.Position and Speed.ATC RUNWAY RELATIVE POSITION Z -ATC RUNWAY SELECTED#(A:ATC RUNWAY SELECTED,Bool)#Microsoft.Generic.Position and Speed.ATC RUNWAY SELECTED -ATC RUNWAY START DISTANCE#(A:ATC RUNWAY START DISTANCE,Meters)#Microsoft.Generic.Position and Speed.ATC RUNWAY START DISTANCE -ATC RUNWAY TDPOINT RELATIVE POSITION X#(A:ATC RUNWAY TDPOINT RELATIVE POSITION X,Meters)#Microsoft.Generic.Position and Speed.ATC RUNWAY TDPOINT RELATIVE POSITION X -ATC RUNWAY TDPOINT RELATIVE POSITION Y#(A:ATC RUNWAY TDPOINT RELATIVE POSITION Y,Meters)#Microsoft.Generic.Position and Speed.ATC RUNWAY TDPOINT RELATIVE POSITION Y -ATC RUNWAY TDPOINT RELATIVE POSITION Z#(A:ATC RUNWAY TDPOINT RELATIVE POSITION Z,Meters)#Microsoft.Generic.Position and Speed.ATC RUNWAY TDPOINT RELATIVE POSITION Z -ATC RUNWAY WIDTH#(A:ATC RUNWAY WIDTH,Meters)#Microsoft.Generic.Position and Speed.ATC RUNWAY WIDTH -ELEVATOR TRIM DISABLED#(A:ELEVATOR TRIM DISABLED,Bool)#Microsoft.Generic.Position and Speed.ELEVATOR TRIM DISABLED -EYEPOINT POSITION#(A:EYEPOINT POSITION,Number)#Microsoft.Generic.Position and Speed.EYEPOINT POSITION -GROUND ALTITUDE#(A:GROUND ALTITUDE,Meters)#Microsoft.Generic.Position and Speed.GROUND ALTITUDE -GROUND VELOCITY#(A:GROUND VELOCITY,Knots)#Microsoft.Generic.Position and Speed.GROUND VELOCITY -INCIDENCE ALPHA#(A:INCIDENCE ALPHA,Radians)#Microsoft.Generic.Position and Speed.INCIDENCE ALPHA -INCIDENCE BETA#(A:INCIDENCE BETA,Radians)#Microsoft.Generic.Position and Speed.INCIDENCE BETA -MAGVAR#(A:MAGVAR,Degrees)#Microsoft.Generic.Position and Speed.MAGVAR -ON ANY RUNWAY#(A:ON ANY RUNWAY,Bool)#Microsoft.Generic.Position and Speed.ON ANY RUNWAY -PLANE ALT ABOVE GROUND#(A:PLANE ALT ABOVE GROUND,Feet)#Microsoft.Generic.Position and Speed.PLANE ALT ABOVE GROUND -PLANE ALT ABOVE GROUND MINUS CG#(A:PLANE ALT ABOVE GROUND MINUS CG,Feet)#Microsoft.Generic.Position and Speed.PLANE ALT ABOVE GROUND MINUS CG -PLANE ALTITUDE#(A:PLANE ALTITUDE,Feet)#Microsoft.Generic.Position and Speed.PLANE ALTITUDE -PLANE BANK DEGREES#(A:PLANE BANK DEGREES,Radians)#Microsoft.Generic.Position and Speed.PLANE BANK DEGREES -PLANE HEADING DEGREES MAGNETIC#(A:PLANE HEADING DEGREES MAGNETIC,Radians)#Microsoft.Generic.Position and Speed.PLANE HEADING DEGREES MAGNETIC -PLANE HEADING DEGREES TRUE#(A:PLANE HEADING DEGREES TRUE,Radians)#Microsoft.Generic.Position and Speed.PLANE HEADING DEGREES TRUE -PLANE LATITUDE#(A:PLANE LATITUDE,Radians)#Microsoft.Generic.Position and Speed.PLANE LATITUDE -PLANE LONGITUDE#(A:PLANE LONGITUDE,Radians)#Microsoft.Generic.Position and Speed.PLANE LONGITUDE -PLANE PITCH DEGREES#(A:PLANE PITCH DEGREES,Radians)#Microsoft.Generic.Position and Speed.PLANE PITCH DEGREES -PLANE TOUCHDOWN BANK DEGREES#(A:PLANE TOUCHDOWN BANK DEGREES,Degrees)#Microsoft.Generic.Position and Speed.PLANE TOUCHDOWN BANK DEGREES -PLANE TOUCHDOWN HEADING DEGREES MAGNETIC#(A:PLANE TOUCHDOWN HEADING DEGREES MAGNETIC,Degrees)#Microsoft.Generic.Position and Speed.PLANE TOUCHDOWN HEADING DEGREES MAGNETIC -PLANE TOUCHDOWN HEADING DEGREES TRUE#(A:PLANE TOUCHDOWN HEADING DEGREES TRUE,Degrees)#Microsoft.Generic.Position and Speed.PLANE TOUCHDOWN HEADING DEGREES TRUE -PLANE TOUCHDOWN LATITUDE#(A:PLANE TOUCHDOWN LATITUDE,Radians)#Microsoft.Generic.Position and Speed.PLANE TOUCHDOWN LATITUDE -PLANE TOUCHDOWN LONGITUDE#(A:PLANE TOUCHDOWN LONGITUDE,Radians)#Microsoft.Generic.Position and Speed.PLANE TOUCHDOWN LONGITUDE -PLANE TOUCHDOWN NORMAL VELOCITY#(A:PLANE TOUCHDOWN NORMAL VELOCITY,Feet per second)#Microsoft.Generic.Position and Speed.PLANE TOUCHDOWN NORMAL VELOCITY -PLANE TOUCHDOWN PITCH DEGREES#(A:PLANE TOUCHDOWN PITCH DEGREES,Degrees)#Microsoft.Generic.Position and Speed.PLANE TOUCHDOWN PITCH DEGREES -RELATIVE WIND VELOCITY BODY X#(A:RELATIVE WIND VELOCITY BODY X,Feet per second)#Microsoft.Generic.Position and Speed.RELATIVE WIND VELOCITY BODY X -RELATIVE WIND VELOCITY BODY Y#(A:RELATIVE WIND VELOCITY BODY Y,Feet per second)#Microsoft.Generic.Position and Speed.RELATIVE WIND VELOCITY BODY Y -RELATIVE WIND VELOCITY BODY Z#(A:RELATIVE WIND VELOCITY BODY Z,Feet per second)#Microsoft.Generic.Position and Speed.RELATIVE WIND VELOCITY BODY Z -ROTATION ACCELERATION BODY X#(A:ROTATION ACCELERATION BODY X,Radians per second squared)#Microsoft.Generic.Position and Speed.ROTATION ACCELERATION BODY X -ROTATION ACCELERATION BODY Y#(A:ROTATION ACCELERATION BODY Y,Radians per second squared)#Microsoft.Generic.Position and Speed.ROTATION ACCELERATION BODY Y -ROTATION ACCELERATION BODY Z#(A:ROTATION ACCELERATION BODY Z,Radians per second squared)#Microsoft.Generic.Position and Speed.ROTATION ACCELERATION BODY Z -ROTATION VELOCITY BODY X#(A:ROTATION VELOCITY BODY X,Feet per second)#Microsoft.Generic.Position and Speed.ROTATION VELOCITY BODY X -ROTATION VELOCITY BODY Y#(A:ROTATION VELOCITY BODY Y,Feet per second)#Microsoft.Generic.Position and Speed.ROTATION VELOCITY BODY Y -ROTATION VELOCITY BODY Z#(A:ROTATION VELOCITY BODY Z,Feet per second)#Microsoft.Generic.Position and Speed.ROTATION VELOCITY BODY Z -RUDDER TRIM DISABLED#(A:RUDDER TRIM DISABLED,Bool)#Microsoft.Generic.Position and Speed.RUDDER TRIM DISABLED -SIM ON GROUND#(A:SIM ON GROUND,Bool)#Microsoft.Generic.Position and Speed.SIM ON GROUND -SLOPE TO ATC RUNWAY#(A:SLOPE TO ATC RUNWAY,Radians)#Microsoft.Generic.Position and Speed.SLOPE TO ATC RUNWAY -STRUCT BODY ROTATION VELOCITY#(A:STRUCT BODY ROTATION VELOCITY,Number)#Microsoft.Generic.Position and Speed.STRUCT BODY ROTATION VELOCITY -STRUCT BODY VELOCITY#(A:STRUCT BODY VELOCITY,Number)#Microsoft.Generic.Position and Speed.STRUCT BODY VELOCITY -STRUCT ENGINE POSITION:index#(A:STRUCT ENGINE POSITION:index,Number)#Microsoft.Generic.Position and Speed.STRUCT ENGINE POSITION:index -STRUCT EYEPOINT DYNAMIC ANGLE#(A:STRUCT EYEPOINT DYNAMIC ANGLE,Number)#Microsoft.Generic.Position and Speed.STRUCT EYEPOINT DYNAMIC ANGLE -STRUCT EYEPOINT DYNAMIC OFFSET#(A:STRUCT EYEPOINT DYNAMIC OFFSET,Number)#Microsoft.Generic.Position and Speed.STRUCT EYEPOINT DYNAMIC OFFSET -STRUCT LATLONALT#(A:STRUCT LATLONALT,Number)#Microsoft.Generic.Position and Speed.STRUCT LATLONALT -STRUCT LATLONALTPBH#(A:STRUCT LATLONALTPBH,Number)#Microsoft.Generic.Position and Speed.STRUCT LATLONALTPBH -STRUCT SURFACE RELATIVE VELOCITY#(A:STRUCT SURFACE RELATIVE VELOCITY,Number)#Microsoft.Generic.Position and Speed.STRUCT SURFACE RELATIVE VELOCITY -STRUCT WORLD ACCELERATION#(A:STRUCT WORLD ACCELERATION,Number)#Microsoft.Generic.Position and Speed.STRUCT WORLD ACCELERATION -STRUCT WORLD ROTATION VELOCITY#(A:STRUCT WORLD ROTATION VELOCITY,Number)#Microsoft.Generic.Position and Speed.STRUCT WORLD ROTATION VELOCITY -STRUCT WORLDVELOCITY#(A:STRUCT WORLDVELOCITY,Number)#Microsoft.Generic.Position and Speed.STRUCT WORLDVELOCITY -SURFACE TYPE#(A:SURFACE TYPE,Enum)#Microsoft.Generic.Position and Speed.SURFACE TYPE -TOTAL WORLD VELOCITY#(A:TOTAL WORLD VELOCITY,Feet per second)#Microsoft.Generic.Position and Speed.TOTAL WORLD VELOCITY -VELOCITY BODY X#(A:VELOCITY BODY X,Feet per second)#Microsoft.Generic.Position and Speed.VELOCITY BODY X -VELOCITY BODY Y#(A:VELOCITY BODY Y,Feet per second)#Microsoft.Generic.Position and Speed.VELOCITY BODY Y -VELOCITY BODY Z#(A:VELOCITY BODY Z,Feet per second)#Microsoft.Generic.Position and Speed.VELOCITY BODY Z -VELOCITY WORLD X#(A:VELOCITY WORLD X,Feet per second)#Microsoft.Generic.Position and Speed.VELOCITY WORLD X -VELOCITY WORLD Y#(A:VELOCITY WORLD Y,Feet per second)#Microsoft.Generic.Position and Speed.VELOCITY WORLD Y -VELOCITY WORLD Z#(A:VELOCITY WORLD Z,Feet per second)#Microsoft.Generic.Position and Speed.VELOCITY WORLD Z -WINDSHIELD WIND VELOCITY#(A:WINDSHIELD WIND VELOCITY,Feet per second)#Microsoft.Generic.Position and Speed.WINDSHIELD WIND VELOCITY -WING FLEX PCT:index#(A:WING FLEX PCT:index,Percent over 100)#Microsoft.Generic.Position and Speed.WING FLEX PCT:index -Microsoft/Generic/Radio#GROUP -COM RECEIVE EX1:index#(A:COM RECEIVE EX1:index,bool)#Microsoft.Generic.Radio.COM RECEIVE EX1:index -COM RECEIVE:index#(A:COM RECEIVE:index,bool)#Microsoft.Generic.Radio.COM RECEIVE:index -Microsoft/Generic/Warning System#GROUP -CABIN_SEATBELTS_ALERT_SWITCH#(A:CABIN SEATBELTS ALERT SWITCH, bool)#Microsoft.Generic.Warning System.CABIN_SEATBELTS_ALERT_SWITCH -Working Title/CJ4/Air Condition / Pressurization#GROUP -Pressurization Dump Switch ON#(A:PRESSURIZATION DUMP SWITCH, bool)#Working Title.CJ4.Air Condition / Pressurization.Pressurization Dump Switch ON -Working Title/CJ4/Anti-Ice#GROUP -WT CJ4 Pitot Heat 1 is ON#(L:DEICE_Pitot_1, Bool)#Working Title.CJ4.Anti-Ice.WT CJ4 Pitot Heat 1 is ON -WT CJ4 Pitot Heat 2 is ON#(L:DEICE_Pitot_2, Bool)#Working Title.CJ4.Anti-Ice.WT CJ4 Pitot Heat 2 is ON -WT_CJ4_ANTIICE_ENG_LEFT_LED#(A:ENG ANTI ICE:1,Bool)#Working Title.CJ4.Anti-Ice.WT_CJ4_ANTIICE_ENG_LEFT_LED -WT_CJ4_ANTIICE_ENG_RIGHT_LED#(A:ENG ANTI ICE:2,Bool)#Working Title.CJ4.Anti-Ice.WT_CJ4_ANTIICE_ENG_RIGHT_LED -WT_CJ4_DEICE_AIRFRAME_1#(L:DEICE_Airframe_1, bool)#Working Title.CJ4.Anti-Ice.WT_CJ4_DEICE_AIRFRAME_1 -WT_CJ4_DEICE_AIRFRAME_2#(L:DEICE_Airframe_2, Bool)#Working Title.CJ4.Anti-Ice.WT_CJ4_DEICE_AIRFRAME_2 -WT_CJ4_WING_LIGHT_ON#(A:LIGHT WING:0, Bool)#Working Title.CJ4.Anti-Ice.WT_CJ4_WING_LIGHT_ON -Working Title/CJ4/Autopilot#GROUP -WT_CJ4_AP_ALT_HOLD#(L:WT_CJ4_ALT_HOLD,Bool)#Working Title.CJ4.Autopilot.WT_CJ4_AP_ALT_HOLD -WT_CJ4_AP_ALT_LOCK_VAR#(A:AUTOPILOT ALTITUDE LOCK VAR:1,Feet)#Working Title.CJ4.Autopilot.WT_CJ4_AP_ALT_LOCK_VAR -WT_CJ4_AP_FLC_LOCK_DIR#(A:AUTOPILOT AIRSPEED LOCK DIR:1, knots)#Working Title.CJ4.Autopilot.WT_CJ4_AP_FLC_LOCK_DIR -WT_CJ4_AP_HDG_LOCK_DIR#(A:AUTOPILOT HEADING LOCK DIR:1, Degrees)#Working Title.CJ4.Autopilot.WT_CJ4_AP_HDG_LOCK_DIR -WT_CJ4_AP_VNAV_ON#(L:WT_CJ4_VNAV_ON,Bool)#Working Title.CJ4.Autopilot.WT_CJ4_AP_VNAV_ON -WT_CJ4_AP_VS_LOCK_DIR#(A:AUTOPILOT VERTICAL LOCK DIR:1, Feet/minute)#Working Title.CJ4.Autopilot.WT_CJ4_AP_VS_LOCK_DIR -WT_CJ4_FLC_ON#(L:WT_CJ4_FLC_ON, bool)#Working Title.CJ4.Autopilot.WT_CJ4_FLC_ON -WT_CJ4_HDG_ON#(L:WT_CJ4_HDG_ON,bool)#Working Title.CJ4.Autopilot.WT_CJ4_HDG_ON -WT_CJ4_NAV_ON#(L:WT_CJ4_NAV_ON, Bool)#Working Title.CJ4.Autopilot.WT_CJ4_NAV_ON -WT_CJ4_TOD_DISTANCE#(L:WT_CJ4_TOD_DISTANCE)#Working Title.CJ4.Autopilot.WT_CJ4_TOD_DISTANCE -WT_CJ4_TOD_REMAINING#(L:WT_CJ4_TOD_REMAINING)#Working Title.CJ4.Autopilot.WT_CJ4_TOD_REMAINING -WT_CJ4_VS_ON#(L:WT_CJ4_VS_ON)#Working Title.CJ4.Autopilot.WT_CJ4_VS_ON -Working Title/CJ4/Avionics#GROUP -WT_CJ4_PANEL_BRIGHTNESS#(L:LIGHTING_Knob_Master)#Working Title.CJ4.Avionics.WT_CJ4_PANEL_BRIGHTNESS -Working Title/CJ4/Engines#GROUP -Eng L Man Ignition Switch ON#(A:TURB ENG IGNITION SWITCH EX1:1, enum) 2 ==#Working Title.CJ4.Engines.Eng L Man Ignition Switch ON -Eng R Man Ignition ON#(A:TURB ENG IGNITION SWITCH EX1:2, enum) 2 ==#Working Title.CJ4.Engines.Eng R Man Ignition ON -Engine L Run ON#(A:GENERAL ENG MIXTURE LEVER POSITION:1, Percent) 0 >#Working Title.CJ4.Engines.Engine L Run ON -Engine L Starter ON#(A:GENERAL ENG STARTER:1, bool)#Working Title.CJ4.Engines.Engine L Starter ON -Engine L Stop ON#(A:GENERAL ENG MIXTURE LEVER POSITION:1, percent) 0 == (A:GENERAL ENG STARTER:1, bool) (A:GENERAL ENG STARTER:2, bool) or ! and#Working Title.CJ4.Engines.Engine L Stop ON -Engine R Run ON#(A:GENERAL ENG MIXTURE LEVER POSITION:2, Percent) 0 >#Working Title.CJ4.Engines.Engine R Run ON -Engine R Starter ON#(A:GENERAL ENG STARTER:2, bool)#Working Title.CJ4.Engines.Engine R Starter ON -Engine R Stop ON#(A:GENERAL ENG MIXTURE LEVER POSITION:2, percent) 0 == (A:GENERAL ENG STARTER:1, bool) (A:GENERAL ENG STARTER:2, bool) or ! and#Working Title.CJ4.Engines.Engine R Stop ON -Working Title/CJ4/Fuel#GROUP -(A:GENERAL ENG FUEL PUMP SWITCH:1, bool)#(A:GENERAL ENG FUEL PUMP SWITCH:1, bool)#Working Title.CJ4.Fuel.(A:GENERAL ENG FUEL PUMP SWITCH:1, bool) -(A:GENERAL ENG FUEL PUMP SWITCH:2, bool)#(A:GENERAL ENG FUEL PUMP SWITCH:2, bool)#Working Title.CJ4.Fuel.(A:GENERAL ENG FUEL PUMP SWITCH:2, bool) -(A:PRESSURIZATION DUMP SWITCH, bool)#(A:PRESSURIZATION DUMP SWITCH, bool)#Working Title.CJ4.Fuel.(A:PRESSURIZATION DUMP SWITCH, bool) -(A:TURB ENG IGNITION SWITCH EX1:1, enum) 2 ==#(A:TURB ENG IGNITION SWITCH EX1:1, enum) 2 ==#Working Title.CJ4.Fuel.(A:TURB ENG IGNITION SWITCH EX1:1, enum) 2 == -(A:TURB ENG IGNITION SWITCH EX1:2, enum) 2 ==#(A:TURB ENG IGNITION SWITCH EX1:2, enum) 2 ==#Working Title.CJ4.Fuel.(A:TURB ENG IGNITION SWITCH EX1:2, enum) 2 == -Fuel Booster Pump L ON#(A:GENERAL ENG FUEL PUMP SWITCH:1, bool)#Working Title.CJ4.Fuel.Fuel Booster Pump L ON -Fuel Booster Pump R ON#(A:GENERAL ENG FUEL PUMP SWITCH:2, bool)#Working Title.CJ4.Fuel.Fuel Booster Pump R ON -Working Title/CJ4/Lights#GROUP -WT CJ4 Beacon Lights ON#(L:LIGHTING_STROBE_1)#Working Title.CJ4.Lights.WT CJ4 Beacon Lights ON -WT CJ4 Landing Lights ON#(A:LIGHT LANDING, Bool)#Working Title.CJ4.Lights.WT CJ4 Landing Lights ON -WT CJ4 Strobe Lights ON#(L:LIGHTING_STROBE_1)#Working Title.CJ4.Lights.WT CJ4 Strobe Lights ON -WT CJ4 Taxi Lights ON#(A:LIGHT TAXI, Bool)#Working Title.CJ4.Lights.WT CJ4 Taxi Lights ON -Working Title/CJ4/Radio#GROUP -(A:COM TRANSMIT:1, bool)#(A:COM TRANSMIT:1, bool)#Working Title.CJ4.Radio.(A:COM TRANSMIT:1, bool) -(A:COM TRANSMIT:2, bool)#(A:COM TRANSMIT:2, bool)#Working Title.CJ4.Radio.(A:COM TRANSMIT:2, bool) -Working Title/CJ4/Warning System#GROUP -WT_CJ4_MASTER_CAUTION_ON#(L:Generic_Master_Caution_Active) (L:MF_Master_Caution_Test) or#Working Title.CJ4.Warning System.WT_CJ4_MASTER_CAUTION_ON -WT_CJ4_MASTER_WARNING_ON#(L:Generic_Master_Warning_Active) (L:MF_Master_Warning_Test) or#Working Title.CJ4.Warning System.WT_CJ4_MASTER_WARNING_ON \ No newline at end of file diff --git a/ReactClient/public/config/profiles/kodiak/SimConnectDataDefinition.json b/ReactClient/public/config/profiles/kodiak/SimConnectDataDefinition.json deleted file mode 100644 index b8c64f4..0000000 --- a/ReactClient/public/config/profiles/kodiak/SimConnectDataDefinition.json +++ /dev/null @@ -1,380 +0,0 @@ -[ - { - "propName": "SIM_RATE", - "variableName": "SIMULATION RATE", - "simConnectUnit": "number", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed2" - }, - { - "propName": "GPS_LAT", - "variableName": "GPS POSITION LAT", - "simConnectUnit": "degrees", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "GPS_LON", - "variableName": "GPS POSITION LON", - "simConnectUnit": "degrees", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PLANE_HEADING_TRUE", - "variableName": "PLANE HEADING DEGREES TRUE", - "simConnectUnit": "degrees", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed0" - }, - { - "propName": "PLANE_AIRSPEED", - "variableName": "AIRSPEED INDICATED", - "simConnectUnit": "knots", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed0" - }, - { - "propName": "FLAPS", - "variableName": "TRAILING EDGE FLAPS LEFT ANGLE", - "simConnectUnit": "degrees", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed0" - }, - { - "propName": "ELEVATOR_TRIM", - "variableName": "ELEVATOR TRIM PCT", - "simConnectUnit": "percent", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed1" - }, - { - "propName": "RUDDER_TRIM", - "variableName": "RUDDER TRIM", - "simConnectUnit": "radians", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed2" - }, - { - "propName": "AILERON_TRIM", - "variableName": "AILERON TRIM", - "simConnectUnit": "radians", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed3" - }, - { - "propName": "BRAKE_PARKING_INDICATOR", - "variableName": "BRAKE PARKING INDICATOR", - "simConnectUnit": "bool", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed0" - }, - { - "propName": "GEAR_POSITION", - "variableName": "GEAR POSITION", - "simConnectUnit": "enum", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "GEAR_CENTER_POSITION", - "variableName": "GEAR CENTER POSITION", - "simConnectUnit": "percent", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "GEAR_LEFT_POSITION", - "variableName": "GEAR LEFT POSITION", - "simConnectUnit": "percent", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "GEAR_RIGHT_POSITION", - "variableName": "GEAR RIGHT POSITION", - "simConnectUnit": "percent", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "AP_YAW_DAMPER_ON", - "variableName": "AUTOPILOT YAW DAMPER", - "simConnectUnit": "bool", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "BATTERY_MASTER_ON", - "variableName": "ELECTRICAL MASTER BATTERY", - "simConnectUnit": "bool", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "AVIONICS_MASTER_ON", - "variableName": "AVIONICS MASTER SWITCH", - "simConnectUnit": "bool", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "AP_MASTER_ON", - "variableName": "AUTOPILOT MASTER", - "simConnectUnit": "bool", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "LIGHT_TAXI_ON", - "variableName": "LIGHT TAXI", - "simConnectUnit": "bool", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "LIGHT_NAV_ON", - "variableName": "LIGHT NAV", - "simConnectUnit": "bool", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "LIGHT_BEACON_ON", - "variableName": "LIGHT BEACON", - "simConnectUnit": "bool", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "LIGHT_STROBE_ON", - "variableName": "LIGHT STROBE", - "simConnectUnit": "bool", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "LIGHT_WING_ON", - "variableName": "LIGHT WING", - "simConnectUnit": "bool", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "KODIAK_LANDING_LIGHT", - "variableName": "SWS_LIGHTING_Switch_Light_Landing", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "KODIAK_CABIN_LIGHT", - "variableName": "SWS_LIGHTING_Switch_Light_CABIN_12", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "KODIAK_PITOT_HEAT_1", - "variableName": "DEICE_Pitot_1", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "KODIAK_PITOT_HEAT_2", - "variableName": "DEICE_Pitot_2", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "KODIAK_AUX_BUS", - "variableName": "XMLVAR_AUX_Bus_ON", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "KODIAK_FUEL_PUMP", - "variableName": "SWS_FUEL_Switch_Pump_1", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "KODIAK_IGNITION", - "variableName": "SWS_ENGINE_Switch_Ignition_1", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "KODIAK_STARTER", - "variableName": "SWS_ENGINE_Switch_Starter_ThreeState_1", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "KODIAK_FUEL_SHUTOFF_LEFT", - "variableName": "SWS_Kodiak_TankSelector_1", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "KODIAK_FUEL_SHUTOFF_RIGHT", - "variableName": "SWS_Kodiak_TankSelector_2", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "KODIAK_OXYGEN", - "variableName": "XMLVAR_Oxygen", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "ENG_ANTI_ICE_1", - "variableName": "ENG ANTI ICE:1", - "simConnectUnit": "bool", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PROP_DEICE_SWITCH", - "variableName": "PROP DEICE SWITCH:1", - "simConnectUnit": "bool", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "WINDSHIELD_DEICE_SWITCH", - "variableName": "WINDSHIELD DEICE SWITCH", - "simConnectUnit": "bool", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "ALTERNATOR_1_ON", - "variableName": "GENERAL ENG MASTER ALTERNATOR:1", - "simConnectUnit": "bool", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "ALTERNATOR_2_ON", - "variableName": "GENERAL ENG MASTER ALTERNATOR:2", - "simConnectUnit": "bool", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "KODIAK_GLARESHIELD_SETTING", - "variableName": "LIGHT POTENTIOMETER:3", - "simConnectUnit": "number", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "KODIAK_INSTRUMENTATION_LIGHT_SETTING", - "variableName": "LIGHT POTENTIOMETER:2", - "simConnectUnit": "number", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "KODIAK_PANEL_LIGHT_SETTING", - "variableName": "LIGHT POTENTIOMETER:21", - "simConnectUnit": "number", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - } -] \ No newline at end of file diff --git a/ReactClient/public/config/profiles/kodiak/electrical/PopoutPanelDefinition.json b/ReactClient/public/config/profiles/kodiak/electrical/PopoutPanelDefinition.json deleted file mode 100644 index 237e667..0000000 --- a/ReactClient/public/config/profiles/kodiak/electrical/PopoutPanelDefinition.json +++ /dev/null @@ -1,389 +0,0 @@ -{ - "id": "KODIAK_ELECTRICAL_DEF", - "value": { - "panelSize": { - "width": 812, - "height": 377 - }, - "backgroundImage": "background_electrical.png", - "controlSize": { - "buttonBase": { - "width": 57, - "height": 36 - }, - "toggleButtonBase": { - "width": 50, - "height": 98 - }, - "masterBase": { - "width": 80, - "height": 141 - }, - "rockerBase": { - "width": 55, - "height": 115 - }, - "buttonStatusIndicator": { - "width": 4, - "height": 32 - } - }, - "panelControlDefinitions": [ - { - "id": "btn_yd", - "type": "imageButton", - "image": "button_yd.png", - "left": 46, - "top": 74, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "YAW_DAMPER_TOGGLE", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_yd_indicator", - "type": "bindableImageButton", - "left": 105, - "top": 73, - "controlSize": { - "$ref": "#value.controlSize.buttonStatusIndicator" - }, - "highlight": false, - "binding": { - "variable": "AP_YAW_DAMPER_ON", - "images": [ - { - "url": "button_status_on.png", - "val": 0 - }, - { - "url": "button_status_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_lvl", - "type": "imageButton", - "image": "button_lvl.png", - "left": 46, - "top": 134, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "NO_ACTION", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_bank", - "type": "imageButton", - "image": "button_bank.png", - "left": 46, - "top": 196, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "NO_ACTION", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_spd", - "type": "imageButton", - "image": "button_spd.png", - "left": 46, - "top": 258, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_SPD_VAR_SET", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_master", - "type": "bindableImageButton", - "left": 155, - "top": 98, - "controlSize": { - "$ref": "#value.controlSize.masterBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "TOGGLE_MASTER_BATTERY", - "actionType": "SimEventId" - } - ] - }, - "binding": { - "variable": "BATTERY_MASTER_ON", - "images": [ - { - "url": "master_off.png", - "val": 0 - }, - { - "url": "master_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_avn_bus", - "type": "bindableImageButton", - "left": 274, - "top": 106, - "controlSize": { - "$ref": "#value.controlSize.rockerBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "TOGGLE_AVIONICS_MASTER", - "actionType": "SimEventId" - } - ] - }, - "binding": { - "variable": "AVIONICS_MASTER_ON", - "images": [ - { - "url": "rocker_off.png", - "val": 0 - }, - { - "url": "rocker_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_aux_bus", - "type": "bindableImageButton", - "left": 363, - "top": 106, - "controlSize": { - "$ref": "#value.controlSize.rockerBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "(L:XMLVAR_AUX_Bus_ON) ++ 2 % (>L:XMLVAR_AUX_Bus_ON)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "KODIAK_AUX_BUS", - "images": [ - { - "url": "rocker_off.png", - "val": 0 - }, - { - "url": "rocker_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_aux_fuel_pump", - "type": "bindableImageButton", - "left": 472, - "top": 47, - "controlSize": { - "$ref": "#value.controlSize.toggleButtonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "(L:SWS_FUEL_Switch_Pump_1) ++ 3 % (>L:SWS_FUEL_Switch_Pump_1)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "KODIAK_FUEL_PUMP", - "images": [ - { - "url": "toggle_down.png", - "val": 0 - }, - { - "url": "toggle_mid.png", - "val": 1 - }, - { - "url": "toggle_up.png", - "val": 2 - } - ] - } - }, - { - "id": "btn_ignition", - "type": "bindableImageButton", - "left": 569, - "top": 47, - "controlSize": { - "$ref": "#value.controlSize.toggleButtonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "(L:SWS_ENGINE_Switch_Ignition_1) ++ 2 % (>L:SWS_ENGINE_Switch_Ignition_1)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "KODIAK_IGNITION", - "images": [ - { - "url": "toggle_down.png", - "val": 0 - }, - { - "url": "toggle_up.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_starter", - "type": "bindableImageButton", - "left": 666, - "top": 47, - "controlSize": { - "$ref": "#value.controlSize.toggleButtonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "(L:SWS_ENGINE_Switch_Starter_ThreeState_1) ++ 3 % (>L:SWS_ENGINE_Switch_Starter_ThreeState_1)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "KODIAK_STARTER", - "images": [ - { - "url": "toggle_down.png", - "val": 0 - }, - { - "url": "toggle_mid.png", - "val": 1 - }, - { - "url": "toggle_up.png", - "val": 2 - } - ] - } - }, - { - "id": "btn_generator", - "type": "bindableImageButton", - "left": 569, - "top": 225, - "controlSize": { - "$ref": "#value.controlSize.toggleButtonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "TOGGLE_ALTERNATOR1", - "actionType": "SimEventId" - } - ] - }, - "binding": { - "variable": "ALTERNATOR_1_ON", - "images": [ - { - "url": "toggle_down.png", - "val": 0 - }, - { - "url": "toggle_up.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_alternator", - "type": "bindableImageButton", - "left": 666, - "top": 225, - "controlSize": { - "$ref": "#value.controlSize.toggleButtonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "TOGGLE_ALTERNATOR2", - "actionType": "SimEventId" - } - ] - }, - "binding": { - "variable": "ALTERNATOR_2_ON", - "images": [ - { - "url": "toggle_down.png", - "val": 0 - }, - { - "url": "toggle_up.png", - "val": 1 - } - ] - } - } - ] - } -} \ No newline at end of file diff --git a/ReactClient/public/config/profiles/kodiak/electrical/img/background_electrical.png b/ReactClient/public/config/profiles/kodiak/electrical/img/background_electrical.png deleted file mode 100644 index 9eb0c71..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/electrical/img/background_electrical.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/electrical/img/button_bank.png b/ReactClient/public/config/profiles/kodiak/electrical/img/button_bank.png deleted file mode 100644 index a31f96c..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/electrical/img/button_bank.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/electrical/img/button_lvl.png b/ReactClient/public/config/profiles/kodiak/electrical/img/button_lvl.png deleted file mode 100644 index 0aca3a8..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/electrical/img/button_lvl.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/electrical/img/button_spd.png b/ReactClient/public/config/profiles/kodiak/electrical/img/button_spd.png deleted file mode 100644 index 3cae97a..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/electrical/img/button_spd.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/electrical/img/button_yd.png b/ReactClient/public/config/profiles/kodiak/electrical/img/button_yd.png deleted file mode 100644 index 48d9bf1..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/electrical/img/button_yd.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/electrical/img/master_off.png b/ReactClient/public/config/profiles/kodiak/electrical/img/master_off.png deleted file mode 100644 index 44a3ac7..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/electrical/img/master_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/electrical/img/master_on.png b/ReactClient/public/config/profiles/kodiak/electrical/img/master_on.png deleted file mode 100644 index 045c871..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/electrical/img/master_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/electrical/img/rocker_off.png b/ReactClient/public/config/profiles/kodiak/electrical/img/rocker_off.png deleted file mode 100644 index fe28146..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/electrical/img/rocker_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/electrical/img/rocker_on.png b/ReactClient/public/config/profiles/kodiak/electrical/img/rocker_on.png deleted file mode 100644 index 816c278..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/electrical/img/rocker_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/electrical/img/toggle_down.png b/ReactClient/public/config/profiles/kodiak/electrical/img/toggle_down.png deleted file mode 100644 index ac947f2..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/electrical/img/toggle_down.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/electrical/img/toggle_mid.png b/ReactClient/public/config/profiles/kodiak/electrical/img/toggle_mid.png deleted file mode 100644 index 2135757..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/electrical/img/toggle_mid.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/electrical/img/toggle_up.png b/ReactClient/public/config/profiles/kodiak/electrical/img/toggle_up.png deleted file mode 100644 index f4558a9..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/electrical/img/toggle_up.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/fuel/PopoutPanelDefinition.json b/ReactClient/public/config/profiles/kodiak/fuel/PopoutPanelDefinition.json deleted file mode 100644 index 4fb14c4..0000000 --- a/ReactClient/public/config/profiles/kodiak/fuel/PopoutPanelDefinition.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "id": "KODIAK_FUEL_DEF", - "value": { - "panelSize": { - "width": 440, - "height": 226 - }, - "backgroundImage": "background_fuel.png", - "controlSize": { - "fuelLever": { - "width": 158, - "height": 158 - } - }, - "panelControlDefinitions": [ - { - "id": "btn_fuel_left", - "type": "bindableImageButton", - "left": 50, - "top": 45, - "controlSize": { - "$ref": "#value.controlSize.fuelLever" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "(L:SWS_Kodiak_TankSelector_1) ++ 2 % (>L:SWS_Kodiak_TankSelector_1)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "KODIAK_FUEL_SHUTOFF_LEFT", - "images": [ - { - "url": "fuel_lever_left_off.png", - "val": 0 - }, - { - "url": "fuel_lever_left_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_fuel_right", - "type": "bindableImageButton", - "left": 232, - "top": 45, - "controlSize": { - "$ref": "#value.controlSize.fuelLever" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "(L:SWS_Kodiak_TankSelector_2) ++ 2 % (>L:SWS_Kodiak_TankSelector_2)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "KODIAK_FUEL_SHUTOFF_RIGHT", - "images": [ - { - "url": "fuel_lever_right_off.png", - "val": 0 - }, - { - "url": "fuel_lever_right_on.png", - "val": 1 - } - ] - } - } - ] - } -} \ No newline at end of file diff --git a/ReactClient/public/config/profiles/kodiak/fuel/img/background_fuel.png b/ReactClient/public/config/profiles/kodiak/fuel/img/background_fuel.png deleted file mode 100644 index 31b645b..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/fuel/img/background_fuel.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/fuel/img/fuel_lever_left_off.png b/ReactClient/public/config/profiles/kodiak/fuel/img/fuel_lever_left_off.png deleted file mode 100644 index 377a231..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/fuel/img/fuel_lever_left_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/fuel/img/fuel_lever_left_on.png b/ReactClient/public/config/profiles/kodiak/fuel/img/fuel_lever_left_on.png deleted file mode 100644 index a573b76..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/fuel/img/fuel_lever_left_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/fuel/img/fuel_lever_right_off.png b/ReactClient/public/config/profiles/kodiak/fuel/img/fuel_lever_right_off.png deleted file mode 100644 index 06fa260..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/fuel/img/fuel_lever_right_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/fuel/img/fuel_lever_right_on.png b/ReactClient/public/config/profiles/kodiak/fuel/img/fuel_lever_right_on.png deleted file mode 100644 index b099d68..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/fuel/img/fuel_lever_right_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/lights/PopoutPanelDefinition.json b/ReactClient/public/config/profiles/kodiak/lights/PopoutPanelDefinition.json deleted file mode 100644 index 9628e1f..0000000 --- a/ReactClient/public/config/profiles/kodiak/lights/PopoutPanelDefinition.json +++ /dev/null @@ -1,488 +0,0 @@ -{ - "id": "KODIAK_LIGHTS_DEF", - "value": { - "panelSize": { - "width": 929, - "height": 380 - }, - "backgroundImage": "background_lights.png", - "controlSize": { - "toggleButtonBase": { - "width": 50, - "height": 98 - }, - "lightKnob": { - "width": 70, - "height": 70 - }, - "iceKnob": { - "width": 65, - "height": 65 - }, - "rockerBase": { - "width": 55, - "height": 115 - } - }, - "panelControlDefinitions": [ - { - "id": "btn_beacon_light", - "type": "bindableImageButton", - "left": 82, - "top": 49, - "controlSize": { - "$ref": "#value.controlSize.toggleButtonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "TOGGLE_BEACON_LIGHTS", - "actionType": "SimEventId" - } - ] - }, - "binding": { - "variable": "LIGHT_BEACON_ON", - "images": [ - { - "url": "toggle_down.png", - "val": 0 - }, - { - "url": "toggle_up.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_strobe_light", - "type": "bindableImageButton", - "left": 178, - "top": 49, - "controlSize": { - "$ref": "#value.controlSize.toggleButtonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "STROBES_TOGGLE", - "actionType": "SimEventId" - } - ] - }, - "binding": { - "variable": "LIGHT_STROBE_ON", - "images": [ - { - "url": "toggle_down.png", - "val": 0 - }, - { - "url": "toggle_up.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_nav_light", - "type": "bindableImageButton", - "left": 272, - "top": 49, - "controlSize": { - "$ref": "#value.controlSize.toggleButtonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "TOGGLE_NAV_LIGHTS", - "actionType": "SimEventId" - } - ] - }, - "binding": { - "variable": "LIGHT_NAV_ON", - "images": [ - { - "url": "toggle_down.png", - "val": 0 - }, - { - "url": "toggle_up.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_taxi_light", - "type": "bindableImageButton", - "left": 367, - "top": 49, - "controlSize": { - "$ref": "#value.controlSize.toggleButtonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "TOGGLE_TAXI_LIGHTS", - "actionType": "SimEventId" - } - ] - }, - "binding": { - "variable": "LIGHT_TAXI_ON", - "images": [ - { - "url": "toggle_down.png", - "val": 0 - }, - { - "url": "toggle_up.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_landing_light", - "type": "bindableImageButton", - "left": 485, - "top": 49, - "controlSize": { - "$ref": "#value.controlSize.toggleButtonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "(L:SWS_LIGHTING_Switch_Light_Landing) ++ 3 % (>L:SWS_LIGHTING_Switch_Light_Landing)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "KODIAK_LANDING_LIGHT", - "images": [ - { - "url": "toggle_down.png", - "val": 0 - }, - { - "url": "toggle_mid.png", - "val": 1 - }, - { - "url": "toggle_up.png", - "val": 2 - } - ] - } - }, - { - "id": "btn_cabin_light", - "type": "bindableImageButton", - "left": 603, - "top": 49, - "controlSize": { - "$ref": "#value.controlSize.toggleButtonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "(L:SWS_LIGHTING_Switch_Light_CABIN_12) ++ 3 % (>L:SWS_LIGHTING_Switch_Light_CABIN_12)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "KODIAK_CABIN_LIGHT", - "images": [ - { - "url": "toggle_down.png", - "val": 0 - }, - { - "url": "toggle_mid.png", - "val": 1 - }, - { - "url": "toggle_up.png", - "val": 2 - } - ] - } - }, - { - "id": "btn_instrument_light_knob", - "type": "imageButton", - "image": "knob_light_dual.png", - "left": 685, - "top": 69, - "controlSize": { - "$ref": "#value.controlSize.lightKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "KODIAK_INSTRUMENTS_LIGHT_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "[/{KODIAK_GLARESHIELD_SETTING/} * 100 + 5] 100 min (>K:LIGHT_POTENTIOMETER_3_SET) 1 (>K:GLARESHIELD_LIGHTS_ON)", - "encoderLowerCCW": "[/{KODIAK_GLARESHIELD_SETTING/} * 100 - 5] 0 max (>K:LIGHT_POTENTIOMETER_3_SET)", - "encoderUpperCW": "[/{KODIAK_INSTRUMENTATION_LIGHT_SETTING/} * 100 + 5] 100 min (>K:LIGHT_POTENTIOMETER_2_SET) 1 (>K:PANEL_LIGHTS_ON)", - "encoderUpperCCW": "[/{KODIAK_INSTRUMENTATION_LIGHT_SETTING/} * 100 - 5] 0 max (>K:LIGHT_POTENTIOMETER_2_SET)", - "actionType": "SimVarCode" - } - } - }, - { - "id": "btn_switch_panel_light_knob", - "type": "imageButton", - "image": "knob_light.png", - "left": 778, - "top": 69, - "controlSize": { - "$ref": "#value.controlSize.lightKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "KODIAK_PANEL_LIGHT_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "[/{KODIAK_PANEL_LIGHT_SETTING/} * 100 + 5] 100 min (>K:LIGHT_POTENTIOMETER_21_SET) 1 (>K:PEDESTRAL_LIGHTS_ON)", - "encoderLowerCCW": "[/{KODIAK_PANEL_LIGHT_SETTING/} * 100 - 5] 0 max (>K:LIGHT_POTENTIOMETER_21_SET)", - "encoderUpperCW": "[/{KODIAK_PANEL_LIGHT_SETTING/} * 100 + 5] 100 min (>K:LIGHT_POTENTIOMETER_21_SET) 1 (>K:PEDESTRAL_LIGHTS_ON)", - "encoderUpperCCW": "[/{KODIAK_PANEL_LIGHT_SETTING/} * 100 - 5] 0 max (>K:LIGHT_POTENTIOMETER_21_SET)", - "actionType": "SimVarCode" - } - } - }, - { - "id": "btn_engine_inlet_bypass_override", - "type": "image", - "image": "toggle_down.png", - "left": 82, - "top": 225, - "controlSize": { - "$ref": "#value.controlSize.toggleButtonBase" - }, - "highlight": false - }, - { - "id": "btn_engine_inlet_bypass", - "type": "bindableImageButton", - "left": 178, - "top": 225, - "controlSize": { - "$ref": "#value.controlSize.toggleButtonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "1 (>K:ANTI_ICE_TOGGLE_ENG1)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "ENG_ANTI_ICE_1", - "images": [ - { - "url": "toggle_down.png", - "val": 0 - }, - { - "url": "toggle_up.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_pitot_heat_left", - "type": "bindableImageButton", - "left": 272, - "top": 225, - "controlSize": { - "$ref": "#value.controlSize.toggleButtonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "1 (>K:PITOT_HEAT_TOGGLE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "KODIAK_PITOT_HEAT_1", - "images": [ - { - "url": "toggle_down.png", - "val": 0 - }, - { - "url": "toggle_up.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_pitot_heat_right", - "type": "bindableImageButton", - "left": 367, - "top": 225, - "controlSize": { - "$ref": "#value.controlSize.toggleButtonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "2 (>K:PITOT_HEAT_TOGGLE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "KODIAK_PITOT_HEAT_2", - "images": [ - { - "url": "toggle_down.png", - "val": 0 - }, - { - "url": "toggle_up.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_ice_knob", - "type": "bindableImageButton", - "left": 480, - "top": 250, - "controlSize": { - "$ref": "#value.controlSize.iceKnob" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "TOGGLE_PROPELLER_DEICE", - "actionType": "SimEventId" - } - ] - }, - "binding": { - "variable": "PROP_DEICE_SWITCH", - "images": [ - { - "url": "knob_ice.png", - "rotate": 0, - "val": 0 - }, - { - "url": "knob_ice.png", - "rotate": 95, - "val": 1 - } - ] - } - }, - { - "id": "btn_wind_shield_heat", - "type": "bindableImageButton", - "left": 603, - "top": 225, - "controlSize": { - "$ref": "#value.controlSize.toggleButtonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "KODIAK_100_DEICE_WINDSHIELD_TOGGLE", - "actionType": "SimEventId" - } - ] - }, - "binding": { - "variable": "WINDSHIELD_DEICE_SWITCH", - "images": [ - { - "url": "toggle_down.png", - "val": 0 - }, - { - "url": "toggle_up.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_backup_pump_heat", - "type": "image", - "image": "toggle_down.png", - "left": 696, - "top": 225, - "controlSize": { - "$ref": "#value.controlSize.toggleButtonBase" - }, - "highlight": false - }, - { - "id": "btn_ice_light", - "type": "bindableImageButton", - "left": 790, - "top": 225, - "controlSize": { - "$ref": "#value.controlSize.toggleButtonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "TOGGLE_WING_LIGHTS", - "actionType": "SimEventId" - } - ] - }, - "binding": { - "variable": "LIGHT_WING_ON", - "images": [ - { - "url": "toggle_down.png", - "val": 0 - }, - { - "url": "toggle_up.png", - "val": 1 - } - ] - } - } - ] - } -} \ No newline at end of file diff --git a/ReactClient/public/config/profiles/kodiak/lights/img/background_lights.png b/ReactClient/public/config/profiles/kodiak/lights/img/background_lights.png deleted file mode 100644 index 9682705..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/lights/img/background_lights.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/lights/img/knob_ice.png b/ReactClient/public/config/profiles/kodiak/lights/img/knob_ice.png deleted file mode 100644 index 9030c0b..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/lights/img/knob_ice.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/lights/img/knob_light.png b/ReactClient/public/config/profiles/kodiak/lights/img/knob_light.png deleted file mode 100644 index e987f54..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/lights/img/knob_light.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/lights/img/knob_light_dual.png b/ReactClient/public/config/profiles/kodiak/lights/img/knob_light_dual.png deleted file mode 100644 index 6c19de3..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/lights/img/knob_light_dual.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/lights/img/toggle_down.png b/ReactClient/public/config/profiles/kodiak/lights/img/toggle_down.png deleted file mode 100644 index ac947f2..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/lights/img/toggle_down.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/lights/img/toggle_mid.png b/ReactClient/public/config/profiles/kodiak/lights/img/toggle_mid.png deleted file mode 100644 index 2135757..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/lights/img/toggle_mid.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/lights/img/toggle_up.png b/ReactClient/public/config/profiles/kodiak/lights/img/toggle_up.png deleted file mode 100644 index f4558a9..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/lights/img/toggle_up.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/oxygen/PopoutPanelDefinition.json b/ReactClient/public/config/profiles/kodiak/oxygen/PopoutPanelDefinition.json deleted file mode 100644 index f0e583d..0000000 --- a/ReactClient/public/config/profiles/kodiak/oxygen/PopoutPanelDefinition.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "id": "KODIAK_OXYGEN_DEF", - "value": { - "panelSize": { - "width": 215, - "height": 215 - }, - "backgroundImage": "background_oxygen.png", - "controlSize": { - "oxygenBase": { - "width": 49, - "height": 69 - }, - "oxygenIndicatorBase": { - "width": 10, - "height": 107 - } - }, - "panelControlDefinitions": [ - { - "id": "btn_oxygen", - "type": "bindableImageButton", - "left": 92, - "top": 82, - "controlSize": { - "$ref": "#value.controlSize.oxygenBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "(L:XMLVAR_Oxygen) ++ 2 % (>L:XMLVAR_Oxygen)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "KODIAK_OXYGEN", - "images": [ - { - "url": "oxygen_off.png", - "val": 0 - }, - { - "url": "oxygen_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_oxygen_indicator", - "type": "bindableImageButton", - "left": 66, - "top": 60, - "controlSize": { - "$ref": "#value.controlSize.oxygenIndicatorBase" - }, - "highlight": false, - "binding": { - "variable": "KODIAK_OXYGEN", - "images": [ - { - "url": "oxygen_indicator_off.png", - "val": 0 - }, - { - "url": "oxygen_indicator_on.png", - "val": 1 - } - ] - } - } - ] - } -} \ No newline at end of file diff --git a/ReactClient/public/config/profiles/kodiak/oxygen/img/background_oxygen.png b/ReactClient/public/config/profiles/kodiak/oxygen/img/background_oxygen.png deleted file mode 100644 index 2de93ee..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/oxygen/img/background_oxygen.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/oxygen/img/oxygen_indicator_on.png b/ReactClient/public/config/profiles/kodiak/oxygen/img/oxygen_indicator_on.png deleted file mode 100644 index 8dda8e4..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/oxygen/img/oxygen_indicator_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/oxygen/img/oxygen_off.png b/ReactClient/public/config/profiles/kodiak/oxygen/img/oxygen_off.png deleted file mode 100644 index 473c9d3..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/oxygen/img/oxygen_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/oxygen/img/oxygen_on.png b/ReactClient/public/config/profiles/kodiak/oxygen/img/oxygen_on.png deleted file mode 100644 index 6293789..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/oxygen/img/oxygen_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/PopoutPanelDefinition.json b/ReactClient/public/config/profiles/kodiak/pfdmfd/PopoutPanelDefinition.json deleted file mode 100644 index 7fbb475..0000000 --- a/ReactClient/public/config/profiles/kodiak/pfdmfd/PopoutPanelDefinition.json +++ /dev/null @@ -1,3206 +0,0 @@ -[ - { - "id": "KODIAK_PFD_MFD_DEF", - "value": { - "panelSize": { - "width": 2458, - "height": 914 - }, - "backgroundImage": "background_pfdmfd.png", - "controlSize": { - "regularKnob": { - "width": 77, - "height": 77 - }, - "crsKnob": { - "width": 79, - "height": 79 - }, - "volKnob": { - "width": 49, - "height": 49 - }, - "rangeKnob": { - "width": 66, - "height": 66 - }, - "buttonBase": { - "width": 57, - "height": 36 - }, - "speedKnob": { - "width": 53, - "height": 94 - } - }, - "encoderAction": { - "mfdFms": { - "encoderLowerCW": "AS1000_MFD_FMS_Lower_INC", - "encoderLowerCCW": "AS1000_MFD_FMS_Lower_DEC", - "encoderUpperCW": "AS1000_MFD_FMS_Upper_INC", - "encoderUpperCCW": "AS1000_MFD_FMS_Upper_DEC", - "encoderLowerSwitch": "AS1000_MFD_FMS_Upper_PUSH", - "encoderUpperSwitch": "AS1000_MFD_FMS_Upper_PUSH", - "actionType": "SimEventId" - } - }, - "panelControlDefinitions": [ - { - "id": "btn_vol1knob", - "type": "imageButton", - "image": "knob_vol.png", - "left": 60, - "top": 41, - "controlSize": { - "$ref": "#value.controlSize.volKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_VOL1_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_PFD_VOL_1_INC", - "encoderLowerCCW": "AS1000_PFD_VOL_1_DEC", - "encoderUpperCW": "AS1000_PFD_VOL_1_INC", - "encoderUpperCCW": "AS1000_PFD_VOL_1_DEC", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_vol2knob", - "type": "imageButton", - "image": "knob_vol.png", - "left": 2348, - "top": 41, - "controlSize": { - "$ref": "#value.controlSize.volKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_VOL2_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_PFD_VOL_2_INC", - "encoderLowerCCW": "AS1000_PFD_VOL_2_DEC", - "encoderUpperCW": "AS1000_PFD_VOL_2_INC", - "encoderUpperCCW": "AS1000_PFD_VOL_2_DEC", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_navknob", - "type": "imageButton", - "image": "knob.png", - "left": 47, - "top": 171, - "controlSize": { - "$ref": "#value.controlSize.regularKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_NAV_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_PFD_NAV_Large_INC", - "encoderLowerCCW": "AS1000_PFD_NAV_Large_DEC", - "encoderUpperCW": "AS1000_PFD_NAV_Small_INC", - "encoderUpperCCW": "AS1000_PFD_NAV_Small_DEC", - "encoderLowerSwitch": "AS1000_PFD_NAV_Push", - "encoderUpperSwitch": "AS1000_PFD_NAV_Push", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_navswap", - "type": "imageButton", - "image": "button_swap.png", - "left": 97, - "top": 104, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_NAV_Switch", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "encoderLowerCW": "AS1000_PFD_NAV_Large_INC", - "encoderLowerCCW": "AS1000_PFD_NAV_Large_DEC", - "encoderUpperCW": "AS1000_PFD_NAV_Small_INC", - "encoderUpperCCW": "AS1000_PFD_NAV_Small_DEC", - "encoderLowerSwitch": "AS1000_PFD_NAV_Push", - "encoderUpperSwitch": "AS1000_PFD_NAV_Push", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_hdgknob", - "type": "imageButton", - "image": "knob_hdg.png", - "left": 46, - "top": 339, - "controlSize": { - "$ref": "#value.controlSize.regularKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_HDG_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_PFD_HEADING_FAST_INC", - "encoderLowerCCW": "AS1000_PFD_HEADING_FAST_DEC", - "encoderUpperCW": "AS1000_PFD_HEADING_INC", - "encoderUpperCCW": "AS1000_PFD_HEADING_DEC", - "encoderLowerSwitch": "AS1000_PFD_HEADING_SYNC", - "encoderUpperSwitch": "AS1000_PFD_HEADING_SYNC", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_altknob", - "type": "imageButton", - "image": "knob.png", - "left": 48, - "top": 790, - "controlSize": { - "$ref": "#value.controlSize.regularKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_ALT_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_AP_ALT_INC_1000", - "encoderLowerCCW": "AS1000_AP_ALT_DEC_1000", - "encoderLowerSwitch": "AS1000_AP_ALT_SYNC", - "encoderUpperCW": "AS1000_AP_ALT_INC_100", - "encoderUpperCCW": "AS1000_AP_ALT_DEC_100", - "encoderUpperSwitch": "AS1000_AP_ALT_SYNC", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_comknob", - "type": "imageButton", - "image": "knob.png", - "left": 2334, - "top": 170, - "controlSize": { - "$ref": "#value.controlSize.regularKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_COM_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_PFD_COM_Large_INC", - "encoderLowerCCW": "AS1000_PFD_COM_Large_DEC", - "encoderLowerSwitch": "AS1000_PFD_COM_Push", - "encoderUpperCW": "AS1000_PFD_COM_Small_INC", - "encoderUpperCCW": "AS1000_PFD_COM_Small_DEC", - "encoderUpperSwitch": "AS1000_PFD_COM_Push", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_comswap", - "type": "imageButton", - "image": "button_swap.png", - "left": 2304, - "top": 104, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_COM_Switch", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "encoderLowerw": "AS1000_PFD_COM_Small_INC", - "encoderLowerCCW": "AS1000_PFD_COM_Small_DEC", - "encoderUpperCW": "AS1000_PFD_COM_Large_INC", - "encoderUpperCCW": "AS1000_PFD_COM_Large_DEC", - "encoderLowerSwitch": "AS1000_PFD_COM_Push", - "encoderUpperSwitch": "AS1000_PFD_COM_Push", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_crsknob", - "type": "imageButton", - "image": "knob_crs.png", - "left": 2334, - "top": 334, - "controlSize": { - "$ref": "#value.controlSize.crsKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_CRS_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_PFD_BARO_INC", - "encoderLowerCCW": "AS1000_PFD_BARO_DEC", - "encoderUpperCW": "AS1000_PFD_CRS_INC", - "encoderUpperCCW": "AS1000_PFD_CRS_DEC", - "encoderLowerSwitch": "AS1000_PFD_CRS_PUSH", - "encoderUpperSwitch": "AS1000_PFD_CRS_PUSH", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_rangeknob", - "type": "imageButton", - "image": "knob_range.png", - "left": 2339, - "top": 493, - "controlSize": { - "$ref": "#value.controlSize.rangeKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_MAP_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_MFD_RANGE_INC", - "encoderLowerCCW": "AS1000_MFD_RANGE_DEC", - "encoderLowerSwitch": "AS1000_MFD_JOYSTICK_PUSH", - "encoderUpperCW": "AS1000_MFD_RANGE_INC", - "encoderUpperCCW": "AS1000_MFD_RANGE_DEC", - "encoderUpperSwitch": "AS1000_MFD_JOYSTICK_PUSH", - "joystick1up": "AS1000_MFD_JOYSTICK_RIGHT", - "joystick1down": "AS1000_MFD_JOYSTICK_LEFT", - "joystick1left": "AS1000_MFD_JOYSTICK_UP", - "joystick1right": "AS1000_MFD_JOYSTICK_DOWN", - "joystick1switch": "AS1000_MFD_JOYSTICK_PUSH", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_fmsknob", - "type": "imageButton", - "image": "knob.png", - "left": 2331, - "top": 791, - "controlSize": { - "$ref": "#value.controlSize.regularKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_FMS_KNOB_SELECT", - "actionType": "EncoderAction" - } - ], - "useDualEncoder": true, - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_ap", - "type": "imageButton", - "image": "button_ap.png", - "left": 22, - "top": 468, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_MASTER", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_fd", - "type": "imageButton", - "image": "button_fd.png", - "left": 94, - "top": 468, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "TOGGLE_FLIGHT_DIRECTOR", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_hdg", - "type": "imageButton", - "image": "button_hdg.png", - "left": 22, - "top": 518, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_PANEL_HEADING_HOLD", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_alt", - "type": "imageButton", - "image": "button_alt.png", - "left": 94, - "top": 518, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_PANEL_ALTITUDE_HOLD", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_nav", - "type": "imageButton", - "image": "button_nav.png", - "left": 22, - "top": 568, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_NAV1_HOLD", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_vnv", - "type": "imageButton", - "image": "button_vnv.png", - "left": 94, - "top": 568, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_VNAV_TOGGLE", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_apr", - "type": "imageButton", - "image": "button_apr.png", - "left": 22, - "top": 619, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_APR_HOLD", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_bc", - "type": "imageButton", - "image": "button_bc.png", - "left": 94, - "top": 619, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_BC_HOLD", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_vs", - "type": "imageButton", - "image": "button_vs.png", - "left": 22, - "top": 669, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_PANEL_VS_HOLD", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "encoderLowerCW": "AS1000_MFD_NOSE_UP", - "encoderLowerCCW": "AS1000_MFD_NOSE_DN", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_flc", - "type": "imageButton", - "image": "button_flc.png", - "left": 22, - "top": 719, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_FLC_Push", - "actionType": "SimEventId" - }, - { - "action": "AP_SPD_VAR_SET", - "actionValueVariable": "PLANE_AIRSPEED", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "encoderLowerCW": "AS1000_MFD_NOSE_DN", - "encoderLowerCCW": "AS1000_MFD_NOSE_UP", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_speedknob", - "type": "imageButton", - "image": "knob_speed.png", - "left": 96, - "top": 668, - "controlSize": { - "$ref": "#value.controlSize.speedKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AIRSPEED_BUG_SELECT", - "actionType": "EncoderAction" - } - ], - "useEncoder": true - } - }, - { - "id": "btn_dir", - "type": "imageButton", - "image": "button_dir.png", - "left": 2306, - "top": 618, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_DIRECTTO", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_menu", - "type": "imageButton", - "image": "button_menu.png", - "left": 2379, - "top": 618, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_MENU_Push", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_fpl", - "type": "imageButton", - "image": "button_fpl.png", - "left": 2306, - "top": 670, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_FPL_Push", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_proc", - "type": "imageButton", - "image": "button_proc.png", - "left": 2379, - "top": 670, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_PROC_Push", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_clr", - "type": "imageButton", - "image": "button_clr.png", - "left": 2306, - "top": 722, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_CLR", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_ent", - "type": "imageButton", - "image": "button_ent.png", - "left": 2379, - "top": 722, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_ENT_Push", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_1", - "type": "imageButton", - "image": "button_softkey.png", - "left": 208, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_1", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_2", - "type": "imageButton", - "image": "button_softkey.png", - "left": 292, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_2", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_3", - "type": "imageButton", - "image": "button_softkey.png", - "left": 378, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_3", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_4", - "type": "imageButton", - "image": "button_softkey.png", - "left": 463, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_4", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_5", - "type": "imageButton", - "image": "button_softkey.png", - "left": 549, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_5", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_6", - "type": "imageButton", - "image": "button_softkey.png", - "left": 636, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_6", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_7", - "type": "imageButton", - "image": "button_softkey.png", - "left": 721, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_7", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_8", - "type": "imageButton", - "image": "button_softkey.png", - "left": 804, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_8", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_9", - "type": "imageButton", - "image": "button_softkey.png", - "left": 890, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_9", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_10", - "type": "imageButton", - "image": "button_softkey.png", - "left": 976, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_10", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_11", - "type": "imageButton", - "image": "button_softkey.png", - "left": 1061, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_11", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_12", - "type": "imageButton", - "image": "button_softkey.png", - "left": 1145, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_12", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_1", - "type": "imageButton", - "image": "button_softkey.png", - "left": 1258, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_1", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_2", - "type": "imageButton", - "image": "button_softkey.png", - "left": 1343, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_2", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_3", - "type": "imageButton", - "image": "button_softkey.png", - "left": 1429, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_3", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_4", - "type": "imageButton", - "image": "button_softkey.png", - "left": 1514, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_4", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_5", - "type": "imageButton", - "image": "button_softkey.png", - "left": 1600, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_5", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_6", - "type": "imageButton", - "image": "button_softkey.png", - "left": 1686, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_6", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_7", - "type": "imageButton", - "image": "button_softkey.png", - "left": 1770, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_7", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_8", - "type": "imageButton", - "image": "button_softkey.png", - "left": 1854, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_8", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_9", - "type": "imageButton", - "image": "button_softkey.png", - "left": 1940, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_9", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_10", - "type": "imageButton", - "image": "button_softkey.png", - "left": 2024, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_10", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_11", - "type": "imageButton", - "image": "button_softkey.png", - "left": 2110, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_11", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_12", - "type": "imageButton", - "image": "button_softkey.png", - "left": 2195, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_12", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - } - ] - } - }, - { - "id": "KODIAK_PFD_ONLY_DEF", - "value": { - "panelSize": { - "width": 1408, - "height": 914 - }, - "backgroundImage": "background_pfd_only.png", - "controlSize": { - "regularKnob": { - "width": 77, - "height": 77 - }, - "crsKnob": { - "width": 79, - "height": 79 - }, - "volKnob": { - "width": 49, - "height": 49 - }, - "rangeKnob": { - "width": 66, - "height": 66 - }, - "buttonBase": { - "width": 57, - "height": 36 - }, - "speedKnob": { - "width": 53, - "height": 94 - } - }, - "encoderAction": { - "pfdFms": { - "encoderLowerCW": "AS1000_PFD_FMS_Lower_INC", - "encoderLowerCCW": "AS1000_PFD_FMS_Lower_DEC", - "encoderUpperCW": "AS1000_PFD_FMS_Upper_INC", - "encoderUpperCCW": "AS1000_PFD_FMS_Upper_DEC", - "encoderLowerSwitch": "AS1000_PFD_FMS_Upper_PUSH", - "encoderUpperSwitch": "AS1000_PFD_FMS_Upper_PUSH", - "actionType": "SimEventId" - } - }, - "panelControlDefinitions": [ - { - "id": "btn_vol1knob", - "type": "imageButton", - "image": "knob_vol.png", - "left": 60, - "top": 41, - "controlSize": { - "$ref": "#value.controlSize.volKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_VOL1_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_PFD_VOL_1_INC", - "encoderLowerCCW": "AS1000_PFD_VOL_1_DEC", - "encoderUpperCW": "AS1000_PFD_VOL_1_INC", - "encoderUpperCCW": "AS1000_PFD_VOL_1_DEC", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_vol2knob", - "type": "imageButton", - "image": "knob_vol.png", - "left": 1296, - "top": 41, - "controlSize": { - "$ref": "#value.controlSize.volKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_VOL2_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_PFD_VOL_2_INC", - "encoderLowerCCW": "AS1000_PFD_VOL_2_DEC", - "encoderUpperCW": "AS1000_PFD_VOL_2_INC", - "encoderUpperCCW": "AS1000_PFD_VOL_2_DEC", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_navknob", - "type": "imageButton", - "image": "knob.png", - "left": 47, - "top": 171, - "controlSize": { - "$ref": "#value.controlSize.regularKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_NAV_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_PFD_NAV_Large_INC", - "encoderLowerCCW": "AS1000_PFD_NAV_Large_DEC", - "encoderUpperCW": "AS1000_PFD_NAV_Small_INC", - "encoderUpperCCW": "AS1000_PFD_NAV_Small_DEC", - "encoderLowerSwitch": "AS1000_PFD_NAV_Push", - "encoderUpperSwitch": "AS1000_PFD_NAV_Push", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_navswap", - "type": "imageButton", - "image": "button_swap.png", - "left": 97, - "top": 104, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_NAV_Switch", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "encoderLowerCW": "AS1000_PFD_NAV_Large_INC", - "encoderLowerCCW": "AS1000_PFD_NAV_Large_DEC", - "encoderUpperCW": "AS1000_PFD_NAV_Small_INC", - "encoderUpperCCW": "AS1000_PFD_NAV_Small_DEC", - "encoderLowerSwitch": "AS1000_PFD_NAV_Push", - "encoderUpperSwitch": "AS1000_PFD_NAV_Push", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_hdgknob", - "type": "imageButton", - "image": "knob_hdg.png", - "left": 46, - "top": 339, - "controlSize": { - "$ref": "#value.controlSize.regularKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_HDG_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_PFD_HEADING_FAST_INC", - "encoderLowerCCW": "AS1000_PFD_HEADING_FAST_DEC", - "encoderUpperCW": "AS1000_PFD_HEADING_INC", - "encoderUpperCCW": "AS1000_PFD_HEADING_DEC", - "encoderLowerSwitch": "AS1000_PFD_HEADING_SYNC", - "encoderUpperSwitch": "AS1000_PFD_HEADING_SYNC", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_altknob", - "type": "imageButton", - "image": "knob.png", - "left": 48, - "top": 790, - "controlSize": { - "$ref": "#value.controlSize.regularKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_ALT_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_AP_ALT_INC_1000", - "encoderLowerCCW": "AS1000_AP_ALT_DEC_1000", - "encoderLowerSwitch": "AS1000_AP_ALT_SYNC", - "encoderUpperCW": "AS1000_AP_ALT_INC_100", - "encoderUpperCCW": "AS1000_AP_ALT_DEC_100", - "encoderUpperSwitch": "AS1000_AP_ALT_SYNC", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_comknob", - "type": "imageButton", - "image": "knob.png", - "left": 1282, - "top": 170, - "controlSize": { - "$ref": "#value.controlSize.regularKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_COM_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_PFD_COM_Large_INC", - "encoderLowerCCW": "AS1000_PFD_COM_Large_DEC", - "encoderLowerSwitch": "AS1000_PFD_COM_Push", - "encoderUpperCW": "AS1000_PFD_COM_Small_INC", - "encoderUpperCCW": "AS1000_PFD_COM_Small_DEC", - "encoderUpperSwitch": "AS1000_PFD_COM_Push", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_comswap", - "type": "imageButton", - "image": "button_swap.png", - "left": 1252, - "top": 104, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_COM_Switch", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "encoderLowerw": "AS1000_PFD_COM_Small_INC", - "encoderLowerCCW": "AS1000_PFD_COM_Small_DEC", - "encoderUpperCW": "AS1000_PFD_COM_Large_INC", - "encoderUpperCCW": "AS1000_PFD_COM_Large_DEC", - "encoderLowerSwitch": "AS1000_PFD_COM_Push", - "encoderUpperSwitch": "AS1000_PFD_COM_Push", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_crsknob", - "type": "imageButton", - "image": "knob_crs.png", - "left": 1282, - "top": 334, - "controlSize": { - "$ref": "#value.controlSize.crsKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_CRS_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_PFD_BARO_INC", - "encoderLowerCCW": "AS1000_PFD_BARO_DEC", - "encoderUpperCW": "AS1000_PFD_CRS_INC", - "encoderUpperCCW": "AS1000_PFD_CRS_DEC", - "encoderLowerSwitch": "AS1000_PFD_CRS_PUSH", - "encoderUpperSwitch": "AS1000_PFD_CRS_PUSH", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_rangeknob", - "type": "imageButton", - "image": "knob_range.png", - "left": 1287, - "top": 493, - "controlSize": { - "$ref": "#value.controlSize.rangeKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_MAP_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_PFD_RANGE_INC", - "encoderLowerCCW": "AS1000_PFD_RANGE_DEC", - "encoderLowerSwitch": "AS1000_PFD_JOYSTICK_PUSH", - "encoderUpperCW": "AS1000_PFD_RANGE_INC", - "encoderUpperCCW": "AS1000_PFD_RANGE_DEC", - "encoderUpperSwitch": "AS1000_PFD_JOYSTICK_PUSH", - "joystick1up": "AS1000_PFD_JOYSTICK_UP", - "joystick1down": "AS1000_PFD_JOYSTICK_DOWN", - "joystick1left": "AS1000_PFD_JOYSTICK_LEFT", - "joystick1right": "AS1000_PFD_JOYSTICK_RIGHT", - "joystick1switch": "AS1000_PFD_JOYSTICK_PUSH", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_fmsknob", - "type": "imageButton", - "image": "knob.png", - "left": 1281, - "top": 791, - "controlSize": { - "$ref": "#value.controlSize.regularKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_FMS_KNOB_SELECT", - "actionType": "EncoderAction" - } - ], - "useDualEncoder": true - } - }, - { - "id": "btn_ap", - "type": "imageButton", - "image": "button_ap.png", - "left": 22, - "top": 468, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_MASTER", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_fd", - "type": "imageButton", - "image": "button_fd.png", - "left": 94, - "top": 468, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "TOGGLE_FLIGHT_DIRECTOR", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_hdg", - "type": "imageButton", - "image": "button_hdg.png", - "left": 22, - "top": 518, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_PANEL_HEADING_HOLD", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_alt", - "type": "imageButton", - "image": "button_alt.png", - "left": 94, - "top": 518, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_PANEL_ALTITUDE_HOLD", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_nav", - "type": "imageButton", - "image": "button_nav.png", - "left": 22, - "top": 568, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_NAV1_HOLD", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_vnv", - "type": "imageButton", - "image": "button_vnv.png", - "left": 94, - "top": 568, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_VNAV_TOGGLE", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_apr", - "type": "imageButton", - "image": "button_apr.png", - "left": 22, - "top": 619, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_APR_HOLD", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_bc", - "type": "imageButton", - "image": "button_bc.png", - "left": 94, - "top": 619, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_BC_HOLD", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_vs", - "type": "imageButton", - "image": "button_vs.png", - "left": 22, - "top": 669, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_PANEL_VS_HOLD", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "encoderLowerCW": "AS1000_PFD_NOSE_UP", - "encoderLowerCCW": "AS1000_PFD_NOSE_DN", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_flc", - "type": "imageButton", - "image": "button_flc.png", - "left": 22, - "top": 719, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_FLC_Push", - "actionType": "SimEventId" - }, - { - "action": "AP_SPD_VAR_SET", - "actionValueVariable": "PLANE_AIRSPEED", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "encoderLowerCW": "AS1000_PFD_NOSE_DN", - "encoderLowerCCW": "AS1000_PFD_NOSE_UP", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_speedknob", - "type": "imageButton", - "image": "knob_speed.png", - "left": 96, - "top": 668, - "controlSize": { - "$ref": "#value.controlSize.speedKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AIRSPEED_BUG_SELECT", - "actionType": "EncoderAction" - } - ], - "useEncoder": true - } - }, - { - "id": "btn_dir", - "type": "imageButton", - "image": "button_dir.png", - "left": 1254, - "top": 618, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_DIRECTTO", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.pfdFms" - } - } - }, - { - "id": "btn_menu", - "type": "imageButton", - "image": "button_menu.png", - "left": 1327, - "top": 618, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_MENU_Push", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.pfdFms" - } - } - }, - { - "id": "btn_fpl", - "type": "imageButton", - "image": "button_fpl.png", - "left": 1254, - "top": 670, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_FPL_Push", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.pfdFms" - } - } - }, - { - "id": "btn_proc", - "type": "imageButton", - "image": "button_proc.png", - "left": 1327, - "top": 670, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_PROC_Push", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.pfdFms" - } - } - }, - { - "id": "btn_clr", - "type": "imageButton", - "image": "button_clr.png", - "left": 1254, - "top": 722, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_CLR", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.pfdFms" - } - } - }, - { - "id": "btn_ent", - "type": "imageButton", - "image": "button_ent.png", - "left": 1327, - "top": 722, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_ENT_Push", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.pfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_1", - "type": "imageButton", - "image": "button_softkey.png", - "left": 208, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_1", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.pfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_2", - "type": "imageButton", - "image": "button_softkey.png", - "left": 292, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_2", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.pfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_3", - "type": "imageButton", - "image": "button_softkey.png", - "left": 378, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_3", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.pfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_4", - "type": "imageButton", - "image": "button_softkey.png", - "left": 463, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_4", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.pfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_5", - "type": "imageButton", - "image": "button_softkey.png", - "left": 549, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_5", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.pfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_6", - "type": "imageButton", - "image": "button_softkey.png", - "left": 636, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_6", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.pfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_7", - "type": "imageButton", - "image": "button_softkey.png", - "left": 721, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_7", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.pfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_8", - "type": "imageButton", - "image": "button_softkey.png", - "left": 804, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_8", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.pfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_9", - "type": "imageButton", - "image": "button_softkey.png", - "left": 890, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_9", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.pfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_10", - "type": "imageButton", - "image": "button_softkey.png", - "left": 976, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_10", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.pfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_11", - "type": "imageButton", - "image": "button_softkey.png", - "left": 1061, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_11", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.pfdFms" - } - } - }, - { - "id": "btn_softkey_pfd_12", - "type": "imageButton", - "image": "button_softkey.png", - "left": 1145, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_PFD_SOFTKEYS_12", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.pfdFms" - } - } - } - ] - } - }, - { - "id": "KODIAK_MFD_ONLY_DEF", - "value": { - "panelSize": { - "width": 1408, - "height": 914 - }, - "backgroundImage": "background_pfd_only.png", - "controlSize": { - "regularKnob": { - "width": 77, - "height": 77 - }, - "crsKnob": { - "width": 79, - "height": 79 - }, - "volKnob": { - "width": 49, - "height": 49 - }, - "rangeKnob": { - "width": 66, - "height": 66 - }, - "buttonBase": { - "width": 57, - "height": 36 - }, - "speedKnob": { - "width": 53, - "height": 94 - } - }, - "encoderAction": { - "mfdFms": { - "encoderLowerCW": "AS1000_MFD_FMS_Lower_INC", - "encoderLowerCCW": "AS1000_MFD_FMS_Lower_DEC", - "encoderUpperCW": "AS1000_MFD_FMS_Upper_INC", - "encoderUpperCCW": "AS1000_MFD_FMS_Upper_DEC", - "encoderLowerSwitch": "AS1000_MFD_FMS_Upper_PUSH", - "encoderUpperSwitch": "AS1000_MFD_FMS_Upper_PUSH", - "actionType": "SimEventId" - } - }, - "panelControlDefinitions": [ - { - "id": "btn_vol1knob", - "type": "imageButton", - "image": "knob_vol.png", - "left": 60, - "top": 41, - "controlSize": { - "$ref": "#value.controlSize.volKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_VOL1_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_MFD_VOL_1_INC", - "encoderLowerCCW": "AS1000_MFD_VOL_1_DEC", - "encoderUpperCW": "AS1000_MFD_VOL_1_INC", - "encoderUpperCCW": "AS1000_MFD_VOL_1_DEC", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_vol2knob", - "type": "imageButton", - "image": "knob_vol.png", - "left": 1296, - "top": 41, - "controlSize": { - "$ref": "#value.controlSize.volKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_VOL2_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_MFD_VOL_2_INC", - "encoderLowerCCW": "AS1000_MFD_VOL_2_DEC", - "encoderUpperCW": "AS1000_MFD_VOL_2_INC", - "encoderUpperCCW": "AS1000_MFD_VOL_2_DEC", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_navknob", - "type": "imageButton", - "image": "knob.png", - "left": 47, - "top": 171, - "controlSize": { - "$ref": "#value.controlSize.regularKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_NAV_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_MFD_NAV_Large_INC", - "encoderLowerCCW": "AS1000_MFD_NAV_Large_DEC", - "encoderUpperCW": "AS1000_MFD_NAV_Small_INC", - "encoderUpperCCW": "AS1000_MFD_NAV_Small_DEC", - "encoderLowerSwitch": "AS1000_MFD_NAV_Push", - "encoderUpperSwitch": "AS1000_MFD_NAV_Push", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_navswap", - "type": "imageButton", - "image": "button_swap.png", - "left": 97, - "top": 104, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_NAV_Switch", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "encoderLowerCW": "AS1000_MFD_NAV_Large_INC", - "encoderLowerCCW": "AS1000_MFD_NAV_Large_DEC", - "encoderUpperCW": "AS1000_MFD_NAV_Small_INC", - "encoderUpperCCW": "AS1000_MFD_NAV_Small_DEC", - "encoderLowerSwitch": "AS1000_MFD_NAV_Push", - "encoderUpperSwitch": "AS1000_MFD_NAV_Push", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_hdgknob", - "type": "imageButton", - "image": "knob_hdg.png", - "left": 46, - "top": 339, - "controlSize": { - "$ref": "#value.controlSize.regularKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_HDG_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_MFD_HEADING_FAST_INC", - "encoderLowerCCW": "AS1000_MFD_HEADING_FAST_DEC", - "encoderUpperCW": "AS1000_MFD_HEADING_INC", - "encoderUpperCCW": "AS1000_MFD_HEADING_DEC", - "encoderLowerSwitch": "AS1000_MFD_HEADING_SYNC", - "encoderUpperSwitch": "AS1000_MFD_HEADING_SYNC", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_altknob", - "type": "imageButton", - "image": "knob.png", - "left": 48, - "top": 790, - "controlSize": { - "$ref": "#value.controlSize.regularKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_ALT_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_AP_ALT_INC_1000", - "encoderLowerCCW": "AS1000_AP_ALT_DEC_1000", - "encoderLowerSwitch": "AS1000_AP_ALT_SYNC", - "encoderUpperCW": "AS1000_AP_ALT_INC_100", - "encoderUpperCCW": "AS1000_AP_ALT_DEC_100", - "encoderUpperSwitch": "AS1000_AP_ALT_SYNC", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_comknob", - "type": "imageButton", - "image": "knob.png", - "left": 1282, - "top": 170, - "controlSize": { - "$ref": "#value.controlSize.regularKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_COM_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_MFD_COM_Large_INC", - "encoderLowerCCW": "AS1000_MFD_COM_Large_DEC", - "encoderLowerSwitch": "AS1000_MFD_COM_Push", - "encoderUpperCW": "AS1000_MFD_COM_Small_INC", - "encoderUpperCCW": "AS1000_MFD_COM_Small_DEC", - "encoderUpperSwitch": "AS1000_MFD_COM_Push", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_comswap", - "type": "imageButton", - "image": "button_swap.png", - "left": 1252, - "top": 104, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_COM_Switch", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "encoderLowerw": "AS1000_MFD_COM_Small_INC", - "encoderLowerCCW": "AS1000_MFD_COM_Small_DEC", - "encoderUpperCW": "AS1000_MFD_COM_Large_INC", - "encoderUpperCCW": "AS1000_MFD_COM_Large_DEC", - "encoderLowerSwitch": "AS1000_MFD_COM_Push", - "encoderUpperSwitch": "AS1000_MFD_COM_Push", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_crsknob", - "type": "imageButton", - "image": "knob_crs.png", - "left": 1282, - "top": 334, - "controlSize": { - "$ref": "#value.controlSize.crsKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_CRS_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_MFD_BARO_INC", - "encoderLowerCCW": "AS1000_MFD_BARO_DEC", - "encoderUpperCW": "AS1000_MFD_CRS_INC", - "encoderUpperCCW": "AS1000_MFD_CRS_DEC", - "encoderLowerSwitch": "AS1000_MFD_CRS_PUSH", - "encoderUpperSwitch": "AS1000_MFD_CRS_PUSH", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_rangeknob", - "type": "imageButton", - "image": "knob_range.png", - "left": 1287, - "top": 493, - "controlSize": { - "$ref": "#value.controlSize.rangeKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_MAP_KNOB_SELECT", - "actionType": "SimEventId" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "AS1000_MFD_RANGE_INC", - "encoderLowerCCW": "AS1000_MFD_RANGE_DEC", - "encoderLowerSwitch": "AS1000_MFD_JOYSTICK_PUSH", - "encoderUpperCW": "AS1000_MFD_RANGE_INC", - "encoderUpperCCW": "AS1000_MFD_RANGE_DEC", - "encoderUpperSwitch": "AS1000_MFD_JOYSTICK_PUSH", - "joystick1up": "AS1000_MFD_JOYSTICK_UP", - "joystick1down": "AS1000_MFD_JOYSTICK_DOWN", - "joystick1left": "AS1000_MFD_JOYSTICK_LEFT", - "joystick1right": "AS1000_MFD_JOYSTICK_RIGHT", - "joystick1switch": "AS1000_MFD_JOYSTICK_PUSH", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_fmsknob", - "type": "imageButton", - "image": "knob.png", - "left": 1281, - "top": 791, - "controlSize": { - "$ref": "#value.controlSize.regularKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_FMS_KNOB_SELECT", - "actionType": "EncoderAction" - } - ], - "useDualEncoder": true - } - }, - { - "id": "btn_ap", - "type": "imageButton", - "image": "button_ap.png", - "left": 22, - "top": 468, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_MASTER", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_fd", - "type": "imageButton", - "image": "button_fd.png", - "left": 94, - "top": 468, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "TOGGLE_FLIGHT_DIRECTOR", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_hdg", - "type": "imageButton", - "image": "button_hdg.png", - "left": 22, - "top": 518, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_PANEL_HEADING_HOLD", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_alt", - "type": "imageButton", - "image": "button_alt.png", - "left": 94, - "top": 518, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_PANEL_ALTITUDE_HOLD", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_nav", - "type": "imageButton", - "image": "button_nav.png", - "left": 22, - "top": 568, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_NAV1_HOLD", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_vnv", - "type": "imageButton", - "image": "button_vnv.png", - "left": 94, - "top": 568, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_VNAV_TOGGLE", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_apr", - "type": "imageButton", - "image": "button_apr.png", - "left": 22, - "top": 619, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_APR_HOLD", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_bc", - "type": "imageButton", - "image": "button_bc.png", - "left": 94, - "top": 619, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_BC_HOLD", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "btn_vs", - "type": "imageButton", - "image": "button_vs.png", - "left": 22, - "top": 669, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AP_PANEL_VS_HOLD", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "encoderLowerCW": "AS1000_MFD_NOSE_UP", - "encoderLowerCCW": "AS1000_MFD_NOSE_DN", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_flc", - "type": "imageButton", - "image": "button_flc.png", - "left": 22, - "top": 719, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_FLC_Push", - "actionType": "SimEventId" - }, - { - "action": "AP_SPD_VAR_SET", - "actionValueVariable": "PLANE_AIRSPEED", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "encoderLowerCW": "AS1000_MFD_NOSE_DN", - "encoderLowerCCW": "AS1000_MFD_NOSE_UP", - "actionType": "SimEventId" - } - } - }, - { - "id": "btn_speedknob", - "type": "imageButton", - "image": "knob_speed.png", - "left": 96, - "top": 668, - "controlSize": { - "$ref": "#value.controlSize.speedKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "AIRSPEED_BUG_SELECT", - "actionType": "EncoderAction" - } - ], - "useEncoder": true - } - }, - { - "id": "btn_dir", - "type": "imageButton", - "image": "button_dir.png", - "left": 1254, - "top": 618, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_DIRECTTO", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_menu", - "type": "imageButton", - "image": "button_menu.png", - "left": 1327, - "top": 618, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_MENU_Push", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_fpl", - "type": "imageButton", - "image": "button_fpl.png", - "left": 1254, - "top": 670, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_FPL_Push", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_proc", - "type": "imageButton", - "image": "button_proc.png", - "left": 1327, - "top": 670, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_PROC_Push", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_clr", - "type": "imageButton", - "image": "button_clr.png", - "left": 1254, - "top": 722, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_CLR", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_ent", - "type": "imageButton", - "image": "button_ent.png", - "left": 1327, - "top": 722, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_ENT_Push", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_1", - "type": "imageButton", - "image": "button_softkey.png", - "left": 208, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_1", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_2", - "type": "imageButton", - "image": "button_softkey.png", - "left": 292, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_2", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_3", - "type": "imageButton", - "image": "button_softkey.png", - "left": 378, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_3", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_4", - "type": "imageButton", - "image": "button_softkey.png", - "left": 463, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_4", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_5", - "type": "imageButton", - "image": "button_softkey.png", - "left": 549, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_5", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_6", - "type": "imageButton", - "image": "button_softkey.png", - "left": 636, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_6", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_7", - "type": "imageButton", - "image": "button_softkey.png", - "left": 721, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_7", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_8", - "type": "imageButton", - "image": "button_softkey.png", - "left": 804, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_8", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_9", - "type": "imageButton", - "image": "button_softkey.png", - "left": 890, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_9", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_10", - "type": "imageButton", - "image": "button_softkey.png", - "left": 976, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_10", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_11", - "type": "imageButton", - "image": "button_softkey.png", - "left": 1061, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_11", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - }, - { - "id": "btn_softkey_mfd_12", - "type": "imageButton", - "image": "button_softkey.png", - "left": 1145, - "top": 850, - "controlSize": { - "$ref": "#value.controlSize.buttonBase" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "AS1000_MFD_SOFTKEYS_12", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "$ref": "#value.encoderAction.mfdFms" - } - } - } - ] - } - } -] \ No newline at end of file diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/background_pfd_only.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/background_pfd_only.png deleted file mode 100644 index 80cb14a..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/background_pfd_only.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/background_pfdmfd.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/background_pfdmfd.png deleted file mode 100644 index d3a8753..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/background_pfdmfd.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/blank_button.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/blank_button.png deleted file mode 100644 index eb067c8..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/blank_button.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_adf.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_adf.png deleted file mode 100644 index 2481199..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_adf.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_alt.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_alt.png deleted file mode 100644 index bd3b47f..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_alt.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_ap.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_ap.png deleted file mode 100644 index f2708e1..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_ap.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_apr.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_apr.png deleted file mode 100644 index fbf7f8b..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_apr.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_aux.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_aux.png deleted file mode 100644 index ba1c700..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_aux.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_bc.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_bc.png deleted file mode 100644 index a018f3d..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_bc.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_clr.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_clr.png deleted file mode 100644 index 516c940..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_clr.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_com1.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_com1.png deleted file mode 100644 index 0625701..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_com1.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_com12.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_com12.png deleted file mode 100644 index df754d8..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_com12.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_com1mic.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_com1mic.png deleted file mode 100644 index 2612ad2..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_com1mic.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_com2.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_com2.png deleted file mode 100644 index a5ed503..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_com2.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_com2mic.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_com2mic.png deleted file mode 100644 index 965d1a7..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_com2mic.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_dir.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_dir.png deleted file mode 100644 index e117668..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_dir.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_dme.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_dme.png deleted file mode 100644 index aa0db57..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_dme.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_ent.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_ent.png deleted file mode 100644 index fe22dc9..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_ent.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_fd.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_fd.png deleted file mode 100644 index 45567ab..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_fd.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_flc.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_flc.png deleted file mode 100644 index f69cbaa..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_flc.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_fpl.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_fpl.png deleted file mode 100644 index aac131a..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_fpl.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_hdg.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_hdg.png deleted file mode 100644 index 0520362..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_hdg.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_menu.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_menu.png deleted file mode 100644 index 9e9061a..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_menu.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_nav.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_nav.png deleted file mode 100644 index 651ea98..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_nav.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_nav1.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_nav1.png deleted file mode 100644 index 5ae391f..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_nav1.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_nav2.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_nav2.png deleted file mode 100644 index 954fe94..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_nav2.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_nose_down.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_nose_down.png deleted file mode 100644 index 72e02e4..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_nose_down.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_nose_up.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_nose_up.png deleted file mode 100644 index e87094d..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_nose_up.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_proc.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_proc.png deleted file mode 100644 index b390295..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_proc.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_softkey.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_softkey.png deleted file mode 100644 index 3d9c0e0..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_softkey.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_swap.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_swap.png deleted file mode 100644 index 9eb3bff..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_swap.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_vnv.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_vnv.png deleted file mode 100644 index 1ccf0d2..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_vnv.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_vs.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_vs.png deleted file mode 100644 index d431681..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/button_vs.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/knob.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/knob.png deleted file mode 100644 index 8dd1292..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/knob.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/knob_crs.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/knob_crs.png deleted file mode 100644 index 3add246..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/knob_crs.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/knob_hdg.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/knob_hdg.png deleted file mode 100644 index 1de5ae1..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/knob_hdg.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/knob_range.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/knob_range.png deleted file mode 100644 index 21b8e9a..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/knob_range.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/knob_speed.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/knob_speed.png deleted file mode 100644 index e7cca8f..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/knob_speed.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/knob_vol.png b/ReactClient/public/config/profiles/kodiak/pfdmfd/img/knob_vol.png deleted file mode 100644 index 78eda3c..0000000 Binary files a/ReactClient/public/config/profiles/kodiak/pfdmfd/img/knob_vol.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/SimConnectDataDefinition.json b/ReactClient/public/config/profiles/pmdg-737-700/SimConnectDataDefinition.json deleted file mode 100644 index 6f6a7b9..0000000 --- a/ReactClient/public/config/profiles/pmdg-737-700/SimConnectDataDefinition.json +++ /dev/null @@ -1,507 +0,0 @@ -[ - { - "propName": "SIM_RATE", - "variableName": "SIMULATION RATE", - "simConnectUnit": "number", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed2" - }, - { - "propName": "GPS_LAT", - "variableName": "GPS POSITION LAT", - "simConnectUnit": "degrees", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "GPS_LON", - "variableName": "GPS POSITION LON", - "simConnectUnit": "degrees", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PLANE_HEADING_TRUE", - "variableName": "PLANE HEADING DEGREES TRUE", - "simConnectUnit": "degrees", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed0" - }, - { - "propName": "PLANE_AIRSPEED", - "variableName": "AIRSPEED INDICATED", - "simConnectUnit": "knots", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed0" - }, - { - "propName": "FLAPS", - "variableName": "FLAPS HANDLE INDEX", - "simConnectUnit": "number", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toBoeingFlapsValue" - }, - { - "propName": "ELEVATOR_TRIM", - "variableName": "switch_690_73X", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": "toBoeingElevatorTrimValue" - }, - { - "propName": "RUDDER_TRIM", - "variableName": "RUDDER TRIM", - "simConnectUnit": "radians", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed2" - }, - { - "propName": "AILERON_TRIM", - "variableName": "AILERON TRIM", - "simConnectUnit": "radians", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed3" - }, - { - "propName": "BRAKE_PARKING_INDICATOR", - "variableName": "BRAKE PARKING INDICATOR", - "simConnectUnit": "bool", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed0" - }, - { - "propName": "GEAR_POSITION", - "variableName": "GEAR POSITION", - "simConnectUnit": "enum", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "GEAR_CENTER_POSITION", - "variableName": "GEAR CENTER POSITION", - "simConnectUnit": "percent", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "GEAR_LEFT_POSITION", - "variableName": "GEAR LEFT POSITION", - "simConnectUnit": "percent", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "GEAR_RIGHT_POSITION", - "variableName": "GEAR RIGHT POSITION", - "simConnectUnit": "percent", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "TRANSPONDER_CODE", - "variableName": "TRANSPONDER CODE:1", - "simConnectUnit": "number", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_AT_ARM_LIGHT", - "variableName": "switch_3801_73X", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_CPT_FD_IND", - "variableName": "ngx_MCP_FDLeft", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_FO_FD_IND", - "variableName": "ngx_MCP_FDRight", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_CPT_CRS", - "variableName": "ngx_CRSwindowL", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_FO_CRS", - "variableName": "ngx_CRSwindowR", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_IAS_MACH", - "variableName": "ngx_SPDwindow", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": "toBlankIfNegative" - }, - { - "propName": "PMDG_B737_MCP_HDG", - "variableName": "ngx_HDGwindow", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_ALT", - "variableName": "ngx_ALTwindow", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_V_SPEED", - "variableName": "ngx_VSwindow", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": "toBlankIfNegative" - }, - { - "propName": "PMDG_B737_MCP_VS_IND", - "variableName": "ngx_MCP_VS", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_N1_IND", - "variableName": "ngx_MCP_N1", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_SPEED_IND", - "variableName": "ngx_MCP_Speed", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_LVL_CHANGE_IND", - "variableName": "ngx_MCP_LvlChg", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_HDG_SEL_IND", - "variableName": "ngx_MCP_HdgSel", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_APP_IND", - "variableName": "ngx_MCP_App", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_ALT_HOLD_IND", - "variableName": "ngx_MCP_AltHold", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_BANK_ANGLE", - "variableName": "switch_389_73X", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_CMD_A_IND", - "variableName": "ngx_MCP_CMDA", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_CMD_B_IND", - "variableName": "ngx_MCP_CMDB", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_CWS_A_IND", - "variableName": "ngx_MCP_CWSA", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_CWS_B_IND", - "variableName": "ngx_MCP_CWSB", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_VNAV_IND", - "variableName": "ngx_MCP_VNav", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_LNAV_IND", - "variableName": "ngx_MCP_LNav", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_MCP_VOR_LOC_IND", - "variableName": "ngx_MCP_VORLock", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - - { - "propName": "PMDG_B737_COM1_ACTIVE_FREQ", - "variableName": "COM ACTIVE FREQUENCY:1", - "simConnectUnit": "mhz", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed3" - }, - { - "propName": "PMDG_B737_COM1_STANDBY_FREQ", - "variableName": "COM STANDBY FREQUENCY:1", - "simConnectUnit": "mhz", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed3" - }, - { - "propName": "PMDG_B737_COM2_ACTIVE_FREQ", - "variableName": "COM ACTIVE FREQUENCY:2", - "simConnectUnit": "mhz", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed3" - }, - { - "propName": "PMDG_B737_COM2_STANDBY_FREQ", - "variableName": "COM STANDBY FREQUENCY:2", - "simConnectUnit": "mhz", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed3" - }, - { - "propName": "PMDG_B737_NAV1_ACTIVE_FREQ", - "variableName": "NAV ACTIVE FREQUENCY:1", - "simConnectUnit": "mhz", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed2" - }, - { - "propName": "PMDG_B737_NAV1_STANDBY_FREQ", - "variableName": "NAV STANDBY FREQUENCY:1", - "simConnectUnit": "mhz", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed2" - }, - { - "propName": "PMDG_B737_NAV2_ACTIVE_FREQ", - "variableName": "NAV ACTIVE FREQUENCY:2", - "simConnectUnit": "mhz", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed2" - }, - { - "propName": "PMDG_B737_NAV2_STANDBY_FREQ", - "variableName": "NAV STANDBY FREQUENCY:2", - "simConnectUnit": "mhz", - "dataType": "Float64", - "dataDefinitionType": "SimConnect", - "defaultValue": 0, - "JavaScriptFormatting": "toFixed2" - }, - { - "propName": "PMDG_B737_XPNDR_ATC_MODE", - "variableName": "switch_800_73X", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_XPNDR_XPNDR_MODE", - "variableName": "switch_798_73X", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_XPNDR_ALTSOURCE_MODE", - "variableName": "switch_803_73X", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_EFIS_CPT_RST", - "variableName": "switch_356_73X", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_EFIS_CPT_STD", - "variableName": "switch_366_73X", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_EFIS_CPT_CTR", - "variableName": "switch_359_73X", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_EFIS_CPT_TFS", - "variableName": "switch_361_73X", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_EFIS_CPT_VOR1", - "variableName": "switch_358_73X", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - }, - { - "propName": "PMDG_B737_EFIS_CPT_VOR2", - "variableName": "switch_368_73X", - "simConnectUnit": null, - "dataType": "Default", - "dataDefinitionType": "LVar", - "defaultValue": 0, - "JavaScriptFormatting": null - } -] \ No newline at end of file diff --git a/ReactClient/public/config/profiles/pmdg-737-700/cdu/PopoutPanelDefinition.json b/ReactClient/public/config/profiles/pmdg-737-700/cdu/PopoutPanelDefinition.json deleted file mode 100644 index a2f3a36..0000000 --- a/ReactClient/public/config/profiles/pmdg-737-700/cdu/PopoutPanelDefinition.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id": "PMDG_737_700_CDU_DEF", - "value": { - "panelSize": { - "width": 900, - "height": 675 - }, - "controlSize": { - "webBrowser": { - "width": 445, - "height": 675 - } - }, - "panelControlDefinitions": [ - { - "id": "cdu-left", - "type": "webBrowser", - "left": 0, - "top": 0, - "controlSize": { - "$ref": "#value.controlSize.webBrowser" - }, - "binding": { - "url": "http://localhost:32111/" - } - }, - { - "id": "cdu-right", - "type": "webBrowser", - "left": 455, - "top": 0, - "controlSize": { - "$ref": "#value.controlSize.webBrowser" - }, - "binding": { - "url": "http://localhost:32112/" - } - } - ] - } -} \ No newline at end of file diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/PopoutPanelDefinition.json b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/PopoutPanelDefinition.json deleted file mode 100644 index b6703b4..0000000 --- a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/PopoutPanelDefinition.json +++ /dev/null @@ -1,611 +0,0 @@ -{ - "id": "PMDG_737_700_EFIS_CPT_DEF", - "value": { - "panelSize": { - "width": 724, - "height": 394 - }, - "backgroundImage": "background_efis.png", - "controlSize": { - "squareButton": { - "width": 60, - "height": 60 - }, - "roundButton": { - "width": 50, - "height": 50 - }, - "switchButton": { - "width": 120, - "height": 120 - }, - "efisKnob": { - "width": 110, - "height": 110 - }, - "efisKnobText": { - "width": 50, - "height": 50 - }, - "efisKnob2": { - "width": 90, - "height": 90 - }, - "efisKnob2Text": { - "width": 60, - "height": 60 - } - }, - "panelControlDefinitions": [ - { - "id": "btn_rst_knob", - "type": "bindableImageButton", - "left": 89, - "top": 62, - "controlSize": { - "$ref": "#value.controlSize.efisKnob" - }, - "highlight": true, - "binding": { - "variable": "PMDG_B737_EFIS_CPT_RST", - "images": [ - { - "url": "knob_efis_1.png", - "rotate": -33, - "val": 0 - }, - { - "url": "knob_efis_1.png", - "rotate": 33, - "val": 100 - } - ] - }, - "action": { - "touchActions": [ - { - "action": "PMDG_B737_EFIS_RST_SELECT", - "actionType": "SimVarCode" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "(L:switch_356_73X) 0 == if{ 35601 (>K:ROTOR_BRAKE) }", - "encoderLowerCCW": "(L:switch_356_73X) 100 == if{ 35601 (>K:ROTOR_BRAKE) }", - "encoderLowerSwitch": "35701 (>K:ROTOR_BRAKE)", - "encoderUpperCW": "35507 (>K:ROTOR_BRAKE)", - "encoderUpperCCW": "35508 (>K:ROTOR_BRAKE)", - "encoderUpperSwitch": "35701 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - } - }, - { - "id": "btn_rst_knob_text", - "type": "imageButton", - "left": 119, - "top": 90, - "controlSize": { - "$ref": "#value.controlSize.efisKnobText" - }, - "highlight": true, - "image": "knob_rst_text.png", - "action": { - "touchActions": [ - { - "action": "PMDG_B737_EFIS_RST_SELECT", - "actionType": "SimVarCode" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "(L:switch_356_73X) 0 == if{ 35601 (>K:ROTOR_BRAKE) }", - "encoderLowerCCW": "(L:switch_356_73X) 100 == if{ 35601 (>K:ROTOR_BRAKE) }", - "encoderLowerSwitch": "35701 (>K:ROTOR_BRAKE)", - "encoderUpperCW": "35507 (>K:ROTOR_BRAKE)", - "encoderUpperCCW": "35508 (>K:ROTOR_BRAKE)", - "encoderUpperSwitch": "35701 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - } - }, - { - "id": "btn_std_knob", - "type": "bindableImageButton", - "left": 528, - "top": 62, - "controlSize": { - "$ref": "#value.controlSize.efisKnob" - }, - "highlight": true, - "binding": { - "variable": "PMDG_B737_EFIS_CPT_STD", - "images": [ - { - "url": "knob_efis_1.png", - "rotate": -33, - "val": 0 - }, - { - "url": "knob_efis_1.png", - "rotate": 33, - "val": 100 - } - ] - }, - "action": { - "touchActions": [ - { - "action": "PMDG_B737_EFIS_STD_SELECT", - "actionType": "SimVarCode" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "(L:switch_366_73X) 0 == if{ 36601 (>K:ROTOR_BRAKE) }", - "encoderLowerCCW": "(L:switch_366_73X) 100 == if{ 36601 (>K:ROTOR_BRAKE) }", - "encoderLowerSwitch": "36701 (>K:ROTOR_BRAKE)", - "encoderUpperCW": "36507 (>K:ROTOR_BRAKE)", - "encoderUpperCCW": "36508 (>K:ROTOR_BRAKE)", - "encoderUpperSwitch": "36701 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - } - }, - { - "id": "btn_std_knob_text", - "type": "imageButton", - "left": 556, - "top": 91, - "controlSize": { - "$ref": "#value.controlSize.efisKnobText" - }, - "highlight": true, - "image": "knob_std_text.png", - "action": { - "touchActions": [ - { - "action": "PMDG_B737_EFIS_STD_SELECT", - "actionType": "SimVarCode" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "(L:switch_366_73X) 0 == if{ 36601 (>K:ROTOR_BRAKE) }", - "encoderLowerCCW": "(L:switch_366_73X) 100 == if{ 36601 (>K:ROTOR_BRAKE) }", - "encoderLowerSwitch": "36701 (>K:ROTOR_BRAKE)", - "encoderUpperCW": "36507 (>K:ROTOR_BRAKE)", - "encoderUpperCCW": "36508 (>K:ROTOR_BRAKE)", - "encoderUpperSwitch": "36701 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - } - }, - { - "id": "btn_ctr_knob", - "type": "bindableImageButton", - "left": 229, - "top": 205, - "controlSize": { - "$ref": "#value.controlSize.efisKnob2" - }, - "highlight": true, - "binding": { - "variable": "PMDG_B737_EFIS_CPT_CTR", - "images": [ - { - "url": "knob_efis_2.png", - "rotate": -44, - "val": 0 - }, - { - "url": "knob_efis_2.png", - "rotate": -22, - "val": 10 - }, - { - "url": "knob_efis_2.png", - "rotate": 22, - "val": 20 - }, - { - "url": "knob_efis_2.png", - "rotate": 44, - "val": 30 - } - ] - }, - "action": { - "touchActions": [ - { - "action": "PMDG_B737_EFIS_CTR_SELECT", - "actionType": "SimVarCode" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "35907 (>K:ROTOR_BRAKE)", - "encoderLowerCCW": "35908 (>K:ROTOR_BRAKE)", - "encoderLowerSwitch": "36001 (>K:ROTOR_BRAKE)", - "encoderUpperCW": "35907 (>K:ROTOR_BRAKE)", - "encoderUpperCCW": "35908 (>K:ROTOR_BRAKE)", - "encoderUpperSwitch": "36001 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - } - }, - { - "id": "btn_ctr_knob_text", - "type": "imageButton", - "left": 243, - "top": 221, - "controlSize": { - "$ref": "#value.controlSize.efisKnob2Text" - }, - "highlight": true, - "image": "knob_ctr_text.png", - "action": { - "touchActions": [ - { - "action": "PMDG_B737_EFIS_CTR_SELECT", - "actionType": "SimVarCode" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "35907 (>K:ROTOR_BRAKE)", - "encoderLowerCCW": "35908 (>K:ROTOR_BRAKE)", - "encoderLowerSwitch": "36001 (>K:ROTOR_BRAKE)", - "encoderUpperCW": "35907 (>K:ROTOR_BRAKE)", - "encoderUpperCCW": "35908 (>K:ROTOR_BRAKE)", - "encoderUpperSwitch": "36001 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - } - }, - { - "id": "btn_tfc_knob", - "type": "bindableImageButton", - "left": 407, - "top": 205, - "controlSize": { - "$ref": "#value.controlSize.efisKnob2" - }, - "highlight": true, - "binding": { - "variable": "PMDG_B737_EFIS_CPT_TFS", - "images": [ - { - "url": "knob_efis_2.png", - "rotate": -90, - "val": 0 - }, - { - "url": "knob_efis_2.png", - "rotate": -60, - "val": 10 - }, - { - "url": "knob_efis_2.png", - "rotate": -30, - "val": 20 - }, - { - "url": "knob_efis_2.png", - "rotate": 0, - "val": 30 - }, - { - "url": "knob_efis_2.png", - "rotate": 30, - "val": 40 - }, - { - "url": "knob_efis_2.png", - "rotate": 60, - "val": 50 - }, - { - "url": "knob_efis_2.png", - "rotate": 90, - "val": 60 - }, - { - "url": "knob_efis_2.png", - "rotate": 118, - "val": 70 - } - ] - }, - "action": { - "touchActions": [ - { - "action": "PMDG_B737_EFIS_TFC_SELECT", - "actionType": "SimVarCode" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "36107 (>K:ROTOR_BRAKE)", - "encoderLowerCCW": "36108 (>K:ROTOR_BRAKE)", - "encoderLowerSwitch": "36201 (>K:ROTOR_BRAKE)", - "encoderUpperCW": "36107 (>K:ROTOR_BRAKE)", - "encoderUpperCCW": "36108 (>K:ROTOR_BRAKE)", - "encoderUpperSwitch": "36201 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - } - }, - { - "id": "btn_tfc_knob_text", - "type": "imageButton", - "left": 420, - "top": 221, - "controlSize": { - "$ref": "#value.controlSize.efisKnob2Text" - }, - "highlight": true, - "image": "knob_tfc_text.png", - "action": { - "touchActions": [ - { - "action": "PMDG_B737_EFIS_TFC_SELECT", - "actionType": "SimVarCode" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "36107 (>K:ROTOR_BRAKE)", - "encoderLowerCCW": "36108 (>K:ROTOR_BRAKE)", - "encoderLowerSwitch": "36201 (>K:ROTOR_BRAKE)", - "encoderUpperCW": "36107 (>K:ROTOR_BRAKE)", - "encoderUpperCCW": "36108 (>K:ROTOR_BRAKE)", - "encoderUpperSwitch": "36201 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - } - }, - { - "id": "btn_fpv", - "type": "imageButton", - "left": 271, - "top": 57, - "controlSize": { - "$ref": "#value.controlSize.roundButton" - }, - "highlight": false, - "image": "btn_efis_round.png", - "action": { - "touchActions": [ - { - "action": "36301 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "btn_mtrs", - "type": "imageButton", - "left": 406, - "top": 57, - "controlSize": { - "$ref": "#value.controlSize.roundButton" - }, - "highlight": false, - "image": "btn_efis_round.png", - "action": { - "touchActions": [ - { - "action": "36401 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "btn_wxr", - "type": "imageButton", - "left": 61, - "top": 303, - "controlSize": { - "$ref": "#value.controlSize.squareButton" - }, - "highlight": false, - "image": "btn_wxr.png", - "action": { - "touchActions": [ - { - "action": "36901 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "btn_sta", - "type": "imageButton", - "left": 151, - "top": 303, - "controlSize": { - "$ref": "#value.controlSize.squareButton" - }, - "highlight": false, - "image": "btn_sta.png", - "action": { - "touchActions": [ - { - "action": "37001 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "btn_wpt", - "type": "imageButton", - "left": 243, - "top": 303, - "controlSize": { - "$ref": "#value.controlSize.squareButton" - }, - "highlight": false, - "image": "btn_wpt.png", - "action": { - "touchActions": [ - { - "action": "37101 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "btn_arpt", - "type": "imageButton", - "left": 332, - "top": 303, - "controlSize": { - "$ref": "#value.controlSize.squareButton" - }, - "highlight": false, - "image": "btn_arpt.png", - "action": { - "touchActions": [ - { - "action": "37201 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "btn_data", - "type": "imageButton", - "left": 426, - "top": 303, - "controlSize": { - "$ref": "#value.controlSize.squareButton" - }, - "highlight": false, - "image": "btn_data.png", - "action": { - "touchActions": [ - { - "action": "37301 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "btn_pos", - "type": "imageButton", - "left": 515, - "top": 303, - "controlSize": { - "$ref": "#value.controlSize.squareButton" - }, - "highlight": false, - "image": "btn_pos.png", - "action": { - "touchActions": [ - { - "action": "37401 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "btn_terr", - "type": "imageButton", - "left": 607, - "top": 303, - "controlSize": { - "$ref": "#value.controlSize.squareButton" - }, - "highlight": false, - "image": "btn_terr.png", - "action": { - "touchActions": [ - { - "action": "37501 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "btn_vor1", - "type": "bindableImageButton", - "left": 21, - "top": 171, - "controlSize": { - "$ref": "#value.controlSize.switchButton" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_EFIS_CPT_VOR1", - "images": [ - { - "url": "switch_vor1_up.png", - "val": 0 - }, - { - "url": "switch_vor1_mid.png", - "val": 50 - }, - { - "url": "switch_vor1_down.png", - "val": 100 - } - ] - }, - "action": { - "touchActions": [ - { - "action": "(L:switch_358_73X) 0 == if{ 35801 (>K:ROTOR_BRAKE) } els{ (L:switch_358_73X) 50 == if{ 35801 (>K:ROTOR_BRAKE) } els{ 35802 (>K:ROTOR_BRAKE) 35802 (>K:ROTOR_BRAKE) }}", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "btn_vor2", - "type": "bindableImageButton", - "left": 595, - "top": 171, - "controlSize": { - "$ref": "#value.controlSize.switchButton" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_EFIS_CPT_VOR2", - "images": [ - { - "url": "switch_vor2_up.png", - "val": 0 - }, - { - "url": "switch_vor2_mid.png", - "val": 50 - }, - { - "url": "switch_vor2_down.png", - "val": 100 - } - ] - }, - "action": { - "touchActions": [ - { - "action": "(L:switch_368_73X) 0 == if{ 36801 (>K:ROTOR_BRAKE) } els{ (L:switch_368_73X) 50 == if{ 36801 (>K:ROTOR_BRAKE) } els{ 36802 (>K:ROTOR_BRAKE) 36802 (>K:ROTOR_BRAKE) }}", - "actionType": "SimVarCode" - } - ] - } - } - ] - } -} \ No newline at end of file diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/background_efis.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/background_efis.png deleted file mode 100644 index 13cb3f5..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/background_efis.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_arpt.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_arpt.png deleted file mode 100644 index c660f7e..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_arpt.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_data.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_data.png deleted file mode 100644 index 2398c72..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_data.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_efis_round.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_efis_round.png deleted file mode 100644 index 26e2d52..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_efis_round.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_pos.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_pos.png deleted file mode 100644 index dc74ba7..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_pos.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_sta.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_sta.png deleted file mode 100644 index 698f1a9..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_sta.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_terr.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_terr.png deleted file mode 100644 index 51e6228..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_terr.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_wpt.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_wpt.png deleted file mode 100644 index e6d3baf..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_wpt.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_wxr.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_wxr.png deleted file mode 100644 index 074e7cc..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/btn_wxr.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/knob_ctr_text.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/knob_ctr_text.png deleted file mode 100644 index 9300a84..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/knob_ctr_text.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/knob_efis_1.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/knob_efis_1.png deleted file mode 100644 index f441e5c..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/knob_efis_1.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/knob_efis_2.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/knob_efis_2.png deleted file mode 100644 index 0b01b87..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/knob_efis_2.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/knob_rst_text.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/knob_rst_text.png deleted file mode 100644 index 7796869..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/knob_rst_text.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/knob_std_text.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/knob_std_text.png deleted file mode 100644 index c490c45..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/knob_std_text.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/knob_tfc_text.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/knob_tfc_text.png deleted file mode 100644 index 21ded47..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/knob_tfc_text.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/switch_vor1_down.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/switch_vor1_down.png deleted file mode 100644 index 827ff8f..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/switch_vor1_down.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/switch_vor1_mid.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/switch_vor1_mid.png deleted file mode 100644 index 6323119..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/switch_vor1_mid.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/switch_vor1_up.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/switch_vor1_up.png deleted file mode 100644 index 9b905cd..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/switch_vor1_up.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/switch_vor2_down.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/switch_vor2_down.png deleted file mode 100644 index 6d5b53a..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/switch_vor2_down.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/switch_vor2_mid.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/switch_vor2_mid.png deleted file mode 100644 index d66092f..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/switch_vor2_mid.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/switch_vor2_up.png b/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/switch_vor2_up.png deleted file mode 100644 index 6b5a5a8..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/efis-cpt/img/switch_vor2_up.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/PopoutPanelDefinition.json b/ReactClient/public/config/profiles/pmdg-737-700/mcp/PopoutPanelDefinition.json deleted file mode 100644 index d70e920..0000000 --- a/ReactClient/public/config/profiles/pmdg-737-700/mcp/PopoutPanelDefinition.json +++ /dev/null @@ -1,1066 +0,0 @@ -{ - "id": "PMDG_737_700_MCP_DEF", - "value": { - "panelSize": { - "width": 1920, - "height": 329 - }, - "backgroundImage": "background_mcp.png", - "controlSize": { - "regularButton": { - "width": 65, - "height": 65 - }, - "crsKnob": { - "width": 81, - "height": 81 - }, - "mcpKnob": { - "width": 81, - "height": 81 - }, - "bkKnob": { - "width": 81, - "height": 81 - }, - "toggleButton": { - "width": 97, - "height": 97 - }, - "knobWheel": { - "width": 33, - "height": 121 - }, - "buttonApDisengage": { - "width": 130, - "height": 41 - }, - "buttonIntv": { - "width": 45, - "height": 45 - }, - "buttonMaster": { - "width": 36, - "height": 36 - }, - "atArmLight": { - "width": 40, - "height": 14 - }, - "threeDigitDisplay": { - "width": 75, - "height": 35 - }, - "fourDigitDisplay": { - "width": 100, - "height": 35 - }, - "fiveDigitDisplay": { - "width": 125, - "height": 35 - } - }, - "panelControlDefinitions": [ - { - "id": "ind_at_arm", - "type": "bindableImageButton", - "left": 265, - "top": 57, - "controlSize": { - "$ref": "#value.controlSize.atArmLight" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_MCP_AT_ARM_LIGHT", - "images": [ - { - "url": "button_at_arm_off.png", - "val": 0 - }, - { - "url": "button_at_arm_on.png", - "val": 0.5 - } - ] - } - }, - { - "id": "btn_at_arm", - "type": "bindableImageButton", - "left": 240, - "top": 68, - "controlSize": { - "$ref": "#value.controlSize.toggleButton" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_MCP_AT_ARM_LIGHT", - "images": [ - { - "url": "button_toggle_left_off.png", - "val": 0 - }, - { - "url": "button_toggle_left_on.png", - "val": 0.5 - } - ] - }, - "action": { - "touchActions": [ - { - "action": "38001 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "btn_cpt_crs_knob", - "type": "imageButton", - "left": 96, - "top": 123, - "controlSize": { - "$ref": "#value.controlSize.crsKnob" - }, - "highlight": true, - "image": "knob_crs.png", - "action": { - "touchActions": [ - { - "action": "PMDG_B737_MCP_CPT_CRS_SELECT", - "actionType": "SimVarCode" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "37607 (>K:ROTOR_BRAKE)", - "encoderLowerCCW": "37608 (>K:ROTOR_BRAKE)", - "encoderUpperCW": "37607 (>K:ROTOR_BRAKE)", - "encoderUpperCCW": "37608 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - } - }, - { - "id": "btn_fo_crs_knob", - "type": "imageButton", - "left": 1737, - "top": 123, - "controlSize": { - "$ref": "#value.controlSize.crsKnob" - }, - "highlight": true, - "image": "knob_crs.png", - "action": { - "touchActions": [ - { - "action": "PMDG_B737_MCP_FO_CRS_SELECT", - "actionType": "SimEventId" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "40907 (>K:ROTOR_BRAKE)", - "encoderLowerCCW": "40908 (>K:ROTOR_BRAKE)", - "encoderUpperCW": "40907 (>K:ROTOR_BRAKE)", - "encoderUpperCCW": "40908 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - } - }, - { - "id": "btn_cpt_fd", - "type": "bindableImageButton", - "left": 168, - "top": 203, - "controlSize": { - "$ref": "#value.controlSize.toggleButton" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_MCP_CPT_FD_IND", - "images": [ - { - "url": "button_toggle_left_off.png", - "val": 0 - }, - { - "url": "button_toggle_left_on.png", - "val": 1 - } - ] - }, - "action": { - "touchActions": [ - { - "action": "37801 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "btn_cpt_fd_ind", - "type": "bindableImageButton", - "left": 192, - "top": 134, - "controlSize": { - "$ref": "#value.controlSize.buttonMaster" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_MCP_CPT_FD_IND", - "images": [ - { - "url": "master_light_off.png", - "val": 0 - }, - { - "url": "master_light_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_fo_fd", - "type": "bindableImageButton", - "left": 1658, - "top": 203, - "controlSize": { - "$ref": "#value.controlSize.toggleButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "40701 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "PMDG_B737_MCP_FO_FD_IND", - "images": [ - { - "url": "button_toggle_right_off.png", - "val": 0 - }, - { - "url": "button_toggle_right_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_fo_fd_ind", - "type": "bindableImageButton", - "left": 1682, - "top": 134, - "controlSize": { - "$ref": "#value.controlSize.buttonMaster" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_MCP_FO_FD_IND", - "images": [ - { - "url": "master_light_off.png", - "val": 0 - }, - { - "url": "master_light_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_toga", - "type": "imageButton", - "image": "button_toga.png", - "left": 80, - "top": 225, - "controlSize": { - "$ref": "#value.controlSize.regularButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "68401 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "btn_hud", - "type": "imageButton", - "image": "button_hud.png", - "left": 1769, - "top": 225, - "controlSize": { - "$ref": "#value.controlSize.regularButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "PMDG_B737_MCP_HUD_SELECT", - "actionType": "SimEventId" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "98007 (>K:ROTOR_BRAKE)", - "encoderLowerCCW": "98008 (>K:ROTOR_BRAKE)", - "encoderLowerSwitch": "97901 (>K:ROTOR_BRAKE)", - "encoderUpperCW": "25802 (>K:ROTOR_BRAKE)", - "encoderUpperCCW": "25801 (>K:ROTOR_BRAKE)", - "encoderUpperSwitch": "98101 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - } - }, - { - "id": "btn_n1_limit", - "type": "bindableImageButton", - "left": 252, - "top": 225, - "controlSize": { - "$ref": "#value.controlSize.regularButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "38101 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "PMDG_B737_MCP_N1_IND", - "images": [ - { - "url": "button_n1_off.png", - "val": 0 - }, - { - "url": "button_n1_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_speed", - "type": "bindableImageButton", - "left": 342, - "top": 225, - "controlSize": { - "$ref": "#value.controlSize.regularButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "38201 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "PMDG_B737_MCP_SPEED_IND", - "images": [ - { - "url": "button_speed_off.png", - "val": 0 - }, - { - "url": "button_speed_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_lvl_chg", - "type": "bindableImageButton", - "left": 605, - "top": 225, - "controlSize": { - "$ref": "#value.controlSize.regularButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "39101 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "PMDG_B737_MCP_LVL_CHANGE_IND", - "images": [ - { - "url": "button_lvl_chg_off.png", - "val": 0 - }, - { - "url": "button_lvl_chg_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_hdg_sel", - "type": "bindableImageButton", - "left": 733, - "top": 225, - "controlSize": { - "$ref": "#value.controlSize.regularButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "39201 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "PMDG_B737_MCP_HDG_SEL_IND", - "images": [ - { - "url": "button_hdg_sel_off.png", - "val": 0 - }, - { - "url": "button_hdg_sel_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_app", - "type": "bindableImageButton", - "left": 865, - "top": 225, - "controlSize": { - "$ref": "#value.controlSize.regularButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "39301 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "PMDG_B737_MCP_APP_IND", - "images": [ - { - "url": "button_app_off.png", - "val": 0 - }, - { - "url": "button_app_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_alt_hld", - "type": "bindableImageButton", - "left": 1043, - "top": 225, - "controlSize": { - "$ref": "#value.controlSize.regularButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "39401 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "PMDG_B737_MCP_ALT_HOLD_IND", - "images": [ - { - "url": "button_alt_hld_off.png", - "val": 0 - }, - { - "url": "button_alt_hld_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_vnav", - "type": "bindableImageButton", - "left": 605, - "top": 34, - "controlSize": { - "$ref": "#value.controlSize.regularButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "38601 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "PMDG_B737_MCP_VNAV_IND", - "images": [ - { - "url": "button_vnav_off.png", - "val": 0 - }, - { - "url": "button_vnav_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_lnav", - "type": "bindableImageButton", - "left": 865, - "top": 34, - "controlSize": { - "$ref": "#value.controlSize.regularButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "39701 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "PMDG_B737_MCP_LNAV_IND", - "images": [ - { - "url": "button_lnav_off.png", - "val": 0 - }, - { - "url": "button_lnav_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_vor_loc", - "type": "bindableImageButton", - "left": 865, - "top": 130, - "controlSize": { - "$ref": "#value.controlSize.regularButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "39601 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "PMDG_B737_MCP_VOR_LOC_IND", - "images": [ - { - "url": "button_vor_loc_off.png", - "val": 0 - }, - { - "url": "button_vor_loc_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_cmd_a", - "type": "bindableImageButton", - "left": 1485, - "top": 55, - "controlSize": { - "$ref": "#value.controlSize.regularButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "40201 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "PMDG_B737_MCP_CMD_A_IND", - "images": [ - { - "url": "button_cmd_off.png", - "val": 0 - }, - { - "url": "button_cmd_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_cmd_b", - "type": "bindableImageButton", - "left": 1589, - "top": 55, - "controlSize": { - "$ref": "#value.controlSize.regularButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "40301 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "PMDG_B737_MCP_CMD_B_IND", - "images": [ - { - "url": "button_cmd_off.png", - "val": 0 - }, - { - "url": "button_cmd_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_cws_a", - "type": "bindableImageButton", - "left": 1485, - "top": 146, - "controlSize": { - "$ref": "#value.controlSize.regularButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "40401 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "PMDG_B737_MCP_CWS_A_IND", - "images": [ - { - "url": "button_cws_off.png", - "val": 0 - }, - { - "url": "button_cws_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_cws_b", - "type": "bindableImageButton", - "left": 1589, - "top": 146, - "controlSize": { - "$ref": "#value.controlSize.regularButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "40501 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "PMDG_B737_MCP_CWS_B_IND", - "images": [ - { - "url": "button_cws_off.png", - "val": 0 - }, - { - "url": "button_cws_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_hdg_bk_knob", - "type": "bindableImageButton", - "left": 726, - "top": 125, - "controlSize": { - "$ref": "#value.controlSize.bkKnob" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "PMDG_B737_MCP_BANK_ANGLE_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "38902 (>K:ROTOR_BRAKE)", - "encoderLowerCCW": "38901 (>K:ROTOR_BRAKE)", - "encoderUpperCW": "39007 (>K:ROTOR_BRAKE)", - "encoderUpperCCW": "39008 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - }, - "binding": { - "variable": "PMDG_B737_MCP_BANK_ANGLE", - "images": [ - { - "url": "knob_bk.png", - "rotate": 30, - "val": 0 - }, - { - "url": "knob_bk.png", - "rotate": 60, - "val": 10 - }, - { - "url": "knob_bk.png", - "rotate": 90, - "val": 20 - }, - { - "url": "knob_bk.png", - "rotate": 120, - "val": 30 - }, - { - "url": "knob_bk.png", - "rotate": 150, - "val": 40 - } - ] - } - }, - { - "id": "btn_speed_knob", - "type": "imageButton", - "left": 465, - "top": 155, - "controlSize": { - "$ref": "#value.controlSize.mcpKnob" - }, - "highlight": true, - "image": "knob_mcp.png", - "action": { - "touchActions": [ - { - "action": "PMDG_B737_MCP_SPEED_SELECT", - "actionType": "SimEventId" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "38407 (>K:ROTOR_BRAKE)", - "encoderLowerCCW": "38408 (>K:ROTOR_BRAKE)", - "encoderUpperCW": "38407 (>K:ROTOR_BRAKE)", - "encoderUpperCCW": "38408 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - } - }, - { - "id": "btn_alt_knob", - "type": "imageButton", - "left": 1034, - "top": 124, - "controlSize": { - "$ref": "#value.controlSize.mcpKnob" - }, - "highlight": true, - "image": "knob_mcp.png", - "action": { - "touchActions": [ - { - "action": "PMDG_B737_MCP_ALT_SELECT", - "actionType": "SimEventId" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "40007 (>K:ROTOR_BRAKE)", - "encoderLowerCCW": "40008 (>K:ROTOR_BRAKE)", - "encoderUpperCW": "40007 (>K:ROTOR_BRAKE)", - "encoderUpperCCW": "40008 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - } - }, - { - "id": "btn_alt_intv", - "type": "imageButton", - "left": 1143, - "top": 144, - "controlSize": { - "$ref": "#value.controlSize.buttonIntv" - }, - "highlight": false, - "image": "button_intv.png", - "action": { - "touchActions": [ - { - "action": "88501 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "btn_co_intv", - "type": "imageButton", - "left": 397, - "top": 144, - "controlSize": { - "$ref": "#value.controlSize.buttonIntv" - }, - "highlight": false, - "image": "button_intv.png", - "action": { - "touchActions": [ - { - "action": "38301 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "btn_spd_intv", - "type": "imageButton", - "left": 570, - "top": 144, - "controlSize": { - "$ref": "#value.controlSize.buttonIntv" - }, - "highlight": false, - "image": "button_intv.png", - "action": { - "touchActions": [ - { - "action": "38701 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "btn_vs", - "type": "bindableImageButton", - "left": 1144, - "top": 225, - "controlSize": { - "$ref": "#value.controlSize.regularButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "39501 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "PMDG_B737_MCP_VS_IND", - "images": [ - { - "url": "button_vs_off.png", - "val": 0 - }, - { - "url": "button_vs_on.png", - "val": 1 - } - ] - } - }, - { - "id": "btn_vs_knob", - "type": "imageButton", - "left": 1367, - "top": 152, - "controlSize": { - "$ref": "#value.controlSize.knobWheel" - }, - "highlight": true, - "image": "knob_wheel.png", - "action": { - "touchActions": [ - { - "action": "PMDG_B737_MCP_VS_SELECT", - "actionType": "SimEventId" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "40108 (>K:ROTOR_BRAKE)", - "encoderLowerCCW": "40107 (>K:ROTOR_BRAKE)", - "encoderUpperCW": "40108 (>K:ROTOR_BRAKE)", - "encoderUpperCCW": "40107 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - } - }, - { - "id": "btn_at_disengage", - "type": "imageButton", - "left": 1503, - "top": 264, - "controlSize": { - "$ref": "#value.controlSize.buttonApDisengage" - }, - "highlight": false, - "image": "button_ap_disengage.png", - "action": { - "touchActions": [ - { - "action": "40601 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "display_cpt_crs", - "type": "digitDisplay", - "left": 112, - "top": 65, - "controlSize": { - "$ref": "#value.controlSize.threeDigitDisplay" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_MCP_CPT_CRS", - "numberOfDisplayDigit": 3, - "padZeroes": true - } - }, - { - "id": "display_fo_crs", - "type": "digitDisplay", - "left": 1710, - "top": 65, - "controlSize": { - "$ref": "#value.controlSize.threeDigitDisplay" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_MCP_FO_CRS", - "numberOfDisplayDigit": 3, - "padZeroes": true - } - }, - { - "id": "display_ias_mach", - "type": "digitDisplay", - "left": 440, - "top": 65, - "controlSize": { - "$ref": "#value.controlSize.fourDigitDisplay" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_MCP_IAS_MACH", - "numberOfDisplayDigit": 3, - "decimalPlaces": 2, - "decimalPlacesLessThanOneOnly": true - } - }, - { - "id": "display_hdg", - "type": "digitDisplay", - "left": 720, - "top": 65, - "controlSize": { - "$ref": "#value.controlSize.threeDigitDisplay" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_MCP_HDG", - "numberOfDisplayDigit": 3, - "padZeroes": true - } - }, - { - "id": "display_alt", - "type": "digitDisplay", - "left": 1028, - "top": 65, - "controlSize": { - "$ref": "#value.controlSize.fiveDigitDisplay" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_MCP_ALT", - "numberOfDisplayDigit": 5 - } - }, - { - "id": "display_vs", - "type": "digitDisplay", - "left": 1339, - "top": 65, - "controlSize": { - "$ref": "#value.controlSize.threeDigitDisplay" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_MCP_V_SPEED", - "numberOfDisplayDigit": 4 - } - } - ] - } -} \ No newline at end of file diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/background_mcp.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/background_mcp.png deleted file mode 100644 index a0bc9c5..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/background_mcp.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_alt_hld_off.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_alt_hld_off.png deleted file mode 100644 index f19f320..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_alt_hld_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_alt_hld_on.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_alt_hld_on.png deleted file mode 100644 index 93d90fd..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_alt_hld_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_alt_intv.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_alt_intv.png deleted file mode 100644 index cabda4c..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_alt_intv.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_ap_disengage.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_ap_disengage.png deleted file mode 100644 index e951df0..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_ap_disengage.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_app_off.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_app_off.png deleted file mode 100644 index 9e94f77..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_app_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_app_on.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_app_on.png deleted file mode 100644 index 6821a92..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_app_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_at_arm_off.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_at_arm_off.png deleted file mode 100644 index b2a2877..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_at_arm_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_at_arm_on.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_at_arm_on.png deleted file mode 100644 index f0b5dae..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_at_arm_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_base_off.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_base_off.png deleted file mode 100644 index 31e70a3..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_base_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_base_on.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_base_on.png deleted file mode 100644 index 725fc56..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_base_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_cmd_off.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_cmd_off.png deleted file mode 100644 index 883ea88..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_cmd_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_cmd_on.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_cmd_on.png deleted file mode 100644 index f5d398a..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_cmd_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_cws_off.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_cws_off.png deleted file mode 100644 index 4b105c5..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_cws_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_cws_on.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_cws_on.png deleted file mode 100644 index 128ab88..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_cws_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_hdg_sel_off.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_hdg_sel_off.png deleted file mode 100644 index cb68049..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_hdg_sel_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_hdg_sel_on.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_hdg_sel_on.png deleted file mode 100644 index 2ffbb8b..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_hdg_sel_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_hud.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_hud.png deleted file mode 100644 index 49ff268..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_hud.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_intv.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_intv.png deleted file mode 100644 index 8685cf2..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_intv.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_lnav_off.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_lnav_off.png deleted file mode 100644 index d75846e..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_lnav_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_lnav_on.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_lnav_on.png deleted file mode 100644 index cc4b30b..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_lnav_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_lvl_chg_off.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_lvl_chg_off.png deleted file mode 100644 index 8fa7b0a..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_lvl_chg_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_lvl_chg_on.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_lvl_chg_on.png deleted file mode 100644 index 2cb1110..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_lvl_chg_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_n1_off.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_n1_off.png deleted file mode 100644 index 04c633a..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_n1_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_n1_on.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_n1_on.png deleted file mode 100644 index e62ad3c..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_n1_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_speed_off.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_speed_off.png deleted file mode 100644 index 58945aa..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_speed_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_speed_on.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_speed_on.png deleted file mode 100644 index 749598e..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_speed_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_toga.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_toga.png deleted file mode 100644 index 7ebeae1..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_toga.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_toggle_left_off.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_toggle_left_off.png deleted file mode 100644 index 05fc521..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_toggle_left_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_toggle_left_on.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_toggle_left_on.png deleted file mode 100644 index 5a3c410..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_toggle_left_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_toggle_right_off.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_toggle_right_off.png deleted file mode 100644 index 8998453..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_toggle_right_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_toggle_right_on.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_toggle_right_on.png deleted file mode 100644 index 73bcba4..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_toggle_right_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_vnav_off.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_vnav_off.png deleted file mode 100644 index 6a731c0..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_vnav_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_vnav_on.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_vnav_on.png deleted file mode 100644 index a12cb76..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_vnav_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_vor_loc_off.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_vor_loc_off.png deleted file mode 100644 index fb8165b..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_vor_loc_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_vor_loc_on.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_vor_loc_on.png deleted file mode 100644 index 4b27c7d..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_vor_loc_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_vs_off.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_vs_off.png deleted file mode 100644 index 4bdc3f1..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_vs_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_vs_on.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_vs_on.png deleted file mode 100644 index aad3cb5..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/button_vs_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/knob_bk.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/knob_bk.png deleted file mode 100644 index 8e74ca1..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/knob_bk.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/knob_crs.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/knob_crs.png deleted file mode 100644 index 060b536..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/knob_crs.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/knob_mcp.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/knob_mcp.png deleted file mode 100644 index 728027c..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/knob_mcp.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/knob_wheel.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/knob_wheel.png deleted file mode 100644 index c6909b8..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/knob_wheel.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/master_light_off.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/master_light_off.png deleted file mode 100644 index 3273401..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/master_light_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/master_light_on.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/master_light_on.png deleted file mode 100644 index e3d0f75..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/master_light_on.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/preview.png b/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/preview.png deleted file mode 100644 index 4e98064..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/mcp/img/preview.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/radio/PopoutPanelDefinition.json b/ReactClient/public/config/profiles/pmdg-737-700/radio/PopoutPanelDefinition.json deleted file mode 100644 index dfbf843..0000000 --- a/ReactClient/public/config/profiles/pmdg-737-700/radio/PopoutPanelDefinition.json +++ /dev/null @@ -1,774 +0,0 @@ -{ - "id": "PMDG_737_700_RADIO_DEF", - "value": { - "panelSize": { - "width": 995, - "height": 485 - }, - "backgroundImage": "background_radio.png", - "controlSize": { - "radioDisplay": { - "width": 115, - "height": 49 - }, - "pushButton": { - "width": 50, - "height": 32 - }, - "pushButtonOff": { - "width": 45, - "height": 27 - }, - "pushButtonTransfer": { - "width": 48, - "height": 28 - }, - "comIndicator": { - "width": 29, - "height": 8 - }, - "knob1": { - "width": 63, - "height": 63 - }, - "knob2": { - "width": 92, - "height": 92 - }, - "test": { - "width": 40, - "height": 40 - } - }, - "panelControlDefinitions": [ - { - "id": "display_active_com1", - "type": "digitDisplay", - "left": 69, - "top": 63, - "controlSize": { - "$ref": "#value.controlSize.radioDisplay" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_COM1_ACTIVE_FREQ", - "numberOfDisplayDigit": 7, - "decimalPlaces": 3, - "padZeroes": true, - "color": "rgb(255, 121, 10, 1)" - } - }, - { - "id": "display_standby_com1", - "type": "digitDisplay", - "left": 303, - "top": 63, - "controlSize": { - "$ref": "#value.controlSize.radioDisplay" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_COM1_STANDBY_FREQ", - "numberOfDisplayDigit": 7, - "decimalPlaces": 3, - "padZeroes": true, - "color": "rgb(255, 121, 10, 1)" - } - }, - { - "id": "display_active_com2", - "type": "digitDisplay", - "left": 569, - "top": 63, - "controlSize": { - "$ref": "#value.controlSize.radioDisplay" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_COM2_ACTIVE_FREQ", - "numberOfDisplayDigit": 7, - "decimalPlaces": 3, - "padZeroes": true, - "color": "rgb(255, 121, 10, 1)" - } - }, - { - "id": "display_standby_com2", - "type": "digitDisplay", - "left": 802, - "top": 63, - "controlSize": { - "$ref": "#value.controlSize.radioDisplay" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_COM2_STANDBY_FREQ", - "numberOfDisplayDigit": 7, - "decimalPlaces": 3, - "padZeroes": true, - "color": "rgb(255, 121, 10, 1)" - } - }, - { - "id": "display_active_nav1", - "type": "digitDisplay", - "left": 69, - "top": 306, - "controlSize": { - "$ref": "#value.controlSize.radioDisplay" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_NAV1_ACTIVE_FREQ", - "numberOfDisplayDigit": 6, - "decimalPlaces": 2, - "padZeroes": true, - "color": "rgb(255, 121, 10, 1)" - } - }, - { - "id": "display_standby_nav1", - "type": "digitDisplay", - "left": 303, - "top": 306, - "controlSize": { - "$ref": "#value.controlSize.radioDisplay" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_NAV1_STANDBY_FREQ", - "numberOfDisplayDigit": 6, - "decimalPlaces": 2, - "padZeroes": true, - "color": "rgb(255, 121, 10, 1)" - } - }, - { - "id": "display_active_nav2", - "type": "digitDisplay", - "left": 569, - "top": 306, - "controlSize": { - "$ref": "#value.controlSize.radioDisplay" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_NAV2_ACTIVE_FREQ", - "numberOfDisplayDigit": 6, - "decimalPlaces": 2, - "padZeroes": true, - "color": "rgb(255, 121, 10, 1)" - } - }, - { - "id": "display_standby_nav2", - "type": "digitDisplay", - "left": 802, - "top": 306, - "controlSize": { - "$ref": "#value.controlSize.radioDisplay" - }, - "highlight": false, - "binding": { - "variable": "PMDG_B737_NAV2_STANDBY_FREQ", - "numberOfDisplayDigit": 6, - "decimalPlaces": 2, - "padZeroes": true, - "color": "rgb(255, 121, 10, 1)" - } - }, - { - "id": "hf_sens_1_knob", - "type": "imageButton", - "image": "knob.png", - "left": 58, - "top": 152, - "controlSize": { - "$ref": "#value.controlSize.knob1" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "None", - "actionType": "SimEventId" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "None", - "encoderLowerCCW": "None", - "encoderUpperCW": "None", - "encoderUpperCCW": "None", - "actionType": "SimVarCode" - } - } - }, - { - "id": "com_1_knob", - "type": "imageButton", - "image": "knob2.png", - "left": 384, - "top": 130, - "controlSize": { - "$ref": "#value.controlSize.knob2" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "PMDG_B737_COM1_RADIO_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "COM_RADIO_WHOLE_INC", - "encoderLowerCCW": "COM_RADIO_WHOLE_DEC", - "encoderUpperCW": "COM_RADIO_FRACT_INC", - "encoderUpperCCW": "COM_RADIO_FRACT_DEC", - "actionType": "SimEventId" - } - } - }, - { - "id": "com_1_transfer", - "type": "imageButton", - "image": "transfer.png", - "left": 223, - "top": 61, - "controlSize": { - "$ref": "#value.controlSize.pushButtonTransfer" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "COM_STBY_RADIO_SWAP", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "encoderLowerCW": "COM_RADIO_WHOLE_INC", - "encoderLowerCCW": "COM_RADIO_WHOLE_DEC", - "encoderUpperCW": "COM_RADIO_FRACT_INC", - "encoderUpperCCW": "COM_RADIO_FRACT_DEC", - "actionType": "SimEventId" - } - } - }, - { - "id": "com_1_off", - "type": "imageButton", - "image": "button_off.png", - "left": 75, - "top": 116, - "controlSize": { - "$ref": "#value.controlSize.pushButtonOff" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "None", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "com_1_indicatior", - "type": "image", - "image": "indicator.png", - "left": 163, - "top": 121, - "controlSize": { - "$ref": "#value.controlSize.comIndicator" - }, - "highlight": false - }, - { - "id": "com_1_vhf1", - "type": "imageButton", - "image": "button_vhf1.png", - "left": 152, - "top": 137, - "controlSize": { - "$ref": "#value.controlSize.pushButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "None", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "com_1_vhf2", - "type": "imageButton", - "image": "button_vhf2.png", - "left": 222, - "top": 137, - "controlSize": { - "$ref": "#value.controlSize.pushButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "None", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "com_1_vhf3", - "type": "imageButton", - "image": "button_vhf3.png", - "left": 292, - "top": 137, - "controlSize": { - "$ref": "#value.controlSize.pushButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "None", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "com_1_hf1", - "type": "imageButton", - "image": "button_hf1.png", - "left": 152, - "top": 188, - "controlSize": { - "$ref": "#value.controlSize.pushButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "None", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "com_1_am", - "type": "imageButton", - "image": "button_am.png", - "left": 222, - "top": 188, - "controlSize": { - "$ref": "#value.controlSize.pushButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "None", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "com_1_hf2", - "type": "imageButton", - "image": "button_hf2.png", - "left": 292, - "top": 188, - "controlSize": { - "$ref": "#value.controlSize.pushButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "None", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "hf_sens_2_knob", - "type": "imageButton", - "image": "knob.png", - "left": 557, - "top": 152, - "controlSize": { - "$ref": "#value.controlSize.knob1" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "None", - "actionType": "SimEventId" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "None", - "encoderLowerCCW": "None", - "encoderUpperCW": "None", - "encoderUpperCCW": "None", - "actionType": "SimVarCode" - } - } - }, - { - "id": "com_2_knob", - "type": "imageButton", - "image": "knob2.png", - "left": 883, - "top": 130, - "controlSize": { - "$ref": "#value.controlSize.knob2" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "PMDG_B737_COM2_RADIO_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "COM2_RADIO_WHOLE_INC", - "encoderLowerCCW": "COM2_RADIO_WHOLE_DEC", - "encoderUpperCW": "COM2_RADIO_FRACT_INC", - "encoderUpperCCW": "COM2_RADIO_FRACT_DEC", - "actionType": "SimEventId" - } - } - }, - { - "id": "com_2_transfer", - "type": "imageButton", - "image": "transfer.png", - "left": 723, - "top": 61, - "controlSize": { - "$ref": "#value.controlSize.pushButtonTransfer" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "COM2_RADIO_SWAP", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "encoderLowerCW": "COM2_RADIO_WHOLE_INC", - "encoderLowerCCW": "COM2_RADIO_WHOLE_DEC", - "encoderUpperCW": "COM2_RADIO_FRACT_INC", - "encoderUpperCCW": "COM2_RADIO_FRACT_DEC", - "actionType": "SimEventId" - } - } - }, - { - "id": "com_2_off", - "type": "imageButton", - "image": "button_off.png", - "left": 574, - "top": 116, - "controlSize": { - "$ref": "#value.controlSize.pushButtonOff" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "None", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "com_2_indicatior", - "type": "image", - "image": "indicator.png", - "left": 733, - "top": 121, - "controlSize": { - "$ref": "#value.controlSize.comIndicator" - }, - "highlight": false - }, - { - "id": "com_2_vhf1", - "type": "imageButton", - "image": "button_vhf1.png", - "left": 652, - "top": 137, - "controlSize": { - "$ref": "#value.controlSize.pushButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "None", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "com_2_vhf2", - "type": "imageButton", - "image": "button_vhf2.png", - "left": 722, - "top": 137, - "controlSize": { - "$ref": "#value.controlSize.pushButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "None", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "com_2_vhf3", - "type": "imageButton", - "image": "button_vhf3.png", - "left": 792, - "top": 137, - "controlSize": { - "$ref": "#value.controlSize.pushButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "None", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "com_2_hf1", - "type": "imageButton", - "image": "button_hf1.png", - "left": 652, - "top": 188, - "controlSize": { - "$ref": "#value.controlSize.pushButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "None", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "com_2_am", - "type": "imageButton", - "image": "button_am.png", - "left": 722, - "top": 188, - "controlSize": { - "$ref": "#value.controlSize.pushButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "None", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "com_2_hf2", - "type": "imageButton", - "image": "button_hf2.png", - "left": 792, - "top": 188, - "controlSize": { - "$ref": "#value.controlSize.pushButton" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "None", - "actionType": "SimVarCode" - } - ] - } - }, - { - "id": "nav_1_test", - "type": "imageButton", - "image": "test.png", - "left": 110, - "top": 404, - "controlSize": { - "$ref": "#value.controlSize.test" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "None", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "nav_1_knob", - "type": "imageButton", - "image": "knob2.png", - "left": 384, - "top": 374, - "controlSize": { - "$ref": "#value.controlSize.knob2" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "PMDG_B737_NAV1_RADIO_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "NAV1_RADIO_WHOLE_INC", - "encoderLowerCCW": "NAV1_RADIO_WHOLE_DEC", - "encoderUpperCW": "NAV1_RADIO_FRACT_INC", - "encoderUpperCCW": "NAV1_RADIO_FRACT_DEC", - "actionType": "SimEventId" - } - } - }, - { - "id": "nav_1_transfer", - "type": "imageButton", - "image": "transfer.png", - "left": 223, - "top": 307, - "controlSize": { - "$ref": "#value.controlSize.pushButtonTransfer" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "NAV1_RADIO_SWAP", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "encoderLowerCW": "NAV1_RADIO_WHOLE_INC", - "encoderLowerCCW": "NAV1_RADIO_WHOLE_DEC", - "encoderUpperCW": "NAV1_RADIO_FRACT_INC", - "encoderUpperCCW": "NAV1_RADIO_FRACT_DEC", - "actionType": "SimEventId" - } - } - }, - { - "id": "nav_2_test", - "type": "imageButton", - "image": "test.png", - "left": 610, - "top": 405, - "controlSize": { - "$ref": "#value.controlSize.test" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "None", - "actionType": "SimEventId" - } - ] - } - }, - { - "id": "nav_2_knob", - "type": "imageButton", - "image": "knob2.png", - "left": 883, - "top": 374, - "controlSize": { - "$ref": "#value.controlSize.knob2" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "PMDG_B737_NAV2_RADIO_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "NAV2_RADIO_WHOLE_INC", - "encoderLowerCCW": "NAV2_RADIO_WHOLE_DEC", - "encoderUpperCW": "NAV2_RADIO_FRACT_INC", - "encoderUpperCCW": "NAV2_RADIO_FRACT_DEC", - "actionType": "SimEventId" - } - } - }, - { - "id": "nav_2_transfer", - "type": "imageButton", - "image": "transfer.png", - "left": 723, - "top": 307, - "controlSize": { - "$ref": "#value.controlSize.pushButtonTransfer" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "NAV2_RADIO_SWAP", - "actionType": "SimEventId" - } - ], - "encoderAction": { - "encoderLowerCW": "NAV2_RADIO_WHOLE_INC", - "encoderLowerCCW": "NAV2_RADIO_WHOLE_DEC", - "encoderUpperCW": "NAV2_RADIO_FRACT_INC", - "encoderUpperCCW": "NAV2_RADIO_FRACT_DEC", - "actionType": "SimEventId" - } - } - } - ] - } -} \ No newline at end of file diff --git a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/background_radio.png b/ReactClient/public/config/profiles/pmdg-737-700/radio/img/background_radio.png deleted file mode 100644 index 5cafe27..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/background_radio.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_am.png b/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_am.png deleted file mode 100644 index 6b2b66c..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_am.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_hf1.png b/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_hf1.png deleted file mode 100644 index b80178f..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_hf1.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_hf2.png b/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_hf2.png deleted file mode 100644 index 9d020e4..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_hf2.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_off.png b/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_off.png deleted file mode 100644 index eaecf70..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_off.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_vhf1.png b/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_vhf1.png deleted file mode 100644 index d308394..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_vhf1.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_vhf2.png b/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_vhf2.png deleted file mode 100644 index a8b4d86..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_vhf2.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_vhf3.png b/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_vhf3.png deleted file mode 100644 index 2d43a4a..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/button_vhf3.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/indicator.png b/ReactClient/public/config/profiles/pmdg-737-700/radio/img/indicator.png deleted file mode 100644 index eaa2b3c..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/indicator.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/knob.png b/ReactClient/public/config/profiles/pmdg-737-700/radio/img/knob.png deleted file mode 100644 index 2cc87af..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/knob.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/knob2.png b/ReactClient/public/config/profiles/pmdg-737-700/radio/img/knob2.png deleted file mode 100644 index bb8e8ab..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/knob2.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/preview.png b/ReactClient/public/config/profiles/pmdg-737-700/radio/img/preview.png deleted file mode 100644 index fa61af8..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/preview.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/test.png b/ReactClient/public/config/profiles/pmdg-737-700/radio/img/test.png deleted file mode 100644 index ade122f..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/test.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/transfer.png b/ReactClient/public/config/profiles/pmdg-737-700/radio/img/transfer.png deleted file mode 100644 index 2841bc1..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/radio/img/transfer.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/xpndr/PopoutPanelDefinition.json b/ReactClient/public/config/profiles/pmdg-737-700/xpndr/PopoutPanelDefinition.json deleted file mode 100644 index 2315505..0000000 --- a/ReactClient/public/config/profiles/pmdg-737-700/xpndr/PopoutPanelDefinition.json +++ /dev/null @@ -1,299 +0,0 @@ -{ - "id": "PMDG_737_700_XPNDR_DEF", - "value": { - "panelSize": { - "width": 498, - "height": 259 - }, - "backgroundImage": "background_xpndr.png", - "controlSize": { - "adfDisplay": { - "width": 115, - "height": 49 - }, - "adfModeKnob": { - "width": 75, - "height": 75 - }, - "adfKnob": { - "width": 92, - "height": 92 - }, - "atcDisplay": { - "width": 115, - "height": 49 - }, - "xpndrDisplay": { - "width": 115, - "height": 49 - }, - "transfer": { - "width": 48, - "height": 28 - }, - "knob2": { - "width": 75, - "height": 75 - }, - "knob6": { - "width": 75, - "height": 75 - }, - "knob6a": { - "width": 50, - "height": 50 - }, - "ident": { - "width": 30, - "height": 30 - } - }, - "panelControlDefinitions": [ - { - "id": "display_atc", - "type": "textBlock", - "left": 205, - "top": 60, - "controlSize": { - "$ref": "#value.controlSize.atcDisplay" - }, - "binding": { - "color": "rgb(255, 255, 255, 1)", - "text": "ATC" - } - }, - { - "id": "display_atc_mode", - "type": "textBlock", - "left": 233, - "top": 60, - "controlSize": { - "$ref": "#value.controlSize.atcDisplay" - }, - "binding": { - "variable": "PMDG_B737_XPNDR_XPNDR_MODE", - "color": "rgb(255, 255, 255, 1)", - "bindingValues": [ - { - "val": 0, - "text": "1" - }, - { - "val": 100, - "text": "2" - } - ] - } - }, - { - "id": "display_xpndr", - "type": "digitDisplay", - "left": 171, - "top": 83, - "controlSize": { - "$ref": "#value.controlSize.xpndrDisplay" - }, - "binding": { - "variable": "TRANSPONDER_CODE", - "numberOfDisplayDigit": 4, - "padZeroes": true, - "color": "rgb(255, 255, 255, 1)" - } - }, - { - "id": "button_xpndr_mode", - "type": "bindableImageButton", - "left": 48, - "top": 55, - "controlSize": { - "$ref": "#value.controlSize.knob6a" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "79801 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "PMDG_B737_XPNDR_XPNDR_MODE", - "images": [ - { - "url": "knob6.png", - "rotate": 70, - "val": 0 - }, - { - "url": "knob6.png", - "rotate": 110, - "val": 100 - } - ] - } - }, - { - "id": "button_altsource_mode", - "type": "bindableImageButton", - "left": 48, - "top": 165, - "controlSize": { - "$ref": "#value.controlSize.knob6a" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "80301 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - }, - "binding": { - "variable": "PMDG_B737_XPNDR_ALTSOURCE_MODE", - "images": [ - { - "url": "knob6.png", - "rotate": 70, - "val": 0 - }, - { - "url": "knob6.png", - "rotate": 110, - "val": 100 - } - ] - } - }, - { - "id": "atc_mode_knob", - "type": "bindableImageButton", - "left": 365, - "top": 61, - "controlSize": { - "$ref": "#value.controlSize.knob6" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "PMDG_B737_ATC_MODE_SELECT", - "actionType": "SimEventId" - } - ], - "useEncoder": true, - "encoderAction": { - "encoderLowerCW": "80007 (>K:ROTOR_BRAKE)", - "encoderLowerCCW": "80008 (>K:ROTOR_BRAKE)", - "encoderUpperCW": "80007 (>K:ROTOR_BRAKE)", - "encoderUpperCCW": "80008 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - }, - "binding": { - "variable": "PMDG_B737_XPNDR_ATC_MODE", - "images": [ - { - "url": "knob6.png", - "val": 0 - }, - { - "url": "knob6.png", - "rotate": 30, - "val": 10 - }, - { - "url": "knob6.png", - "rotate": 60, - "val": 20 - }, - { - "url": "knob6.png", - "rotate": 90, - "val": 30 - }, - { - "url": "knob6.png", - "rotate": 120, - "val": 40 - } - ] - } - }, - { - "id": "atc_left_knob", - "type": "imageButton", - "image": "knob2.png", - "left": 128, - "top": 147, - "controlSize": { - "$ref": "#value.controlSize.knob2" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "PMDG_B737_ATC1_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderLowerCW": "80407 (>K:ROTOR_BRAKE)", - "encoderLowerCCW": "80408 (>K:ROTOR_BRAKE)", - "encoderUpperCW": "80507 (>K:ROTOR_BRAKE)", - "encoderUpperCCW": "80508 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - } - }, - { - "id": "atc_right_knob", - "type": "imageButton", - "image": "knob2.png", - "left": 292, - "top": 147, - "controlSize": { - "$ref": "#value.controlSize.knob2" - }, - "highlight": true, - "action": { - "touchActions": [ - { - "action": "PMDG_B737_ATC2_SELECT", - "actionType": "SimEventId" - } - ], - "useDualEncoder": true, - "encoderAction": { - "encoderUpperCW": "80807 (>K:ROTOR_BRAKE)", - "encoderUpperCCW": "80808 (>K:ROTOR_BRAKE)", - "encoderLowerCW": "80707 (>K:ROTOR_BRAKE)", - "encoderLowerCCW": "80708 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - } - }, - { - "id": "button_atc_ident", - "type": "imageButton", - "image": "ident.png", - "left": 236, - "top": 189, - "controlSize": { - "$ref": "#value.controlSize.ident" - }, - "highlight": false, - "action": { - "touchActions": [ - { - "action": "80601 (>K:ROTOR_BRAKE)", - "actionType": "SimVarCode" - } - ] - } - } - ] - } -} \ No newline at end of file diff --git a/ReactClient/public/config/profiles/pmdg-737-700/xpndr/img/background_xpndr.png b/ReactClient/public/config/profiles/pmdg-737-700/xpndr/img/background_xpndr.png deleted file mode 100644 index a9c18c8..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/xpndr/img/background_xpndr.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/xpndr/img/ident.png b/ReactClient/public/config/profiles/pmdg-737-700/xpndr/img/ident.png deleted file mode 100644 index ade122f..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/xpndr/img/ident.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/xpndr/img/knob2.png b/ReactClient/public/config/profiles/pmdg-737-700/xpndr/img/knob2.png deleted file mode 100644 index bb8e8ab..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/xpndr/img/knob2.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/xpndr/img/knob6.png b/ReactClient/public/config/profiles/pmdg-737-700/xpndr/img/knob6.png deleted file mode 100644 index e667f81..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/xpndr/img/knob6.png and /dev/null differ diff --git a/ReactClient/public/config/profiles/pmdg-737-700/xpndr/img/transfer.png b/ReactClient/public/config/profiles/pmdg-737-700/xpndr/img/transfer.png deleted file mode 100644 index 2841bc1..0000000 Binary files a/ReactClient/public/config/profiles/pmdg-737-700/xpndr/img/transfer.png and /dev/null differ diff --git a/ReactClient/public/favicon.ico b/ReactClient/public/favicon.ico deleted file mode 100644 index 456e14e..0000000 Binary files a/ReactClient/public/favicon.ico and /dev/null differ diff --git a/ReactClient/public/img/airplane-dark.png b/ReactClient/public/img/airplane-dark.png deleted file mode 100644 index 3f4524b..0000000 Binary files a/ReactClient/public/img/airplane-dark.png and /dev/null differ diff --git a/ReactClient/public/img/airplane-light.png b/ReactClient/public/img/airplane-light.png deleted file mode 100644 index bd86f2e..0000000 Binary files a/ReactClient/public/img/airplane-light.png and /dev/null differ diff --git a/ReactClient/public/index.css b/ReactClient/public/index.css deleted file mode 100644 index 6194c98..0000000 --- a/ReactClient/public/index.css +++ /dev/null @@ -1,4 +0,0 @@ -html { - -webkit-text-size-adjust: none; - /* font-size: 16px; */ -} \ No newline at end of file diff --git a/ReactClient/public/index.html b/ReactClient/public/index.html deleted file mode 100644 index 675fbb1..0000000 --- a/ReactClient/public/index.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - Touch Panel - - - - - - - - - - - - - - - - - - -
- - diff --git a/ReactClient/public/logo.jpg b/ReactClient/public/logo.jpg deleted file mode 100644 index f0653fa..0000000 Binary files a/ReactClient/public/logo.jpg and /dev/null differ diff --git a/ReactClient/public/logo192.png b/ReactClient/public/logo192.png deleted file mode 100644 index 666cd5b..0000000 Binary files a/ReactClient/public/logo192.png and /dev/null differ diff --git a/ReactClient/public/logo512.png b/ReactClient/public/logo512.png deleted file mode 100644 index 4d5cac0..0000000 Binary files a/ReactClient/public/logo512.png and /dev/null differ diff --git a/ReactClient/public/manifest.json b/ReactClient/public/manifest.json deleted file mode 100644 index b5c13e4..0000000 --- a/ReactClient/public/manifest.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "short_name": "Touch Panel", - "name": "Touch Panel", - "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" - }, - { - "src": "logo192.png", - "sizes": "192x192", - "type": "image/png", - "purpose": "maskable" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/ReactClient/public/robots.txt b/ReactClient/public/robots.txt deleted file mode 100644 index e9e57dc..0000000 --- a/ReactClient/public/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: diff --git a/ReactClient/public/sharedworker.js b/ReactClient/public/sharedworker.js deleted file mode 100644 index a07636b..0000000 --- a/ReactClient/public/sharedworker.js +++ /dev/null @@ -1,155 +0,0 @@ -const SIMCONNECT_DATA_REQUEST_INTERVAL_SLOW = 5000; - -var apiUrl = undefined; -var networkStatus = false; -var arduinoStatus = false; -var simConnectSystemEvent = undefined; -var simConnectData = undefined; - -onconnect = (ev) => { - const [port] = ev.ports; - - port.onmessage = e => { - apiUrl = e.data.apiUrl; - updateInterval = e.data.updateInterval; - - setInterval(() => { - port.postMessage({ - networkStatus: networkStatus, - arduinoStatus: arduinoStatus, - simConnectSystemEvent: simConnectSystemEvent, - simConnectData: simConnectData - }); - }, updateInterval); - - requestData(updateInterval); - }; -}; - -requestData = async (updateInterval) => { - try { - let response = await fetch(`${apiUrl}/getdata`).catch(() => { - throw('MSFS Touch Panel Server is unavailable.') - }); - - if (response !== undefined) { - let result = await response.json(); - - if (result === undefined) - throw new Error('MSFS Touch Panel Server error'); - - - networkStatus = Boolean(result.msfsStatus ?? false); - arduinoStatus = Boolean(result.arduinoStatus ?? false); - - if (result.systemEvent !== null && result.systemEvent !== undefined) - simConnectSystemEvent = result.systemEvent.split('-')[0]; - else - simConnectSystemEvent = null; - - if (!result.msfsStatus) - throw('MSFS SimConnect is unavailable.') - - var simData = JSON.parse(result.data ?? []); - - if ((simData !== null && simData !== [])) - simConnectData = parseRequestData(simData); - - setTimeout(() => requestData(updateInterval), updateInterval); - } - else { - throw('Empty MSFS Touch Panel Server response.') - } - } - catch (error) { - console.log(error); - networkStatus = false; - setTimeout(() => requestData(SIMCONNECT_DATA_REQUEST_INTERVAL_SLOW), SIMCONNECT_DATA_REQUEST_INTERVAL_SLOW); - } -} - -parseRequestData = (resultData) => { - if (resultData === []) return []; - - let newData = []; - - // Format value as specified by the data key as needed and apply defaults - resultData.forEach(item => { - if (item.javaScriptFormatting !== null) { - item.value = formattingMethod[item.javaScriptFormatting](item.value); - } - - if (item.value === null || item.value === undefined) { - item.value = item.defaultValue; - } - - newData[item.propName] = item.value; - }) - - return newData; -} - -formattingMethod = { - toFixed0: (value) => { - return value.toFixed(0); - }, - toFixed1: (value) => { - return value.toFixed(1); - }, - toFixed2: (value) => { - return value.toFixed(2); - }, - toFixed3: (value) => { - return value.toFixed(3); - }, - toFixed4: (value) => { - return value.toFixed(4); - }, - padStartZero4: (value) => { - return String(value).padStart(4, '0'); - }, - decToHex: (value) => { - let str = value.toString(16); - return str.substring(0, str.length - 4).padStart(4, '0'); - }, - toBlankIfNegative: (value) => { - if (value < 0) - return '' - return value; - }, - toBlankIfZeroOrNegative: (value) => { - if (value <= 0) - return '' - - return value; - }, - toBoeingFlapsValue: (value) => { - value = value.toFixed(0) - - switch (value) { - case '0': - return '0'; - case '1': - return '1' - case '2': - return '2' - case '3': - return '5' - case '4': - return '10' - case '5': - return '15' - case '6': - return '25' - case '7': - return '30' - case '8': - return '40' - default: - return '5' - } - }, - toBoeingElevatorTrimValue: (value) => { - return (value / 10).toFixed(2); - } -} \ No newline at end of file diff --git a/ReactClient/public/sound/button-click.mp3 b/ReactClient/public/sound/button-click.mp3 deleted file mode 100644 index 70bacd6..0000000 Binary files a/ReactClient/public/sound/button-click.mp3 and /dev/null differ diff --git a/ReactClient/src/App/ApplicationBar.js b/ReactClient/src/App/ApplicationBar.js deleted file mode 100644 index ee72a73..0000000 --- a/ReactClient/src/App/ApplicationBar.js +++ /dev/null @@ -1,109 +0,0 @@ -import React, { useMemo } from 'react'; -import makeStyles from '@mui/styles/makeStyles'; -import { useSimConnectData } from '../Services/SimConnectDataProvider'; -import AppBar from '@mui/material/AppBar'; -import Toolbar from '@mui/material/Toolbar'; -import Grid from '@mui/material/Grid'; -import IconButton from '@mui/material/IconButton'; -import UsbIcon from '@mui/icons-material/Usb'; -import MapIcon from '@mui/icons-material/Map'; -import NetworkCheckIcon from '@mui/icons-material/NetworkCheck'; -import { Typography } from '@mui/material'; -import Telemetry from './Telemetry'; - -const useStyles = makeStyles(() => ({ - toolbar: { - minHeight: '1.5em', - padding: 0 - }, - menuIcons: { - display: 'flex', - flexDirection: 'row', - justifyContent: 'flex-end', - alignItems: 'center', - }, - statusIcons: { - display: 'flex', - flexDirection: 'row', - justifyContent: 'flex-start', - alignItems: 'center', - }, - menuButton: { - marginRight: '0.25em', - marginLeft: '0.25em' - }, - networkConnected: { - color: 'lightgreen' - }, - networkDisconnected: { - color: 'red' - }, - drawer: { - width: 250, - }, - simRate:{ - display: 'flex', - flexDirection: 'row', - justifyContent: 'center', - }, - simRateData: - { - marginLeft: '0.5em', - color: 'rgb(32, 217, 32, 1)' - } -})); - -const ApplicationBar = ({mapOpenChanged, panelProfile}) => { - const classes = useStyles(); - const { networkStatus, arduinoStatus, simConnectData } = useSimConnectData(); - const { SIM_RATE } = simConnectData; - - const displaySimRate = (simRate) => { - if(simRate === undefined) - return 1; - - var value = Number(simRate); - - if(value >= 1) - return value.toFixed(0); - else if (value >= 0.5) - return value.toFixed(1); - - return value.toFixed(2); - } - - return useMemo(() => ( -
- - - - - - - - - - - {panelProfile.enableMap && - mapOpenChanged()}> - - - } - - - - - - - Sim Rate: - x{displaySimRate(SIM_RATE)} - - - - - -
- ), [classes, networkStatus, arduinoStatus, panelProfile, mapOpenChanged, SIM_RATE]); -} - -export default ApplicationBar; \ No newline at end of file diff --git a/ReactClient/src/App/InteractiveControlTemplate.js b/ReactClient/src/App/InteractiveControlTemplate.js deleted file mode 100644 index a2c5852..0000000 --- a/ReactClient/src/App/InteractiveControlTemplate.js +++ /dev/null @@ -1,287 +0,0 @@ -import React, { useMemo, useRef, useEffect } from 'react'; -import IconButton from '@mui/material/IconButton'; -import makeStyles from '@mui/styles/makeStyles'; -import { useSimConnectData } from '../Services/SimConnectDataProvider'; -import { useLocalStorageData } from '../Services/LocalStorageProvider'; -import { simConnectPost } from '../Services/simConnectPost'; -import { useWindowDimensions } from '../Components/Util/hooks'; -import { Typography } from '@mui/material'; -import SevenSegmentDisplay from '../Components/Control/SevenSegmentDisplay'; - -const useStyles = makeStyles(() => ({ - iconButton: { - width: '100%', - height: '100%' - }, - iconImageHighlight: { - filter: 'brightness(1.5) sepia(1)' - }, - controlBase: { - position: 'absolute', - backgroundRepeat: 'no-repeat', - backgroundSize: '100%', - paddingRight: '0.1em' - } -})); - -const getImagePath = (panelInfo) => { - return `/config/profiles/${panelInfo.parentRootPath}/${panelInfo.rootPath}/img/`; -} - -const playSound = (isEnabledSound) => { - if (isEnabledSound) { - let audio = new Audio('/sound/button-click.mp3'); - audio.volume = 0.5; - audio.play(); - } -} - -const execActions = (event, action, simConnectData, showEncoder) => { - for (let i = 0; i < action.touchActions.length; i++) { - let curAction = action.touchActions[i]; - let actionValue; - - if (curAction.actionValueVariable !== undefined) - actionValue = simConnectData[curAction.actionValueVariable]; - else - actionValue = curAction.actionValue === undefined ? 1 : curAction.actionValue - - if (curAction.action !== undefined && curAction.action !== null) - setTimeout(() => - simConnectPost({ - action: curAction.action, - actionValue: actionValue, - actionType: curAction.actionType, - encoderAction: action.encoderAction === undefined ? null : action.encoderAction - }), 200 * i); - - if(action.useEncoder) - { - showEncoder(event, false); - return; - } - - if(action.useDualEncoder) - showEncoder(event, action.useDualEncoder); - } -} - -const setupControlLocationStyle = (ctrl, panelInfo) => { - if(panelInfo === undefined || panelInfo === null) - return {}; - - return { left: (ctrl.left / panelInfo.panelSize.width * 100.0) + '%', top: (ctrl.top / panelInfo.panelSize.height * 100.0) + '%' }; -} - -const setupControlWidthHeightStyle = (ctrl, panelInfo) => { - if (ctrl.controlSize === undefined) - return; - - return { width: `calc(100% * ${ctrl.controlSize.width} / ${panelInfo.panelSize.width})`, height: `calc(100% * ${ctrl.controlSize.height} / ${panelInfo.panelSize.height})` }; -} - -const ImageControl = ({ctrl, panelInfo}) => { - const classes = useStyles(); - const imagePath = getImagePath(panelInfo); - - const setupBackgroundImageStyle = () => { - if (ctrl.image === undefined) { - console.log('Missing image value for image control... Button Id: ' + ctrl.id); - return {}; - } - - return { backgroundImage: `url(${imagePath}${ctrl.image})` }; - } - - return useMemo(() =>( -
- -
- ), [ctrl]) -} - -const ImageButton = ({ctrl, panelInfo, showEncoder, highLightedControlId, highlightedControlChanged}) => { - const classes = useStyles(); - const { simConnectData } = useSimConnectData(); - const { isUsedArduino, isEnabledSound } = useLocalStorageData().configurationData; - const imagePath = getImagePath(panelInfo); - - const setupBackgroundImageStyle = () => { - if (ctrl.image === undefined) { - console.log('Missing image value for image button control... Button Id: ' + ctrl.id); - return {}; - } - - return { backgroundImage: `url(${imagePath}${ctrl.image})` }; - } - - const handleOnClick = (event) => { - if (ctrl.highlight === undefined || ctrl.highlight && highlightedControlChanged !== null) - highlightedControlChanged(ctrl.id); - else - highlightedControlChanged(null); - - if (ctrl.action != null) - playSound(isEnabledSound); - - if (!isUsedArduino && (ctrl.action.useEncoder || ctrl.action.useDualEncoder)) - showEncoder(event, ctrl.action.useDualEncoder === undefined ? false : ctrl.action.useDualEncoder); - - execActions(event, ctrl.action, simConnectData, showEncoder); - } - - return useMemo(() =>( -
- handleOnClick(event)} /> -
- ), [ctrl, isUsedArduino, isEnabledSound, highLightedControlId]) -} - -const BindableImageButton = ({ctrl, panelInfo, showEncoder, highLightedControlId, highlightedControlChanged}) => { - const classes = useStyles(); - const { simConnectData } = useSimConnectData(); - const { isUsedArduino, isEnabledSound } = useLocalStorageData().configurationData; - const imagePath = getImagePath(panelInfo); - const dataBindingValue = simConnectData[ctrl.binding?.variable]; - - const setupBackgroundImageStyle = () => { - if (ctrl.binding !== undefined && ctrl.binding.images !== undefined) { - let image = ctrl.binding.images.find(x => x.val === dataBindingValue); - - if(dataBindingValue === undefined) - { - image = ctrl.binding.images[0]; - } - else if (image === undefined && dataBindingValue !== undefined) - { - console.log('Missing binding value for bindable image button control... Button Id: ' + ctrl.id + ' Data Value: ' + dataBindingValue); - image = ctrl.binding.images[0]; - } - - if (image.rotate !== undefined) - return { backgroundImage: `url(${imagePath}${image.url})`, transform: `rotate(${image.rotate}deg)` }; - else - return { backgroundImage: `url(${imagePath}${image.url})` }; - } - - return {}; - } - - const handleOnClick = (event) => { - if (ctrl.highlight === undefined || ctrl.highlight && highlightedControlChanged !== null) - highlightedControlChanged(ctrl.id); - else - highlightedControlChanged(null); - - if (ctrl.action != null) - playSound(isEnabledSound); - - if (!isUsedArduino && (ctrl.action.useEncoder || ctrl.action.useDualEncoder)) - showEncoder(event, ctrl.action.useDualEncoder === undefined ? false : ctrl.action.useDualEncoder); - - execActions(event, ctrl.action, simConnectData, showEncoder); - } - - return useMemo(() =>( -
- handleOnClick(event)} /> -
- ), [ctrl, dataBindingValue, isUsedArduino, isEnabledSound, highLightedControlId]) -} - -const DigitDisplay = ({ctrl, panelInfo}) => { - const classes = useStyles(); - const windowHeight = useWindowDimensions().windowHeight; - const dataBindingValue = useSimConnectData().simConnectData[ctrl.binding?.variable]; - - return useMemo(() =>( -
- - -
- ), [ctrl, dataBindingValue, windowHeight]) -} - -const WebBrowser = ({ctrl, panelInfo}) => { - const classes = useStyles(); - - return useMemo(() =>( -
-