diff --git a/dcid.json b/dcid.json new file mode 100644 index 00000000..07213d51 --- /dev/null +++ b/dcid.json @@ -0,0 +1,3912 @@ +{ + "03EC1770-FD5A-11E3-9967-0015C5F3F612": { + "band": "JB", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03EC5E6A-FD5A-11E3-9058-0015C5F3F612": { + "band": "X51", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03ECA0F0-FD5A-11E3-A1C6-0015C5F3F612": { + "band": "R52", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03ECE6B4-FD5A-11E3-B768-0015C5F3F612": { + "band": "JB", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03ED6706-FD5A-11E3-8F81-0015C5F3F612": { + "band": "G56", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03EF431E-FD5A-11E3-9619-0015C5F3F612": { + "band": "R52", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03EF81F8-FD5A-11E3-B109-0015C5F3F612": { + "band": "G56", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03EFE9C2-FD5A-11E3-87B5-0015C5F3F612": { + "band": "K56", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03F09D7C-FD5A-11E3-935B-0015C5F3F612": { + "band": "K56", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03F15118-FD5A-11E3-A73A-0015C5F3F612": { + "band": "", + "model": "ANI22", + "model_name": "ANI22 Audio Network Interface (Dante Only)" + }, + "03F22DA4-FD5A-11E3-8CB3-0015C5F3F612": { + "band": "", + "model": "ANI22", + "model_name": "ANI22 Audio Network Interface (Dante Only)" + }, + "03F27516-FD5A-11E3-B02F-0015C5F3F612": { + "band": "", + "model": "ANIUSB", + "model_name": "ANIUSB-MATRIX USB Audio Network Interface (Dante Only)" + }, + "03F34004-FD5A-11E3-B70F-0015C5F3F612": { + "band": "Z20", + "model": "QLX-D1GTx", + "model_name": "QLX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "03F39374-FD5A-11E3-A346-0015C5F3F612": { + "band": "Z20", + "model": "QLX-D1GTx", + "model_name": "QLX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "03F4A02A-FD5A-11E3-B1FF-0015C5F3F612": { + "band": "Z20", + "model": "QLX-D1GSingle", + "model_name": "QLX-D Extended Bands Single-Channel Receiver" + }, + "03F4DB62-FD5A-11E3-8F40-0015C5F3F612": { + "band": "Z20", + "model": "ULX-D1GTx", + "model_name": "ULX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "03F52356-FD5A-11E3-8002-0015C5F3F612": { + "band": "Z20", + "model": "ULX-D1GTx", + "model_name": "ULX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "03F600D2-FD5A-11E3-A00E-0015C5F3F612": { + "band": "Z20", + "model": "ULX-D1GSingle", + "model_name": "ULX-D Extended Bands Single-Channel Receiver" + }, + "03F63D2C-FD5A-11E3-80C5-0015C5F3F612": { + "band": "Z20", + "model": "ULX-D1GDual", + "model_name": "ULX-D Extended Bands Dual-Channel Receiver" + }, + "03F7A572-FD5A-11E3-B6ED-0015C5F3F612": { + "band": "Z20", + "model": "ULX-D1GQuad", + "model_name": "ULX-D Extended Bands Quad-Channel Receiver" + }, + "03F8D6CC-FD5A-11E3-B599-0015C5F3F612": { + "band": "Z20", + "model": "ULX-DBG1GTx", + "model_name": "ULX-D Extended Bands Boundary / Gooseneck Transmitter" + }, + "03F992E2-FD5A-11E3-A8DD-0015C5F3F612": { + "band": "G62", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03FA24B4-FD5A-11E3-882D-0015C5F3F612": { + "band": "G62", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03FAB32A-FD5A-11E3-B44E-0015C5F3F612": { + "band": "G62", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03FB5BE0-FD5A-11E3-BC95-0015C5F3F612": { + "band": "G62", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03FBE48E-FD5A-11E3-A2A7-0015C5F3F612": { + "band": "G62", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03FC14A4-FD5A-11E3-9480-0015C5F3F612": { + "band": "G54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03FCD7F4-FD5A-11E3-A4F6-0015C5F3F612": { + "band": "G55", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03FDC47A-FD5A-11E3-B3F3-0015C5F3F612": { + "band": "G56", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03FE0606-FD5A-11E3-9850-0015C5F3F612": { + "band": "G62", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03FE5142-FD5A-11E3-AA08-0015C5F3F612": { + "band": "H54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03FEFC28-FD5A-11E3-AA89-0015C5F3F612": { + "band": "K57", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "03FF8A8A-FD5A-11E3-B767-0015C5F3F612": { + "band": "L54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "0400358E-FD5A-11E3-B2AE-0015C5F3F612": { + "band": "Z20", + "model": "ULX-DBG1GTx", + "model_name": "ULX-D Extended Bands Boundary / Gooseneck Transmitter" + }, + "04006D1A-FD5A-11E3-8CBA-0015C5F3F612": { + "band": "", + "model": "ANI4IN-R1", + "model_name": "ANI4IN Audio Network Interface" + }, + "04016238-FD5A-11E3-B63E-0015C5F3F612": { + "band": "", + "model": "ANI4IN-R1", + "model_name": "ANI4IN Audio Network Interface" + }, + "0401A9E6-FD5A-11E3-8FC4-0015C5F3F612": { + "band": "", + "model": "ANI22-R1", + "model_name": "ANI22 Audio Network Interface" + }, + "04022AC4-FD5A-11E3-BF10-0015C5F3F612": { + "band": "", + "model": "ANI22-R1", + "model_name": "ANI22 Audio Network Interface" + }, + "04030FA2-FD5A-11E3-97DF-0015C5F3F612": { + "band": "", + "model": "ANI4OUT-R1", + "model_name": "ANI4OUT Audio Network Interface" + }, + "040383D8-FD5A-11E3-AB29-0015C5F3F612": { + "band": "", + "model": "ANI4OUT-R1", + "model_name": "ANI4OUT Audio Network Interface" + }, + "0403D70C-FD5A-11E3-90DB-0015C5F3F612": { + "band": "", + "model": "MXA310-R1", + "model_name": "MXA310 Table Array Microphone" + }, + "04042234-FD5A-11E3-949E-0015C5F3F612": { + "band": "", + "model": "ANIUSB-R1", + "model_name": "ANIUSB-MATRIX USB Audio Network Interface" + }, + "04052E5E-FD5A-11E3-803B-0015C5F3F612": { + "band": "G62", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "04057904-FD5A-11E3-9903-0015C5F3F612": { + "band": "G62", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "0405BFCC-FD5A-11E3-BEEE-0015C5F3F612": { + "band": "G62", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "040606A8-FD5A-11E3-92B8-0015C5F3F612": { + "band": "G62", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "04064B54-FD5A-11E3-B704-0015C5F3F612": { + "band": "G62", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "040688F8-FD5A-11E3-81EF-0015C5F3F612": { + "band": "G62", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "0406C584-FD5A-11E3-AD62-0015C5F3F612": { + "band": "G62", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "0407257E-FD5A-11E3-A21F-0015C5F3F612": { + "band": "G62", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "04076764-FD5A-11E3-9179-0015C5F3F612": { + "band": "G62", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "0407B26E-FD5A-11E3-92D0-0015C5F3F612": { + "band": "G62", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "0408741A-FD5A-11E3-A468-0015C5F3F612": { + "band": "G57", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "0408BED4-FD5A-11E3-9651-0015C5F3F612": { + "band": "K54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "0408FA16-FD5A-11E3-B65D-0015C5F3F612": { + "band": "G57", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "04093D8C-FD5A-11E3-A432-0015C5F3F612": { + "band": "K54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "04099ED0-FD5A-11E3-B7AB-0015C5F3F612": { + "band": "G57", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "0409E728-FD5A-11E3-B75E-0015C5F3F612": { + "band": "K54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "040A29AE-FD5A-11E3-AF24-0015C5F3F612": { + "band": "G57", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "040A6B1C-FD5A-11E3-8AC3-0015C5F3F612": { + "band": "K54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "040AA794-FD5A-11E3-9281-0015C5F3F612": { + "band": "G57", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "040AEDD0-FD5A-11E3-A0DF-0015C5F3F612": { + "band": "K54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "040B52DE-FD5A-11E3-9D19-0015C5F3F612": { + "band": "G57", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "040B9708-FD5A-11E3-B032-0015C5F3F612": { + "band": "K54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "041382D8-FD5A-11E3-A8AA-0015C5F3F612": { + "band": "G62", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "0413C9DC-FD5A-11E3-A892-0015C5F3F612": { + "band": "G62", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "041409CE-FD5A-11E3-86D4-0015C5F3F612": { + "band": "H62", + "model": "P3T", + "model_name": "PSM300 Transmitter" + }, + "041460F4-FD5A-11E3-986B-0015C5F3F612": { + "band": "H62", + "model": "P3R", + "model_name": "PSM300 Receiver" + }, + "0414ABB8-FD5A-11E3-9216-0015C5F3F612": { + "band": "H62", + "model": "P3RA", + "model_name": "PSM300 Receiver Alternate" + }, + "04153092-FD5A-11E3-BB05-0015C5F3F612": { + "band": "G52", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "04157872-FD5A-11E3-9B33-0015C5F3F612": { + "band": "JA", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "0415C066-FD5A-11E3-9969-0015C5F3F612": { + "band": "Q51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "04160364-FD5A-11E3-B648-0015C5F3F612": { + "band": "J50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041659B8-FD5A-11E3-8E91-0015C5F3F612": { + "band": "X50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041692FC-FD5A-11E3-B243-0015C5F3F612": { + "band": "R52", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "0416CAF6-FD5A-11E3-AC44-0015C5F3F612": { + "band": "G50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "04172852-FD5A-11E3-A02E-0015C5F3F612": { + "band": "L51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "04176178-FD5A-11E3-83FC-0015C5F3F612": { + "band": "G51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "04179CB0-FD5A-11E3-B724-0015C5F3F612": { + "band": "X53", + "model": "ULX-DIsmTx", + "model_name": "ULX-D 900 MHz ISM Bodypack / Handheld Transmitter" + }, + "0417D31A-FD5A-11E3-9C2D-0015C5F3F612": { + "band": "X52", + "model": "ULX-DIsmTx", + "model_name": "ULX-D 900 MHz ISM Bodypack / Handheld Transmitter" + }, + "04180F38-FD5A-11E3-BB53-0015C5F3F612": { + "band": "X54", + "model": "ULX-DIsmTx", + "model_name": "ULX-D 900 MHz ISM Bodypack / Handheld Transmitter" + }, + "04184890-FD5A-11E3-8699-0015C5F3F612": { + "band": "L50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "04188B34-FD5A-11E3-9BED-0015C5F3F612": { + "band": "R51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "0418C842-FD5A-11E3-AC97-0015C5F3F612": { + "band": "X51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "04190EF6-FD5A-11E3-853A-0015C5F3F612": { + "band": "H50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041972EC-FD5A-11E3-A1FB-0015C5F3F612": { + "band": "J51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "0419B824-FD5A-11E3-9B1F-0015C5F3F612": { + "band": "P51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "0419FDB6-FD5A-11E3-949B-0015C5F3F612": { + "band": "AB", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041A4456-FD5A-11E3-B9DF-0015C5F3F612": { + "band": "JB", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041AB27E-FD5A-11E3-8780-0015C5F3F612": { + "band": "K51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041AF91E-FD5A-11E3-A48F-0015C5F3F612": { + "band": "H52", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041B3D34-FD5A-11E3-B177-0015C5F3F612": { + "band": "G62", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041B83E8-FD5A-11E3-86E9-0015C5F3F612": { + "band": "H51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041BBF7A-FD5A-11E3-9693-0015C5F3F612": { + "band": "L53", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041C049E-FD5A-11E3-860E-0015C5F3F612": { + "band": "JB", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041C462A-FD5A-11E3-A92E-0015C5F3F612": { + "band": "R52", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041C8DB0-FD5A-11E3-9225-0015C5F3F612": { + "band": "X53", + "model": "ULX-DIsmTx", + "model_name": "ULX-D 900 MHz ISM Bodypack / Handheld Transmitter" + }, + "041CF0FC-FD5A-11E3-9FDC-0015C5F3F612": { + "band": "L53", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041D399A-FD5A-11E3-8625-0015C5F3F612": { + "band": "JA", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041D7CAC-FD5A-11E3-90AF-0015C5F3F612": { + "band": "R51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041DC2AC-FD5A-11E3-B296-0015C5F3F612": { + "band": "X50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041DFCFE-FD5A-11E3-B837-0015C5F3F612": { + "band": "J50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041E763E-FD5A-11E3-80BE-0015C5F3F612": { + "band": "X51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041EC152-FD5A-11E3-A5BC-0015C5F3F612": { + "band": "G50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041F0018-FD5A-11E3-8163-0015C5F3F612": { + "band": "Q51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041F393E-FD5A-11E3-AD9A-0015C5F3F612": { + "band": "L50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041F6760-FD5A-11E3-9DD5-0015C5F3F612": { + "band": "X52", + "model": "ULX-DIsmTx", + "model_name": "ULX-D 900 MHz ISM Bodypack / Handheld Transmitter" + }, + "041FA34C-FD5A-11E3-ABEF-0015C5F3F612": { + "band": "G51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "041FDB82-FD5A-11E3-9A74-0015C5F3F612": { + "band": "L51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "04203546-FD5A-11E3-9C8C-0015C5F3F612": { + "band": "P51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "04206FCA-FD5A-11E3-AE33-0015C5F3F612": { + "band": "K51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "0420AB0C-FD5A-11E3-A785-0015C5F3F612": { + "band": "H50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "0420E3BA-FD5A-11E3-A115-0015C5F3F612": { + "band": "J51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "042125C8-FD5A-11E3-A5C2-0015C5F3F612": { + "band": "X54", + "model": "ULX-DIsmTx", + "model_name": "ULX-D 900 MHz ISM Bodypack / Handheld Transmitter" + }, + "04216AE2-FD5A-11E3-A159-0015C5F3F612": { + "band": "H51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "0421B164-FD5A-11E3-A3C0-0015C5F3F612": { + "band": "G52", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "04220C54-FD5A-11E3-A0E5-0015C5F3F612": { + "band": "AB", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "0422538A-FD5A-11E3-935E-0015C5F3F612": { + "band": "H52", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "042299B2-FD5A-11E3-83E1-0015C5F3F612": { + "band": "G62", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "0423D214-FD5A-11E3-8123-0015C5F3F612": { + "band": "J8A", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "042410C6-FD5A-11E3-B916-0015C5F3F612": { + "band": "L8A", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "04246FBC-FD5A-11E3-A5AC-0015C5F3F612": { + "band": "J8A", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "0424B4FE-FD5A-11E3-AECA-0015C5F3F612": { + "band": "L8A", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "04262A5A-FD5A-11E3-842A-0015C5F3F612": { + "band": "L50A", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "042692D8-FD5A-11E3-BC6F-0015C5F3F612": { + "band": "J50A", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "0426C91A-FD5A-11E3-BD08-0015C5F3F612": { + "band": "L50A", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "04270C86-FD5A-11E3-92A2-0015C5F3F612": { + "band": "J50A", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "04275D26-FD5A-11E3-9B39-0015C5F3F612": { + "band": "J50A", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "042799E4-FD5A-11E3-A4AA-0015C5F3F612": { + "band": "L50A", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "0427D274-FD5A-11E3-8777-0015C5F3F612": { + "band": "J50A", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "04280BFE-FD5A-11E3-A759-0015C5F3F612": { + "band": "L50A", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "0428456A-FD5A-11E3-99FF-0015C5F3F612": { + "band": "L50A", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "04289722-FD5A-11E3-A54C-0015C5F3F612": { + "band": "L50A", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "0428CFC6-FD5A-11E3-9F6A-0015C5F3F612": { + "band": "J50A", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "04290824-FD5A-11E3-B1DA-0015C5F3F612": { + "band": "J50A", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "04297520-FD5A-11E3-B499-0015C5F3F612": { + "band": "J50A", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "0429B60C-FD5A-11E3-B270-0015C5F3F612": { + "band": "J50A", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "042A062A-FD5A-11E3-BAE0-0015C5F3F612": { + "band": "L50A", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "042A45CC-FD5A-11E3-99DE-0015C5F3F612": { + "band": "L50A", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "042A874E-FD5A-11E3-8A75-0015C5F3F612": { + "band": "L50A", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "042ACEE8-FD5A-11E3-B727-0015C5F3F612": { + "band": "J50A", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "042B3860-FD5A-11E3-A9D3-0015C5F3F612": { + "band": "L50A", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "042B805E-FD5A-11E3-A5E4-0015C5F3F612": { + "band": "J50A", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "042BCC3A-FD5A-11E3-AFBE-0015C5F3F612": { + "band": "J5A", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "042C11F4-FD5A-11E3-8E23-0015C5F3F612": { + "band": "L3A", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "042C538A-FD5A-11E3-B273-0015C5F3F612": { + "band": "J5A", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "042C9912-FD5A-11E3-BA2E-0015C5F3F612": { + "band": "L3A", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "042D1C02-FD5A-11E3-B298-0015C5F3F612": { + "band": "R52", + "model": "AD4D", + "model_name": "AXT-D Dual-Channel Receiver" + }, + "042D5A00-FD5A-11E3-A553-0015C5F3F612": { + "band": "R52", + "model": "AD4Q", + "model_name": "AXT-D Quad-Channel Receiver" + }, + "042DC742-FD5A-11E3-9900-0015C5F3F612": { + "band": "L50A", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "042E0C48-FD5A-11E3-9B8B-0015C5F3F612": { + "band": "J50A", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "042E5298-FD5A-11E3-A766-0015C5F3F612": { + "band": "J50A", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "042E9EEC-FD5A-11E3-BE44-0015C5F3F612": { + "band": "L50A", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "04454354-FD5A-11E3-AD70-0015C5F3F612": { + "band": "L50", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "04458864-FD5A-11E3-A428-0015C5F3F612": { + "band": "L50", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "28672756-024C-416B-A552-527E1B5091E1": { + "band": "", + "model": "GLXD4R", + "model_name": "GLX-D Rackmount Receiver" + }, + "28672756-024C-416B-A552-527E1B5091E2": { + "band": "", + "model": "GLXD4R-RECOVERY-MODE", + "model_name": "Corrupt GLX-D Rackmount Receiver" + }, + "2B000000-0000-11DD-A000-000EDDDDDDDD": { + "band": "", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "A50DAD1A-A892-418E-A09C-DA11E9414F32": { + "band": "", + "model": "UA846Z2", + "model_name": "GLX-D Frequency Manager" + }, + "A50DAD1A-A892-418E-A09C-DA11E9414F33": { + "band": "", + "model": "UA846Z2-RECOVERY-MODE", + "model_name": "Corrupt GLX-D Frequency Manager" + }, + "CCB8A40C-E139-11DF-94A5-0015C5F3F612": { + "band": "", + "model": "UR4S", + "model_name": "UHF-R Single-Channel Receiver" + }, + "CCB8DB5C-E139-11DF-8A4C-0015C5F3F612": { + "band": "", + "model": "UR4D", + "model_name": "UHF-R Dual-Channel Receiver" + }, + "CCB90E10-E139-11DF-8E92-0015C5F3F612": { + "band": "", + "model": "AXT400", + "model_name": "AXT Dual-Channel Receiver" + }, + "CCB93E94-E139-11DF-850C-0015C5F3F612": { + "band": "", + "model": "AXT400", + "model_name": "AXT Dual-Channel Receiver" + }, + "CCB96C16-E139-11DF-88C7-0015C5F3F612": { + "band": "", + "model": "AXT400", + "model_name": "AXT Dual-Channel Receiver" + }, + "CCB9F596-E139-11DF-9E89-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBA244E-E139-11DF-91DB-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBA5270-E139-11DF-87AA-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBA7FDE-E139-11DF-92BF-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBAAA04-E139-11DF-82ED-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBAD83A-E139-11DF-946E-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBB07B0-E139-11DF-99A1-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBB3744-E139-11DF-9CCC-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBB6462-E139-11DF-9F93-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBB8E7E-E139-11DF-8C7C-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBBBD40-E139-11DF-89E8-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBBEC20-E139-11DF-86B5-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBC1C22-E139-11DF-8548-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBC4A58-E139-11DF-9348-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBC7596-E139-11DF-9B3F-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBCA214-E139-11DF-9D6B-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBCCE2E-E139-11DF-8D83-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBCFB56-E139-11DF-8D83-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBD2784-E139-11DF-87C6-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBD4F52-E139-11DF-9EF7-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBD77D4-E139-11DF-93CE-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBDA010-E139-11DF-8DE1-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBDCCFC-E139-11DF-91CE-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBDFBFA-E139-11DF-8954-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBE2BCA-E139-11DF-8200-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBE5BCC-E139-11DF-807C-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBE889A-E139-11DF-899C-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBEB342-E139-11DF-8701-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBEE254-E139-11DF-89D9-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBF147C-E139-11DF-84A1-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBF3D44-E139-11DF-876A-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBF654E-E139-11DF-8F66-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBF915E-E139-11DF-88E9-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBFB90E-E139-11DF-8873-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCBFE1CC-E139-11DF-9A97-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC00A1C-E139-11DF-94B6-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC03924-E139-11DF-9C07-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC06908-E139-11DF-8797-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC09608-E139-11DF-97EC-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC0BDF4-E139-11DF-8976-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC0E536-E139-11DF-90DC-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC10BCE-E139-11DF-9DBA-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC131DA-E139-11DF-88C3-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC158FE-E139-11DF-8B58-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC17F32-E139-11DF-8780-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC1AB42-E139-11DF-8738-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC1DB08-E139-11DF-84FB-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC20BB4-E139-11DF-9C88-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC23A30-E139-11DF-8F67-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC26974-E139-11DF-9316-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC2984A-E139-11DF-8A94-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC2C2D4-E139-11DF-9DB2-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC2F344-E139-11DF-93D9-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC32314-E139-11DF-93D8-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC350C8-E139-11DF-8288-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC37DD2-E139-11DF-9796-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC3ABC2-E139-11DF-89C2-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC3D764-E139-11DF-9181-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC400A4-E139-11DF-8157-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC42BC4-E139-11DF-8863-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC458EC-E139-11DF-9F0F-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC48628-E139-11DF-90A6-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC4B29C-E139-11DF-998D-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC4DEC0-E139-11DF-8213-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC50E68-E139-11DF-9FF4-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC541EE-E139-11DF-8CF1-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCC57006-E139-11DF-9451-0015C5F3F612": { + "band": "", + "model": "AXT600", + "model_name": "AXT Spectrum Manager" + }, + "CCC59BD0-E139-11DF-8306-0015C5F3F612": { + "band": "", + "model": "AXT610", + "model_name": "AXT ShowLink Access Point" + }, + "CCC5F1B6-E139-11DF-9B0C-0015C5F3F612": { + "band": "", + "model": "AXT63x", + "model_name": "AXT Antenna Distribution Amplifier" + }, + "CCC61826-E139-11DF-979F-0015C5F3F612": { + "band": "", + "model": "AXT63x", + "model_name": "AXT Antenna Distribution Amplifier" + }, + "CCC63F04-E139-11DF-8EFB-0015C5F3F612": { + "band": "", + "model": "AXT900", + "model_name": "AXT Rackmount Battery Charger" + }, + "CCC665EC-E139-11DF-86B9-0015C5F3F612": { + "band": "G10", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCC68C52-E139-11DF-8742-0015C5F3F612": { + "band": "G10E", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCC6B772-E139-11DF-855C-0015C5F3F612": { + "band": "H8Z", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCC6E562-E139-11DF-9006-0015C5F3F612": { + "band": "J8", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCC713E8-E139-11DF-8462-0015C5F3F612": { + "band": "J8E", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCC740B6-E139-11DF-8554-0015C5F3F612": { + "band": "K10E", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCC76DF2-E139-11DF-860C-0015C5F3F612": { + "band": "L8", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCC79CC8-E139-11DF-9E05-0015C5F3F612": { + "band": "L8E", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCC7CC66-E139-11DF-8E06-0015C5F3F612": { + "band": "L9E", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCC7F9FC-E139-11DF-9E4A-0015C5F3F612": { + "band": "G11", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCC827D8-E139-11DF-863F-0015C5F3F612": { + "band": "P8", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCC85654-E139-11DF-8F82-0015C5F3F612": { + "band": "Q21", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCC8AF46-E139-11DF-86CE-0015C5F3F612": { + "band": "Q22E", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCC8DB92-E139-11DF-83CC-0015C5F3F612": { + "band": "R26", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCC909FA-E139-11DF-8FFB-0015C5F3F612": { + "band": "R27", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCC93646-E139-11DF-81B4-0015C5F3F612": { + "band": "A24", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCC95F5E-E139-11DF-9591-0015C5F3F612": { + "band": "X1", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCC98740-E139-11DF-810A-0015C5F3F612": { + "band": "X2", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCC9B30A-E139-11DF-9AE6-0015C5F3F612": { + "band": "G10", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCC9E1FE-E139-11DF-9C36-0015C5F3F612": { + "band": "G10E", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCCA0F4E-E139-11DF-8081-0015C5F3F612": { + "band": "H8Z", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCCA3C4E-E139-11DF-974C-0015C5F3F612": { + "band": "J8", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCCA6C82-E139-11DF-8B13-0015C5F3F612": { + "band": "J8E", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCCA9D60-E139-11DF-8E21-0015C5F3F612": { + "band": "K10E", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCCACA9C-E139-11DF-9878-0015C5F3F612": { + "band": "L8", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCCAF74C-E139-11DF-9E2A-0015C5F3F612": { + "band": "L8E", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCCB242E-E139-11DF-8527-0015C5F3F612": { + "band": "L9E", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCCB5232-E139-11DF-8302-0015C5F3F612": { + "band": "G11", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCCB81B2-E139-11DF-981D-0015C5F3F612": { + "band": "P8", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCCBAA98-E139-11DF-8F8C-0015C5F3F612": { + "band": "Q21", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCCBFB6A-E139-11DF-87FE-0015C5F3F612": { + "band": "Q22E", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCCC2950-E139-11DF-931E-0015C5F3F612": { + "band": "R26", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCCC579A-E139-11DF-98FD-0015C5F3F612": { + "band": "R27", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCCC8562-E139-11DF-8202-0015C5F3F612": { + "band": "A24", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCCCB172-E139-11DF-86F9-0015C5F3F612": { + "band": "X1", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCCCD922-E139-11DF-8DD9-0015C5F3F612": { + "band": "X2", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCCD012C-E139-11DF-8DF8-0015C5F3F612": { + "band": "G50", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCCD28F0-E139-11DF-8A5A-0015C5F3F612": { + "band": "G51", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCCD505A-E139-11DF-9100-0015C5F3F612": { + "band": "H51", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCCD7788-E139-11DF-9651-0015C5F3F612": { + "band": "J50", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCCD9E66-E139-11DF-9E6B-0015C5F3F612": { + "band": "K51", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCCDC544-E139-11DF-9E70-0015C5F3F612": { + "band": "L50", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCCDEC2C-E139-11DF-9C8E-0015C5F3F612": { + "band": "L51", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCCE197C-E139-11DF-88DE-0015C5F3F612": { + "band": "P51", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCCE4884-E139-11DF-9B35-0015C5F3F612": { + "band": "Q51", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCCE73EA-E139-11DF-96B6-0015C5F3F612": { + "band": "R51", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCCEA2A2-E139-11DF-8260-0015C5F3F612": { + "band": "X50", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCCED3F8-E139-11DF-9A61-0015C5F3F612": { + "band": "AB", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCCF2B0A-E139-11DF-8326-0015C5F3F612": { + "band": "", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCCF5206-E139-11DF-87FD-0015C5F3F612": { + "band": "G50", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCCF7CD6-E139-11DF-8870-0015C5F3F612": { + "band": "G51", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCCFAB70-E139-11DF-8794-0015C5F3F612": { + "band": "H51", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCCFDA6E-E139-11DF-889B-0015C5F3F612": { + "band": "J50", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCD00976-E139-11DF-8D04-0015C5F3F612": { + "band": "K51", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCD033F6-E139-11DF-86BB-0015C5F3F612": { + "band": "L50", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCD060BA-E139-11DF-9DB3-0015C5F3F612": { + "band": "L51", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCD08E78-E139-11DF-9CCD-0015C5F3F612": { + "band": "P51", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCD0BDD0-E139-11DF-98EC-0015C5F3F612": { + "band": "Q51", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCD0E922-E139-11DF-969E-0015C5F3F612": { + "band": "R51", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCD11820-E139-11DF-9512-0015C5F3F612": { + "band": "X50", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCD145AC-E139-11DF-851D-0015C5F3F612": { + "band": "AB", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCD19DAE-E139-11DF-949E-0015C5F3F612": { + "band": "", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCD1CAF4-E139-11DF-9F98-0015C5F3F612": { + "band": "G50", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCD1FBDC-E139-11DF-8CE6-0015C5F3F612": { + "band": "G51", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCD229A4-E139-11DF-81AD-0015C5F3F612": { + "band": "H51", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCD25320-E139-11DF-9539-0015C5F3F612": { + "band": "J50", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCD27AA8-E139-11DF-9BF7-0015C5F3F612": { + "band": "K51", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCD2A898-E139-11DF-84DA-0015C5F3F612": { + "band": "L50", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCD2D7AA-E139-11DF-8ABA-0015C5F3F612": { + "band": "L51", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCD3048C-E139-11DF-9C13-0015C5F3F612": { + "band": "P51", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCD331C8-E139-11DF-9598-0015C5F3F612": { + "band": "Q51", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCD3596E-E139-11DF-9DD5-0015C5F3F612": { + "band": "R51", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCD38150-E139-11DF-8679-0015C5F3F612": { + "band": "X50", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCD3A842-E139-11DF-8DA7-0015C5F3F612": { + "band": "AB", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCD3F5A4-E139-11DF-95EF-0015C5F3F612": { + "band": "", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCD41B9C-E139-11DF-8385-0015C5F3F612": { + "band": "G50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD441B2-E139-11DF-9AF3-0015C5F3F612": { + "band": "G51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD467BE-E139-11DF-84A0-0015C5F3F612": { + "band": "H51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD48DC0-E139-11DF-8063-0015C5F3F612": { + "band": "J50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD4B368-E139-11DF-9054-0015C5F3F612": { + "band": "K51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD4D8F2-E139-11DF-9C8B-0015C5F3F612": { + "band": "L50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD4FEE0-E139-11DF-81C1-0015C5F3F612": { + "band": "L51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD526CC-E139-11DF-97F3-0015C5F3F612": { + "band": "P51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD55912-E139-11DF-9982-0015C5F3F612": { + "band": "AB", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD5882E-E139-11DF-85DA-0015C5F3F612": { + "band": "Q51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD5B25E-E139-11DF-9BA1-0015C5F3F612": { + "band": "JB", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD5DA40-E139-11DF-86A6-0015C5F3F612": { + "band": "R51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD6013C-E139-11DF-824F-0015C5F3F612": { + "band": "X50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD627F2-E139-11DF-84D5-0015C5F3F612": { + "band": "JA", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD65038-E139-11DF-8B9F-0015C5F3F612": { + "band": "G50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD67BA8-E139-11DF-82D0-0015C5F3F612": { + "band": "G51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD6A9B6-E139-11DF-84F8-0015C5F3F612": { + "band": "H51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD6D99A-E139-11DF-96A3-0015C5F3F612": { + "band": "J50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD70578-E139-11DF-87AC-0015C5F3F612": { + "band": "K51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD733D6-E139-11DF-8BAF-0015C5F3F612": { + "band": "L50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD7604A-E139-11DF-81E9-0015C5F3F612": { + "band": "L51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD78DCC-E139-11DF-86E1-0015C5F3F612": { + "band": "P51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD7B89C-E139-11DF-96AE-0015C5F3F612": { + "band": "Q51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD7E6BE-E139-11DF-8CB8-0015C5F3F612": { + "band": "R51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD81418-E139-11DF-9A45-0015C5F3F612": { + "band": "X50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD8403C-E139-11DF-85EB-0015C5F3F612": { + "band": "AB", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD86BA2-E139-11DF-832B-0015C5F3F612": { + "band": "JB", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD894C4-E139-11DF-977E-0015C5F3F612": { + "band": "JA", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCD8BBE8-E139-11DF-9C12-0015C5F3F612": { + "band": "", + "model": "IHOP_APT_4x1", + "model_name": "MXW 4-Channel Access Point Transceiver" + }, + "CCD8E23A-E139-11DF-9700-0015C5F3F612": { + "band": "", + "model": "IHOP_APT_8x2", + "model_name": "MXW 8-Channel Access Point Transceiver" + }, + "CCD90936-E139-11DF-8CEC-0015C5F3F612": { + "band": "", + "model": "IHOP_CH", + "model_name": "MXW 2/4/8-Bay Networked Charging Station" + }, + "CCD92FE2-E139-11DF-9D0B-0015C5F3F612": { + "band": "", + "model": "IHOP_CH", + "model_name": "MXW 2/4/8-Bay Networked Charging Station" + }, + "CCD9579C-E139-11DF-8664-0015C5F3F612": { + "band": "", + "model": "IHOP_ANI_4x1", + "model_name": "MXW 4-Channel Audio Network Interface" + }, + "CCD97F60-E139-11DF-89B6-0015C5F3F612": { + "band": "", + "model": "IHOP_ANI_8x2", + "model_name": "MXW 8-Channel Audio Network Interface" + }, + "CCD9A5E4-E139-11DF-89BE-0015C5F3F612": { + "band": "", + "model": "IHOP_MIC", + "model_name": "MXW Transmitter" + }, + "CCD9CC5E-E139-11DF-82F9-0015C5F3F612": { + "band": "", + "model": "IHOP_MIC", + "model_name": "MXW Transmitter" + }, + "CCD9F292-E139-11DF-8F50-0015C5F3F612": { + "band": "", + "model": "IHOP_MIC", + "model_name": "MXW Transmitter" + }, + "CCDA1AC4-E139-11DF-92D4-0015C5F3F612": { + "band": "", + "model": "IHOP_MIC", + "model_name": "MXW Transmitter" + }, + "CCDA40E4-E139-11DF-8DAE-0015C5F3F612": { + "band": "", + "model": "SCM820", + "model_name": "SCM820 Digital IntelliMix Automatic Mixer" + }, + "CCDA66E6-E139-11DF-8549-0015C5F3F612": { + "band": "", + "model": "SCM820", + "model_name": "SCM820 Digital IntelliMix Automatic Mixer" + }, + "CCDA8E0A-E139-11DF-8C7A-0015C5F3F612": { + "band": "", + "model": "WWBWin", + "model_name": "Wireless Workbench Installer (Windows)" + }, + "CCDA8E0A-E139-11DF-8C7A-0015C5F3F615": { + "band": "", + "model": "SUUMac", + "model_name": "Shure Update Utility Installer (Mac)" + }, + "CCDADA2C-E139-11DF-8999-0015C5F3F612": { + "band": "", + "model": "MW4D", + "model_name": "UHF-R(MW) Dual-Channel Receiver" + }, + "CCDF5764-E139-11DF-80C6-0015C5F3F612": { + "band": "G52", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCDF7E74-E139-11DF-9D28-0015C5F3F612": { + "band": "H52", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCDFA50C-E139-11DF-9331-0015C5F3F612": { + "band": "R52", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCDFCAB4-E139-11DF-94CE-0015C5F3F612": { + "band": "G52", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCDFF098-E139-11DF-98F5-0015C5F3F612": { + "band": "H52", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCE016AE-E139-11DF-9866-0015C5F3F612": { + "band": "R52", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCE03CA6-E139-11DF-9128-0015C5F3F612": { + "band": "G52", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCE0626C-E139-11DF-9733-0015C5F3F612": { + "band": "H52", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCE08788-E139-11DF-9A8A-0015C5F3F612": { + "band": "R52", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCE0ACE0-E139-11DF-98A3-0015C5F3F612": { + "band": "G52", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCE0DC9C-E139-11DF-9159-0015C5F3F612": { + "band": "H52", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCE10F78-E139-11DF-8B4B-0015C5F3F612": { + "band": "R52", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCE13E9E-E139-11DF-94C4-0015C5F3F612": { + "band": "G52", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCE16C98-E139-11DF-8EBF-0015C5F3F612": { + "band": "H52", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCE1948E-E139-11DF-895A-0015C5F3F612": { + "band": "R52", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCE1BAD6-E139-11DF-983D-0015C5F3F612": { + "band": "", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCE212C4-E139-11DF-8ED9-0015C5F3F612": { + "band": "", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCE292EE-E139-11DF-8DA3-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE2B94A-E139-11DF-9932-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE2DF9C-E139-11DF-95BB-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE30576-E139-11DF-9453-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE32D1C-E139-11DF-92B3-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE353C8-E139-11DF-9FBD-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE37A6A-E139-11DF-9DA0-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE39FB8-E139-11DF-976C-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE3C5CE-E139-11DF-8826-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE3EC2A-E139-11DF-9FBF-0015C5F3F612": { + "band": "", + "model": "SCM820", + "model_name": "SCM820 Digital IntelliMix Automatic Mixer" + }, + "CCE41308-E139-11DF-9803-0015C5F3F612": { + "band": "", + "model": "SCM820", + "model_name": "SCM820 Digital IntelliMix Automatic Mixer" + }, + "CCE43A4A-E139-11DF-897D-0015C5F3F612": { + "band": "", + "model": "AXT63x", + "model_name": "AXT Antenna Distribution Amplifier" + }, + "CCE46056-E139-11DF-8050-0015C5F3F612": { + "band": "", + "model": "AXT63x", + "model_name": "AXT Antenna Distribution Amplifier" + }, + "CCE48608-E139-11DF-8B4E-0015C5F3F612": { + "band": "X7", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CCE4ABF6-E139-11DF-9E1A-0015C5F3F612": { + "band": "X7", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CCE4D158-E139-11DF-9FE4-0015C5F3F612": { + "band": "X51", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCE4F778-E139-11DF-9C2F-0015C5F3F612": { + "band": "X51", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCE52004-E139-11DF-8A06-0015C5F3F612": { + "band": "X51", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCE54E94-E139-11DF-8F3C-0015C5F3F612": { + "band": "X51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCE57D24-E139-11DF-98B9-0015C5F3F612": { + "band": "X51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCE5DA76-E139-11DF-87B6-0015C5F3F612": { + "band": "", + "model": "AXT400", + "model_name": "AXT Dual-Channel Receiver" + }, + "CCE60686-E139-11DF-8674-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE635A2-E139-11DF-8324-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE664B4-E139-11DF-8AE7-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE692EA-E139-11DF-8353-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE6C184-E139-11DF-9E83-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE6EC68-E139-11DF-8547-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE718FA-E139-11DF-9060-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE7451E-E139-11DF-9212-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE77430-E139-11DF-88C6-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE7A32E-E139-11DF-9EB8-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE7D100-E139-11DF-8E50-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE7FF5E-E139-11DF-818C-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE84F0E-E139-11DF-9518-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE87BF0-E139-11DF-8A2A-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE8A77E-E139-11DF-88C7-0015C5F3F612": { + "band": "", + "model": "AXTTx", + "model_name": "AXT Transmitter" + }, + "CCE8D7E4-E139-11DF-86E4-0015C5F3F612": { + "band": "G50", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCE90598-E139-11DF-9338-0015C5F3F612": { + "band": "G51", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCE930CC-E139-11DF-81B8-0015C5F3F612": { + "band": "G52", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCE96056-E139-11DF-934B-0015C5F3F612": { + "band": "H50", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCE98EE6-E139-11DF-968A-0015C5F3F612": { + "band": "H51", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCE9B664-E139-11DF-9961-0015C5F3F612": { + "band": "H52", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCE9DF86-E139-11DF-8EAA-0015C5F3F612": { + "band": "H53", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCEA0E0C-E139-11DF-8B9F-0015C5F3F612": { + "band": "H54", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCEA3C10-E139-11DF-83A9-0015C5F3F612": { + "band": "J50", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCEA6B2C-E139-11DF-8F4D-0015C5F3F612": { + "band": "J52", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCEA95B6-E139-11DF-80DF-0015C5F3F612": { + "band": "JB", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCEAC054-E139-11DF-84BA-0015C5F3F612": { + "band": "K51", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCEAEB7E-E139-11DF-9331-0015C5F3F612": { + "band": "K52", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCEB13C4-E139-11DF-9218-0015C5F3F612": { + "band": "L50", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCEB3AC0-E139-11DF-9CD8-0015C5F3F612": { + "band": "L51", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCEB6928-E139-11DF-94E3-0015C5F3F612": { + "band": "L52", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCEB98C6-E139-11DF-91B5-0015C5F3F612": { + "band": "P51", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCEBC30A-E139-11DF-9F93-0015C5F3F612": { + "band": "P52", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCEBE9B6-E139-11DF-8016-0015C5F3F612": { + "band": "Q51", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCEC104E-E139-11DF-9C04-0015C5F3F612": { + "band": "S50", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCEC3722-E139-11DF-9804-0015C5F3F612": { + "band": "X51", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCEC5D24-E139-11DF-9303-0015C5F3F612": { + "band": "G50", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCEC8312-E139-11DF-8065-0015C5F3F612": { + "band": "G51", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCECADBA-E139-11DF-850B-0015C5F3F612": { + "band": "G52", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCECDC9A-E139-11DF-929A-0015C5F3F612": { + "band": "H50", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCED07CE-E139-11DF-95ED-0015C5F3F612": { + "band": "H51", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCED3398-E139-11DF-8707-0015C5F3F612": { + "band": "H52", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCED6390-E139-11DF-93CC-0015C5F3F612": { + "band": "H53", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCED8F82-E139-11DF-88C5-0015C5F3F612": { + "band": "H54", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCEDB700-E139-11DF-93CF-0015C5F3F612": { + "band": "J50", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCEDDDDE-E139-11DF-9009-0015C5F3F612": { + "band": "J51", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCEE05C0-E139-11DF-9473-0015C5F3F612": { + "band": "JB", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCEE3176-E139-11DF-9EFD-0015C5F3F612": { + "band": "K51", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCEE6164-E139-11DF-8572-0015C5F3F612": { + "band": "K52", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCEE8E64-E139-11DF-9987-0015C5F3F612": { + "band": "L50", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCEEBA88-E139-11DF-9923-0015C5F3F612": { + "band": "L51", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCEEE27E-E139-11DF-8797-0015C5F3F612": { + "band": "L52", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCEF0B28-E139-11DF-8C52-0015C5F3F612": { + "band": "P51", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCEF3206-E139-11DF-96A9-0015C5F3F612": { + "band": "P52", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCEF610E-E139-11DF-9D4A-0015C5F3F612": { + "band": "Q51", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCEF8EEA-E139-11DF-99CC-0015C5F3F612": { + "band": "S50", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCEFBC26-E139-11DF-8E11-0015C5F3F612": { + "band": "X51", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCEFE8FE-E139-11DF-8193-0015C5F3F612": { + "band": "G50", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF017B6-E139-11DF-988F-0015C5F3F612": { + "band": "G51", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF04542-E139-11DF-94CE-0015C5F3F612": { + "band": "G52", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF073D2-E139-11DF-91F1-0015C5F3F612": { + "band": "H50", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF0A28A-E139-11DF-9408-0015C5F3F612": { + "band": "H51", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF0D2AA-E139-11DF-8D22-0015C5F3F612": { + "band": "H52", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF0FFDC-E139-11DF-80BA-0015C5F3F612": { + "band": "H53", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF12A2A-E139-11DF-8576-0015C5F3F612": { + "band": "H54", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF15112-E139-11DF-9F9E-0015C5F3F612": { + "band": "J50", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF176E2-E139-11DF-917C-0015C5F3F612": { + "band": "J51", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF19EC4-E139-11DF-85BF-0015C5F3F612": { + "band": "JB", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF1C4DA-E139-11DF-8996-0015C5F3F612": { + "band": "K51", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF1EA14-E139-11DF-99C7-0015C5F3F612": { + "band": "K52", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF20FA8-E139-11DF-8B9F-0015C5F3F612": { + "band": "L50", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF2350A-E139-11DF-954D-0015C5F3F612": { + "band": "L51", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF25A6C-E139-11DF-9C4E-0015C5F3F612": { + "band": "L52", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF2842E-E139-11DF-981B-0015C5F3F612": { + "band": "P51", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF2B200-E139-11DF-99E0-0015C5F3F612": { + "band": "P52", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF2DB0E-E139-11DF-8091-0015C5F3F612": { + "band": "Q51", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF30282-E139-11DF-930B-0015C5F3F612": { + "band": "S50", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF328F2-E139-11DF-9243-0015C5F3F612": { + "band": "X51", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF34F3A-E139-11DF-95A3-0015C5F3F612": { + "band": "", + "model": "AXT400", + "model_name": "AXT Dual-Channel Receiver" + }, + "CCF379EC-E139-11DF-91F0-0015C5F3F612": { + "band": "", + "model": "AXT400", + "model_name": "AXT Dual-Channel Receiver" + }, + "CCF3A1E2-E139-11DF-8DD2-0015C5F3F612": { + "band": "H50", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCF3C7DA-E139-11DF-873D-0015C5F3F612": { + "band": "H50", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCF3ED82-E139-11DF-8E29-0015C5F3F612": { + "band": "H50", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCF41316-E139-11DF-80B2-0015C5F3F612": { + "band": "H50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCF43918-E139-11DF-83CB-0015C5F3F612": { + "band": "H50", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCF46000-E139-11DF-9975-0015C5F3F612": { + "band": "L53", + "model": "QLX-DSingle", + "model_name": "QLX-D Single-Channel Receiver" + }, + "CCF48620-E139-11DF-9932-0015C5F3F612": { + "band": "L53", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF4ABAA-E139-11DF-9652-0015C5F3F612": { + "band": "L53", + "model": "QLX-DTx", + "model_name": "QLX-D Bodypack / Handheld Transmitter" + }, + "CCF4D06C-E139-11DF-920D-0015C5F3F612": { + "band": "J51", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCF4F754-E139-11DF-86A4-0015C5F3F612": { + "band": "J51", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCF51D1A-E139-11DF-8E02-0015C5F3F612": { + "band": "J51", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCF542B8-E139-11DF-81E7-0015C5F3F612": { + "band": "J51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCF573AA-E139-11DF-8468-0015C5F3F612": { + "band": "J51", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCF5A0C8-E139-11DF-8F15-0015C5F3F612": { + "band": "L53", + "model": "ULX-DSingle", + "model_name": "ULX-D Single-Channel Receiver" + }, + "CCF5CEC2-E139-11DF-8665-0015C5F3F612": { + "band": "L53", + "model": "ULX-DDual", + "model_name": "ULX-D Dual-Channel Receiver" + }, + "CCF5FD66-E139-11DF-9BED-0015C5F3F612": { + "band": "L53", + "model": "ULX-DQuad", + "model_name": "ULX-D Quad-Channel Receiver" + }, + "CCF62A5C-E139-11DF-90CF-0015C5F3F612": { + "band": "L53", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCF651D0-E139-11DF-9EA1-0015C5F3F612": { + "band": "L53", + "model": "ULX-DTx", + "model_name": "ULX-D Bodypack / Handheld Transmitter" + }, + "CCF69E7E-E139-11DF-9EE9-0015C5F3F612": { + "band": "K12", + "model": "P3T", + "model_name": "PSM300 Transmitter" + }, + "CCF6C476-E139-11DF-9D5C-0015C5F3F612": { + "band": "G20", + "model": "P3T", + "model_name": "PSM300 Transmitter" + }, + "CCF6EA32-E139-11DF-9A46-0015C5F3F612": { + "band": "H8E", + "model": "P3T", + "model_name": "PSM300 Transmitter" + }, + "CCF71372-E139-11DF-8E97-0015C5F3F612": { + "band": "J13", + "model": "P3T", + "model_name": "PSM300 Transmitter" + }, + "CCF73ED8-E139-11DF-97C6-0015C5F3F612": { + "band": "J10", + "model": "P3T", + "model_name": "PSM300 Transmitter" + }, + "CCF76C46-E139-11DF-9FD9-0015C5F3F612": { + "band": "K3E", + "model": "P3T", + "model_name": "PSM300 Transmitter" + }, + "CCF79A86-E139-11DF-896B-0015C5F3F612": { + "band": "L19", + "model": "P3T", + "model_name": "PSM300 Transmitter" + }, + "CCF7C7F4-E139-11DF-9A0A-0015C5F3F612": { + "band": "M16", + "model": "P3T", + "model_name": "PSM300 Transmitter" + }, + "CCF7F1CA-E139-11DF-96E2-0015C5F3F612": { + "band": "Q25", + "model": "P3T", + "model_name": "PSM300 Transmitter" + }, + "CCF81CF4-E139-11DF-83C9-0015C5F3F612": { + "band": "R12", + "model": "P3T", + "model_name": "PSM300 Transmitter" + }, + "CCF846C0-E139-11DF-8380-0015C5F3F612": { + "band": "JB", + "model": "P3T", + "model_name": "PSM300 Transmitter" + }, + "CCF874E2-E139-11DF-974B-0015C5F3F612": { + "band": "S8", + "model": "P3T", + "model_name": "PSM300 Transmitter" + }, + "CCF8A156-E139-11DF-9533-0015C5F3F612": { + "band": "T11", + "model": "P3T", + "model_name": "PSM300 Transmitter" + }, + "CCF8CA0A-E139-11DF-9C03-0015C5F3F612": { + "band": "X7", + "model": "P3T", + "model_name": "PSM300 Transmitter" + }, + "CCF9E6D8-E139-11DF-89A8-0015C5F3F612": { + "band": "K12", + "model": "P3R", + "model_name": "PSM300 Receiver" + }, + "CCFA0DE8-E139-11DF-9E14-0015C5F3F612": { + "band": "G20", + "model": "P3R", + "model_name": "PSM300 Receiver" + }, + "CCFA34B2-E139-11DF-93C7-0015C5F3F612": { + "band": "H8E", + "model": "P3R", + "model_name": "PSM300 Receiver" + }, + "CCFA5E56-E139-11DF-8191-0015C5F3F612": { + "band": "J13", + "model": "P3R", + "model_name": "PSM300 Receiver" + }, + "CCFA88B8-E139-11DF-896F-0015C5F3F612": { + "band": "J10", + "model": "P3R", + "model_name": "PSM300 Receiver" + }, + "CCFAB720-E139-11DF-893E-0015C5F3F612": { + "band": "K3E", + "model": "P3R", + "model_name": "PSM300 Receiver" + }, + "CCFAE452-E139-11DF-9A5E-0015C5F3F612": { + "band": "L19", + "model": "P3R", + "model_name": "PSM300 Receiver" + }, + "CCFB127E-E139-11DF-8480-0015C5F3F612": { + "band": "M16", + "model": "P3R", + "model_name": "PSM300 Receiver" + }, + "CCFB444C-E139-11DF-86E3-0015C5F3F612": { + "band": "Q25", + "model": "P3R", + "model_name": "PSM300 Receiver" + }, + "CCFB6FB2-E139-11DF-8A37-0015C5F3F612": { + "band": "R12", + "model": "P3R", + "model_name": "PSM300 Receiver" + }, + "CCFB9D7A-E139-11DF-8C23-0015C5F3F612": { + "band": "JB", + "model": "P3R", + "model_name": "PSM300 Receiver" + }, + "CCFBCAD4-E139-11DF-9E34-0015C5F3F612": { + "band": "S8", + "model": "P3R", + "model_name": "PSM300 Receiver" + }, + "CCFBF8A6-E139-11DF-8F97-0015C5F3F612": { + "band": "T11", + "model": "P3R", + "model_name": "PSM300 Receiver" + }, + "CCFC28EE-E139-11DF-8D74-0015C5F3F612": { + "band": "X7", + "model": "P3R", + "model_name": "PSM300 Receiver" + }, + "CCFD5CDC-E139-11DF-96D8-0015C5F3F612": { + "band": "K12", + "model": "P3RA", + "model_name": "PSM300 Receiver Alternate" + }, + "CCFD884C-E139-11DF-8D8A-0015C5F3F612": { + "band": "G20", + "model": "P3RA", + "model_name": "PSM300 Receiver Alternate" + }, + "CCFDB4A2-E139-11DF-9907-0015C5F3F612": { + "band": "H8E", + "model": "P3RA", + "model_name": "PSM300 Receiver Alternate" + }, + "CCFDE364-E139-11DF-90E7-0015C5F3F612": { + "band": "J13", + "model": "P3RA", + "model_name": "PSM300 Receiver Alternate" + }, + "CCFE119A-E139-11DF-9032-0015C5F3F612": { + "band": "J10", + "model": "P3RA", + "model_name": "PSM300 Receiver Alternate" + }, + "CCFE3A4E-E139-11DF-9E47-0015C5F3F612": { + "band": "K3E", + "model": "P3RA", + "model_name": "PSM300 Receiver Alternate" + }, + "CCFE65D2-E139-11DF-828E-0015C5F3F612": { + "band": "L19", + "model": "P3RA", + "model_name": "PSM300 Receiver Alternate" + }, + "CCFE8DA0-E139-11DF-930B-0015C5F3F612": { + "band": "M16", + "model": "P3RA", + "model_name": "PSM300 Receiver Alternate" + }, + "CCFEB406-E139-11DF-965F-0015C5F3F612": { + "band": "Q25", + "model": "P3RA", + "model_name": "PSM300 Receiver Alternate" + }, + "CCFEDB34-E139-11DF-8053-0015C5F3F612": { + "band": "R12", + "model": "P3RA", + "model_name": "PSM300 Receiver Alternate" + }, + "CCFF0334-E139-11DF-80FF-0015C5F3F612": { + "band": "JB", + "model": "P3RA", + "model_name": "PSM300 Receiver Alternate" + }, + "CCFF29B8-E139-11DF-8B8F-0015C5F3F612": { + "band": "S8", + "model": "P3RA", + "model_name": "PSM300 Receiver Alternate" + }, + "CCFF4F92-E139-11DF-8625-0015C5F3F612": { + "band": "T11", + "model": "P3RA", + "model_name": "PSM300 Receiver Alternate" + }, + "CCFF75E4-E139-11DF-87CD-0015C5F3F612": { + "band": "X7", + "model": "P3RA", + "model_name": "PSM300 Receiver Alternate" + }, + "CD008114-E139-11DF-8A85-0015C5F3F612": { + "band": "", + "model": "P9HW", + "model_name": "PSM900 Hard-Wired Receiver" + }, + "CD00A7F2-E139-11DF-82BC-0015C5F3F612": { + "band": "G10J", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CD00CE58-E139-11DF-9CC1-0015C5F3F612": { + "band": "J8J", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CD00F572-E139-11DF-8DE1-0015C5F3F612": { + "band": "L8J", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CD011B92-E139-11DF-9F26-0015C5F3F612": { + "band": "L11J", + "model": "PSM1KTx", + "model_name": "PSM1000 Dual-Channel Transmitter" + }, + "CD0141D0-E139-11DF-82EA-0015C5F3F612": { + "band": "G10J", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CD016C64-E139-11DF-9C4A-0015C5F3F612": { + "band": "J8J", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CD019AAE-E139-11DF-9449-0015C5F3F612": { + "band": "L8J", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CD01C7D6-E139-11DF-996E-0015C5F3F612": { + "band": "L11J", + "model": "PSM1KRx", + "model_name": "PSM1000 Bodypack Receiver" + }, + "CD0629D4-E139-11DF-8AA4-0015C5F3F612": { + "band": "", + "model": "GLXD-TX-HANDHELD", + "model_name": "GLX-D Handheld Transmitter" + }, + "CD0651E8-E139-11DF-8324-0015C5F3F612": { + "band": "", + "model": "GLXD-TX-BODYPACK", + "model_name": "GLX-D Bodypack Transmitter" + }, + "CD06781C-E139-11DF-9160-0015C5F3F612": { + "band": "", + "model": "GLXD-RX-BAGGABLE", + "model_name": "GLX-D Receiver" + }, + "CD06A2E2-E139-11DF-80E4-0015C5F3F612": { + "band": "", + "model": "GLXD-RX-PEDAL", + "model_name": "GLX-D Guitar Pedal Receiver/Tuner" + }, + "CD06D0BE-E139-11DF-9F86-0015C5F3F612": { + "band": "", + "model": "GLXD-RECOVERY-MODE", + "model_name": "GLX-D Corrupt Device" + }, + "CD06FECC-E139-11DF-9E53-0015C5F3F612": { + "band": "", + "model": "GLXD-GENERIC-DEVICE", + "model_name": "GLX-D Device" + }, + "CD07271C-E139-11DF-8F57-0015C5F3F612": { + "band": "X52", + "model": "ULX-DIsmSingle", + "model_name": "ULX-D 900 MHz ISM Single-Channel Receiver" + }, + "CD074CEC-E139-11DF-8C70-0015C5F3F612": { + "band": "X53", + "model": "ULX-DIsmSingle", + "model_name": "ULX-D 900 MHz ISM Single-Channel Receiver" + }, + "CD0774B0-E139-11DF-8760-0015C5F3F612": { + "band": "X54", + "model": "ULX-DIsmSingle", + "model_name": "ULX-D 900 MHz ISM Single-Channel Receiver" + }, + "CD079BDE-E139-11DF-9162-0015C5F3F612": { + "band": "X52", + "model": "ULX-DIsmDual", + "model_name": "ULX-D 900 MHz ISM Dual-Channel Receiver" + }, + "CD07C244-E139-11DF-8EB4-0015C5F3F612": { + "band": "X53", + "model": "ULX-DIsmDual", + "model_name": "ULX-D 900 MHz ISM Dual-Channel Receiver" + }, + "CD07E864-E139-11DF-9F2B-0015C5F3F612": { + "band": "X54", + "model": "ULX-DIsmDual", + "model_name": "ULX-D 900 MHz ISM Dual-Channel Receiver" + }, + "CD080DC6-E139-11DF-9947-0015C5F3F612": { + "band": "X52", + "model": "ULX-DIsmQuad", + "model_name": "ULX-D 900 MHz ISM Quad-Channel Receiver" + }, + "CD0833AA-E139-11DF-9052-0015C5F3F612": { + "band": "X53", + "model": "ULX-DIsmQuad", + "model_name": "ULX-D 900 MHz ISM Quad-Channel Receiver" + }, + "CD0858EE-E139-11DF-9037-0015C5F3F612": { + "band": "X54", + "model": "ULX-DIsmQuad", + "model_name": "ULX-D 900 MHz ISM Quad-Channel Receiver" + }, + "CD087EDC-E139-11DF-8AE2-0015C5F3F612": { + "band": "X52", + "model": "ULX-DIsmTx", + "model_name": "ULX-D 900 MHz ISM Bodypack / Handheld Transmitter" + }, + "CD08A4B6-E139-11DF-9C98-0015C5F3F612": { + "band": "X53", + "model": "ULX-DIsmTx", + "model_name": "ULX-D 900 MHz ISM Bodypack / Handheld Transmitter" + }, + "CD08CC20-E139-11DF-92B1-0015C5F3F612": { + "band": "X54", + "model": "ULX-DIsmTx", + "model_name": "ULX-D 900 MHz ISM Bodypack / Handheld Transmitter" + }, + "CD08F240-E139-11DF-828F-0015C5F3F612": { + "band": "X52", + "model": "ULX-DIsmTx", + "model_name": "ULX-D 900 MHz ISM Bodypack / Handheld Transmitter" + }, + "CD091838-E139-11DF-869A-0015C5F3F612": { + "band": "X53", + "model": "ULX-DIsmTx", + "model_name": "ULX-D 900 MHz ISM Bodypack / Handheld Transmitter" + }, + "CD093EEE-E139-11DF-9448-0015C5F3F612": { + "band": "X54", + "model": "ULX-DIsmTx", + "model_name": "ULX-D 900 MHz ISM Bodypack / Handheld Transmitter" + }, + "CD096568-E139-11DF-8686-0015C5F3F612": { + "band": "L18", + "model": "P3T", + "model_name": "PSM300 Transmitter" + }, + "CD098E94-E139-11DF-93EF-0015C5F3F612": { + "band": "M18", + "model": "P3T", + "model_name": "PSM300 Transmitter" + }, + "CD09BD10-E139-11DF-8C6A-0015C5F3F612": { + "band": "L18", + "model": "P3RA", + "model_name": "PSM300 Receiver Alternate" + }, + "CD09EA24-E139-11DF-8D4A-0015C5F3F612": { + "band": "M18", + "model": "P3RA", + "model_name": "PSM300 Receiver Alternate" + }, + "CD0A162A-E139-11DF-8C52-0015C5F3F612": { + "band": "X52", + "model": "QLX-DIsmSingle", + "model_name": "QLX-D 900MHz Single-Channel Receiver" + }, + "CD0A44B0-E139-11DF-8F40-0015C5F3F612": { + "band": "X53", + "model": "QLX-DIsmSingle", + "model_name": "QLX-D 900MHz Single-Channel Receiver" + }, + "CD0A7494-E139-11DF-8EB5-0015C5F3F612": { + "band": "X54", + "model": "QLX-DIsmSingle", + "model_name": "QLX-D 900MHz Single-Channel Receiver" + }, + "CD0AA090-E139-11DF-8734-0015C5F3F612": { + "band": "X52", + "model": "QLX-DIsmTx", + "model_name": "QLX-D 900MHz Bodypack / Handheld Transmitter" + }, + "CD0ACFD4-E139-11DF-9F9D-0015C5F3F612": { + "band": "X53", + "model": "QLX-DIsmTx", + "model_name": "QLX-D 900MHz Bodypack / Handheld Transmitter" + }, + "CD0AFD10-E139-11DF-8F13-0015C5F3F612": { + "band": "X54", + "model": "QLX-DIsmTx", + "model_name": "QLX-D 900MHz Bodypack / Handheld Transmitter" + }, + "CD0B25D8-E139-11DF-90B3-0015C5F3F612": { + "band": "X52", + "model": "QLX-DIsmTx", + "model_name": "QLX-D 900MHz Bodypack / Handheld Transmitter" + }, + "CD0B4D38-E139-11DF-9BE2-0015C5F3F612": { + "band": "X53", + "model": "QLX-DIsmTx", + "model_name": "QLX-D 900MHz Bodypack / Handheld Transmitter" + }, + "CD0B74A2-E139-11DF-9648-0015C5F3F612": { + "band": "X54", + "model": "QLX-DIsmTx", + "model_name": "QLX-D 900MHz Bodypack / Handheld Transmitter" + }, + "CD0BC330-E139-11DF-9D83-0015C5F3F612": { + "band": "", + "model": "MXA310", + "model_name": "MXA310 Table Array Microphone (Dante Only)" + }, + "CD0BEB4E-E139-11DF-874E-0015C5F3F612": { + "band": "", + "model": "ANI4OUT", + "model_name": "ANI4OUT Audio Network Interface (Dante Only)" + }, + "CD0C148E-E139-11DF-8AE8-0015C5F3F612": { + "band": "", + "model": "KSA1500", + "model_name": "KSE1500 Electrostatic Earphone System" + }, + "CD0C3BF8-E139-11DF-9C94-0015C5F3F612": { + "band": "", + "model": "SHA900", + "model_name": "SHA900 Portable Listening Amplifier" + }, + "CD0C625E-E139-11DF-9AB3-0015C5F3F612": { + "band": "", + "model": "SBRC", + "model_name": "Shure Battery Rack Charger" + }, + "CD0C8A68-E139-11DF-9B00-0015C5F3F612": { + "band": "", + "model": "SBC840M", + "model_name": "AXT-D 8-Bay Networked Micro-Bodypack Battery Charger" + }, + "CD0CB29A-E139-11DF-8DC3-0015C5F3F612": { + "band": "", + "model": "SBC240", + "model_name": "AXT-D 2-Bay Networked Battery Charger" + }, + "CD0CD978-E139-11DF-895B-0015C5F3F612": { + "band": "", + "model": "SBC840", + "model_name": "AXT-D 8-Bay Networked Battery Charger" + }, + "CD0D4DF4-E139-11DF-8245-0015C5F3F612": { + "band": "Z16", + "model": "ULX-D1GSingle", + "model_name": "ULX-D Extended Bands Single-Channel Receiver" + }, + "CD0D7446-E139-11DF-98CE-0015C5F3F612": { + "band": "Z17", + "model": "ULX-D1GSingle", + "model_name": "ULX-D Extended Bands Single-Channel Receiver" + }, + "CD0D9A48-E139-11DF-8D44-0015C5F3F612": { + "band": "Z18", + "model": "ULX-D1GSingle", + "model_name": "ULX-D Extended Bands Single-Channel Receiver" + }, + "CD0DC1C6-E139-11DF-8CEA-0015C5F3F612": { + "band": "Z19", + "model": "ULX-D1GSingle", + "model_name": "ULX-D Extended Bands Single-Channel Receiver" + }, + "CD0DE8FE-E139-11DF-9AB5-0015C5F3F612": { + "band": "V50", + "model": "ULX-D1GSingle", + "model_name": "ULX-D Extended Bands Single-Channel Receiver" + }, + "CD0E0F64-E139-11DF-8AA9-0015C5F3F612": { + "band": "V51", + "model": "ULX-D1GSingle", + "model_name": "ULX-D Extended Bands Single-Channel Receiver" + }, + "CD0E367E-E139-11DF-8502-0015C5F3F612": { + "band": "Z16", + "model": "ULX-D1GDual", + "model_name": "ULX-D Extended Bands Dual-Channel Receiver" + }, + "CD0E5D34-E139-11DF-8E60-0015C5F3F612": { + "band": "Z17", + "model": "ULX-D1GDual", + "model_name": "ULX-D Extended Bands Dual-Channel Receiver" + }, + "CD0E82FA-E139-11DF-8449-0015C5F3F612": { + "band": "Z18", + "model": "ULX-D1GDual", + "model_name": "ULX-D Extended Bands Dual-Channel Receiver" + }, + "CD0EA94C-E139-11DF-9697-0015C5F3F612": { + "band": "Z19", + "model": "ULX-D1GDual", + "model_name": "ULX-D Extended Bands Dual-Channel Receiver" + }, + "CD0ECF76-E139-11DF-86A6-0015C5F3F612": { + "band": "V50", + "model": "ULX-D1GDual", + "model_name": "ULX-D Extended Bands Dual-Channel Receiver" + }, + "CD0EF622-E139-11DF-9DB6-0015C5F3F612": { + "band": "V51", + "model": "ULX-D1GDual", + "model_name": "ULX-D Extended Bands Dual-Channel Receiver" + }, + "CD0F1C4C-E139-11DF-893C-0015C5F3F612": { + "band": "Z16", + "model": "ULX-D1GQuad", + "model_name": "ULX-D Extended Bands Quad-Channel Receiver" + }, + "CD0F4294-E139-11DF-9183-0015C5F3F612": { + "band": "Z17", + "model": "ULX-D1GQuad", + "model_name": "ULX-D Extended Bands Quad-Channel Receiver" + }, + "CD0F6968-E139-11DF-9268-0015C5F3F612": { + "band": "Z18", + "model": "ULX-D1GQuad", + "model_name": "ULX-D Extended Bands Quad-Channel Receiver" + }, + "CD0F900A-E139-11DF-9481-0015C5F3F612": { + "band": "Z19", + "model": "ULX-D1GQuad", + "model_name": "ULX-D Extended Bands Quad-Channel Receiver" + }, + "CD0FB5D0-E139-11DF-8CC5-0015C5F3F612": { + "band": "V50", + "model": "ULX-D1GQuad", + "model_name": "ULX-D Extended Bands Quad-Channel Receiver" + }, + "CD0FDD94-E139-11DF-8900-0015C5F3F612": { + "band": "V51", + "model": "ULX-D1GQuad", + "model_name": "ULX-D Extended Bands Quad-Channel Receiver" + }, + "CD100490-E139-11DF-971C-0015C5F3F612": { + "band": "Z16", + "model": "ULX-D1GTx", + "model_name": "ULX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD102B00-E139-11DF-965A-0015C5F3F612": { + "band": "Z17", + "model": "ULX-D1GTx", + "model_name": "ULX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD1050DA-E139-11DF-8A8D-0015C5F3F612": { + "band": "Z18", + "model": "ULX-D1GTx", + "model_name": "ULX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD1076F0-E139-11DF-9785-0015C5F3F612": { + "band": "Z19", + "model": "ULX-D1GTx", + "model_name": "ULX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD109D4C-E139-11DF-8C02-0015C5F3F612": { + "band": "V50", + "model": "ULX-D1GTx", + "model_name": "ULX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD10C75E-E139-11DF-94CA-0015C5F3F612": { + "band": "V51", + "model": "ULX-D1GTx", + "model_name": "ULX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD10F0EE-E139-11DF-88BD-0015C5F3F612": { + "band": "Z16", + "model": "ULX-D1GTx", + "model_name": "ULX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD111772-E139-11DF-9377-0015C5F3F612": { + "band": "Z17", + "model": "ULX-D1GTx", + "model_name": "ULX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD113DE2-E139-11DF-8F98-0015C5F3F612": { + "band": "Z18", + "model": "ULX-D1GTx", + "model_name": "ULX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD116402-E139-11DF-8C7D-0015C5F3F612": { + "band": "Z19", + "model": "ULX-D1GTx", + "model_name": "ULX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD118A4A-E139-11DF-9B37-0015C5F3F612": { + "band": "V50", + "model": "ULX-D1GTx", + "model_name": "ULX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD11B088-E139-11DF-841D-0015C5F3F612": { + "band": "V51", + "model": "ULX-D1GTx", + "model_name": "ULX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD11DFD6-E139-11DF-822B-0015C5F3F612": { + "band": "Z16", + "model": "QLX-D1GSingle", + "model_name": "QLX-D Extended Bands Single-Channel Receiver" + }, + "CD120DB2-E139-11DF-9C97-0015C5F3F612": { + "band": "Z17", + "model": "QLX-D1GSingle", + "model_name": "QLX-D Extended Bands Single-Channel Receiver" + }, + "CD125AB0-E139-11DF-8A38-0015C5F3F612": { + "band": "Z18", + "model": "QLX-D1GSingle", + "model_name": "QLX-D Extended Bands Single-Channel Receiver" + }, + "CD1293B8-E139-11DF-8D73-0015C5F3F612": { + "band": "Z19", + "model": "QLX-D1GSingle", + "model_name": "QLX-D Extended Bands Single-Channel Receiver" + }, + "CD12C32E-E139-11DF-86DD-0015C5F3F612": { + "band": "V50", + "model": "QLX-D1GSingle", + "model_name": "QLX-D Extended Bands Single-Channel Receiver" + }, + "CD130C1C-E139-11DF-8230-0015C5F3F612": { + "band": "V51", + "model": "QLX-D1GSingle", + "model_name": "QLX-D Extended Bands Single-Channel Receiver" + }, + "CD1338E0-E139-11DF-954A-0015C5F3F612": { + "band": "Z16", + "model": "QLX-D1GTx", + "model_name": "QLX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD13652C-E139-11DF-8776-0015C5F3F612": { + "band": "Z17", + "model": "QLX-D1GTx", + "model_name": "QLX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD1395EC-E139-11DF-846A-0015C5F3F612": { + "band": "Z18", + "model": "QLX-D1GTx", + "model_name": "QLX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD13CD1E-E139-11DF-8822-0015C5F3F612": { + "band": "Z19", + "model": "QLX-D1GTx", + "model_name": "QLX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD13FA00-E139-11DF-984A-0015C5F3F612": { + "band": "V50", + "model": "QLX-D1GTx", + "model_name": "QLX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD142138-E139-11DF-89FF-0015C5F3F612": { + "band": "V51", + "model": "QLX-D1GTx", + "model_name": "QLX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD14487A-E139-11DF-9FC0-0015C5F3F612": { + "band": "Z16", + "model": "QLX-D1GTx", + "model_name": "QLX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD147552-E139-11DF-862A-0015C5F3F612": { + "band": "Z17", + "model": "QLX-D1GTx", + "model_name": "QLX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD14A1A8-E139-11DF-9957-0015C5F3F612": { + "band": "Z18", + "model": "QLX-D1GTx", + "model_name": "QLX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD14D0EC-E139-11DF-8D55-0015C5F3F612": { + "band": "Z19", + "model": "QLX-D1GTx", + "model_name": "QLX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD150120-E139-11DF-95F6-0015C5F3F612": { + "band": "V50", + "model": "QLX-D1GTx", + "model_name": "QLX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD152FF6-E139-11DF-935E-0015C5F3F612": { + "band": "V51", + "model": "QLX-D1GTx", + "model_name": "QLX-D Extended Bands Bodypack / Handheld Transmitter" + }, + "CD155CBA-E139-11DF-8DBC-0015C5F3F612": { + "band": "G55", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD15846A-E139-11DF-9B3C-0015C5F3F612": { + "band": "G53", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD15AB48-E139-11DF-83C3-0015C5F3F612": { + "band": "G54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD15D212-E139-11DF-99E3-0015C5F3F612": { + "band": "H54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD162F00-E139-11DF-88B9-0015C5F3F612": { + "band": "K57", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD16573C-E139-11DF-9B59-0015C5F3F612": { + "band": "L54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD167CB2-E139-11DF-895B-0015C5F3F612": { + "band": "K55", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD16A5DE-E139-11DF-9066-0015C5F3F612": { + "band": "K53", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD17179E-E139-11DF-8EEA-0015C5F3F612": { + "band": "JB", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD17E7DC-E139-11DF-869C-0015C5F3F612": { + "band": "X51", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD181752-E139-11DF-894A-0015C5F3F612": { + "band": "X55", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD186E28-E139-11DF-95FC-0015C5F3F612": { + "band": "G54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD18948E-E139-11DF-9101-0015C5F3F612": { + "band": "G55", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD18BB6C-E139-11DF-984F-0015C5F3F612": { + "band": "G53", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD190B8A-E139-11DF-98E0-0015C5F3F612": { + "band": "H54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD195FE0-E139-11DF-9453-0015C5F3F612": { + "band": "L54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD198DDA-E139-11DF-8DF4-0015C5F3F612": { + "band": "K55", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD19BC74-E139-11DF-82CD-0015C5F3F612": { + "band": "K56", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD19E938-E139-11DF-86D4-0015C5F3F612": { + "band": "K58", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD1A155C-E139-11DF-9BEA-0015C5F3F612": { + "band": "K57", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD1AFC56-E139-11DF-889B-0015C5F3F612": { + "band": "X55", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD1B84C8-E139-11DF-9EE8-0015C5F3F612": { + "band": "G53", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD1C98EA-E139-11DF-88D0-0015C5F3F612": { + "band": "K55", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD1CC7C0-E139-11DF-81AC-0015C5F3F612": { + "band": "K53", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD1D5258-E139-11DF-920D-0015C5F3F612": { + "band": "K58", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD1E5E1E-E139-11DF-8AB0-0015C5F3F612": { + "band": "X55", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD1EBA6C-E139-11DF-86B9-0015C5F3F612": { + "band": "G55", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD1EEABE-E139-11DF-9F3A-0015C5F3F612": { + "band": "G53", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD1F1BEC-E139-11DF-8EC4-0015C5F3F612": { + "band": "G54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD1F4806-E139-11DF-98D2-0015C5F3F612": { + "band": "H54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD1FA454-E139-11DF-93B1-0015C5F3F612": { + "band": "K57", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD1FD104-E139-11DF-8122-0015C5F3F612": { + "band": "L54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD1FFF6C-E139-11DF-877B-0015C5F3F612": { + "band": "K55", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD202CDA-E139-11DF-94AE-0015C5F3F612": { + "band": "K53", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD20B330-E139-11DF-8F94-0015C5F3F612": { + "band": "JB", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD218F8A-E139-11DF-9686-0015C5F3F612": { + "band": "X51", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD21BD16-E139-11DF-9ECD-0015C5F3F612": { + "band": "X55", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD22175C-E139-11DF-981F-0015C5F3F612": { + "band": "G55", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD224330-E139-11DF-958A-0015C5F3F612": { + "band": "G56", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD226B44-E139-11DF-9BD9-0015C5F3F612": { + "band": "G53", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD2291B4-E139-11DF-8D0D-0015C5F3F612": { + "band": "G54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD22C1F2-E139-11DF-90BD-0015C5F3F612": { + "band": "H54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD231F80-E139-11DF-9CD9-0015C5F3F612": { + "band": "L54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD234C94-E139-11DF-9374-0015C5F3F612": { + "band": "K55", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD2374EE-E139-11DF-88C0-0015C5F3F612": { + "band": "K56", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD23A25C-E139-11DF-8CE6-0015C5F3F612": { + "band": "K57", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD23D010-E139-11DF-9100-0015C5F3F612": { + "band": "K58", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD24AA1C-E139-11DF-9057-0015C5F3F612": { + "band": "X55", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD24F814-E139-11DF-854A-0015C5F3F612": { + "band": "G55", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD251EC0-E139-11DF-848F-0015C5F3F612": { + "band": "G53", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD254472-E139-11DF-96A6-0015C5F3F612": { + "band": "G54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD256A06-E139-11DF-957E-0015C5F3F612": { + "band": "H54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD25B5BA-E139-11DF-843F-0015C5F3F612": { + "band": "K57", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD25DD60-E139-11DF-9D6B-0015C5F3F612": { + "band": "L54", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD26081C-E139-11DF-8133-0015C5F3F612": { + "band": "K55", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD26304E-E139-11DF-837C-0015C5F3F612": { + "band": "K53", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD26BF0A-E139-11DF-9460-0015C5F3F612": { + "band": "K58", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD27CFDA-E139-11DF-8575-0015C5F3F612": { + "band": "X55", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD282D40-E139-11DF-8481-0015C5F3F612": { + "band": "", + "model": "AD4D", + "model_name": "AXT-D Dual-Channel Receiver" + }, + "CD285B30-E139-11DF-8923-0015C5F3F612": { + "band": "", + "model": "AD4D", + "model_name": "AXT-D Dual-Channel Receiver" + }, + "CD2886E6-E139-11DF-8A35-0015C5F3F612": { + "band": "", + "model": "AD4D", + "model_name": "AXT-D Dual-Channel Receiver" + }, + "CD28B486-E139-11DF-8E0F-0015C5F3F612": { + "band": "", + "model": "AD4D", + "model_name": "AXT-D Dual-Channel Receiver" + }, + "CD28E12C-E139-11DF-8153-0015C5F3F612": { + "band": "", + "model": "AD4Q", + "model_name": "AXT-D Quad-Channel Receiver" + }, + "CD290B70-E139-11DF-8374-0015C5F3F612": { + "band": "", + "model": "AD4Q", + "model_name": "AXT-D Quad-Channel Receiver" + }, + "CD293640-E139-11DF-9DC0-0015C5F3F612": { + "band": "", + "model": "AD4Q", + "model_name": "AXT-D Quad-Channel Receiver" + }, + "CD296318-E139-11DF-8044-0015C5F3F612": { + "band": "", + "model": "AD4Q", + "model_name": "AXT-D Quad-Channel Receiver" + }, + "CD29BC1E-E139-11DF-8BA3-0015C5F3F612": { + "band": "K53", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD2A37C0-E139-11DF-80E1-0015C5F3F612": { + "band": "K53", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD2AAA7A-E139-11DF-82F9-0015C5F3F612": { + "band": "K58", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD2AD072-E139-11DF-88C1-0015C5F3F612": { + "band": "K58", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD2B9282-E139-11DF-9CC1-0015C5F3F612": { + "band": "", + "model": "IHOP_APT_2x1", + "model_name": "MXW 2-Channel Access Point Transceiver" + }, + "CD2BC4BE-E139-11DF-9AC4-0015C5F3F612": { + "band": "", + "model": "IHOP_CH", + "model_name": "MXW 2/4/8-Bay Networked Charging Station" + }, + "CD2C4BF0-E139-11DF-9AD3-0015C5F3F612": { + "band": "", + "model": "ANI4IN", + "model_name": "ANI4IN Audio Network Interface (Dante Only)" + }, + "CD2D311E-E139-11DF-8434-0015C5F3F612": { + "band": "", + "model": "AD610", + "model_name": "AXT-D ShowLink Access Point" + }, + "CD2D5946-E139-11DF-9DC3-0015C5F3F612\"": { + "band": "H20", + "model": "P3T", + "model_name": "PSM300 Transmitter" + }, + "CD2D80E2-E139-11DF-9B40-0015C5F3F612": { + "band": "L18", + "model": "P3R", + "model_name": "PSM300 Receiver" + }, + "CD2DA78E-E139-11DF-8075-0015C5F3F612": { + "band": "H20", + "model": "P3R", + "model_name": "PSM300 Receiver" + }, + "CD2DCDD6-E139-11DF-94DC-0015C5F3F612": { + "band": "H20", + "model": "P3RA", + "model_name": "PSM300 Receiver Alternate" + }, + "CD2DF3E2-E139-11DF-916E-0015C5F3F612": { + "band": "G50", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD2E1BBA-E139-11DF-81CD-0015C5F3F612": { + "band": "G51", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD2E45D6-E139-11DF-8F0E-0015C5F3F612": { + "band": "G52", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD2E70B0-E139-11DF-86C9-0015C5F3F612": { + "band": "H50", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD2EA03A-E139-11DF-8B10-0015C5F3F612": { + "band": "H51", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD2ED12C-E139-11DF-88AF-0015C5F3F612": { + "band": "H52", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD2EFFE4-E139-11DF-9E7C-0015C5F3F612": { + "band": "J50", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD2F2DC0-E139-11DF-84D9-0015C5F3F612": { + "band": "J51", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD2F5A66-E139-11DF-8C3F-0015C5F3F612": { + "band": "K51", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD2F86F8-E139-11DF-9BC3-0015C5F3F612": { + "band": "L51", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD2FB7AE-E139-11DF-9138-0015C5F3F612": { + "band": "L53", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD2FE4EA-E139-11DF-96BC-0015C5F3F612": { + "band": "P51", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD301618-E139-11DF-8666-0015C5F3F612": { + "band": "Q51", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD3043AE-E139-11DF-9B69-0015C5F3F612": { + "band": "R51", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD306B2C-E139-11DF-8D77-0015C5F3F612": { + "band": "JB", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD309124-E139-11DF-943E-0015C5F3F612": { + "band": "X51", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD30BA64-E139-11DF-8C5F-0015C5F3F612": { + "band": "X52", + "model": "ULX-DBGTxIsm", + "model_name": "ULX-D 900 MHz ISM Boundary / Gooseneck Transmitter" + }, + "CD30E5CA-E139-11DF-9ADB-0015C5F3F612": { + "band": "X53", + "model": "ULX-DBGTxIsm", + "model_name": "ULX-D 900 MHz ISM Boundary / Gooseneck Transmitter" + }, + "CD310E7E-E139-11DF-93F8-0015C5F3F612": { + "band": "X54", + "model": "ULX-DBGTxIsm", + "model_name": "ULX-D 900 MHz ISM Boundary / Gooseneck Transmitter" + }, + "CD313CBE-E139-11DF-9121-0015C5F3F612": { + "band": "Z16", + "model": "ULX-DBG1GTx", + "model_name": "ULX-D Extended Bands Boundary / Gooseneck Transmitter" + }, + "CD31704E-E139-11DF-982C-0015C5F3F612": { + "band": "Z17", + "model": "ULX-DBG1GTx", + "model_name": "ULX-D Extended Bands Boundary / Gooseneck Transmitter" + }, + "CD319CB8-E139-11DF-82A3-0015C5F3F612": { + "band": "Z18", + "model": "ULX-DBG1GTx", + "model_name": "ULX-D Extended Bands Boundary / Gooseneck Transmitter" + }, + "CD31CBDE-E139-11DF-8EB2-0015C5F3F612": { + "band": "Z19", + "model": "ULX-DBG1GTx", + "model_name": "ULX-D Extended Bands Boundary / Gooseneck Transmitter" + }, + "CD31F8FC-E139-11DF-89FB-0015C5F3F612": { + "band": "H53", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD3224F8-E139-11DF-9BCC-0015C5F3F612": { + "band": "K52", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD32564E-E139-11DF-9E8C-0015C5F3F612": { + "band": "L52", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD32852E-E139-11DF-84F5-0015C5F3F612": { + "band": "P52", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD32B210-E139-11DF-828E-0015C5F3F612": { + "band": "S50", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD32DAE2-E139-11DF-93CC-0015C5F3F612": { + "band": "G50", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD330620-E139-11DF-8998-0015C5F3F612": { + "band": "G51", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD332ED4-E139-11DF-90CC-0015C5F3F612": { + "band": "G52", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD33553A-E139-11DF-8CB6-0015C5F3F612": { + "band": "H50", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD337C18-E139-11DF-8BEA-0015C5F3F612": { + "band": "H51", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD33A3F0-E139-11DF-9D64-0015C5F3F612": { + "band": "H52", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD33CA92-E139-11DF-9903-0015C5F3F612": { + "band": "J50", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD33F148-E139-11DF-9040-0015C5F3F612": { + "band": "J51", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD3419DE-E139-11DF-828E-0015C5F3F612": { + "band": "K51", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD344526-E139-11DF-9F1E-0015C5F3F612": { + "band": "L51", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD3472DA-E139-11DF-8B0F-0015C5F3F612": { + "band": "L53", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD34A1E2-E139-11DF-8DCC-0015C5F3F612": { + "band": "P51", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD34CE06-E139-11DF-87F2-0015C5F3F612": { + "band": "Q51", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD34FCA0-E139-11DF-832D-0015C5F3F612": { + "band": "R51", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD352CDE-E139-11DF-9434-0015C5F3F612": { + "band": "JB", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD3555F6-E139-11DF-818C-0015C5F3F612": { + "band": "X51", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD3586CA-E139-11DF-854B-0015C5F3F612": { + "band": "X52", + "model": "ULX-DBGTxIsm", + "model_name": "ULX-D 900 MHz ISM Boundary / Gooseneck Transmitter" + }, + "CD35B4D8-E139-11DF-8451-0015C5F3F612": { + "band": "X53", + "model": "ULX-DBGTxIsm", + "model_name": "ULX-D 900 MHz ISM Boundary / Gooseneck Transmitter" + }, + "CD35DCC4-E139-11DF-9102-0015C5F3F612": { + "band": "X54", + "model": "ULX-DBGTxIsm", + "model_name": "ULX-D 900 MHz ISM Boundary / Gooseneck Transmitter" + }, + "CD360384-E139-11DF-832D-0015C5F3F612": { + "band": "Z16", + "model": "ULX-DBG1GTx", + "model_name": "ULX-D Extended Bands Boundary / Gooseneck Transmitter" + }, + "CD362AC6-E139-11DF-80C5-0015C5F3F612": { + "band": "Z17", + "model": "ULX-DBG1GTx", + "model_name": "ULX-D Extended Bands Boundary / Gooseneck Transmitter" + }, + "CD36510E-E139-11DF-8B33-0015C5F3F612": { + "band": "Z18", + "model": "ULX-DBG1GTx", + "model_name": "ULX-D Extended Bands Boundary / Gooseneck Transmitter" + }, + "CD367C92-E139-11DF-80E4-0015C5F3F612": { + "band": "Z19", + "model": "ULX-DBG1GTx", + "model_name": "ULX-D Extended Bands Boundary / Gooseneck Transmitter" + }, + "CD36A866-E139-11DF-9E50-0015C5F3F612": { + "band": "H53", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD36D37C-E139-11DF-8BA3-0015C5F3F612": { + "band": "K52", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD36FBAE-E139-11DF-99DA-0015C5F3F612": { + "band": "L52", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD37223C-E139-11DF-90F7-0015C5F3F612": { + "band": "P52", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD374924-E139-11DF-8FDD-0015C5F3F612": { + "band": "S50", + "model": "ULX-DBGTx", + "model_name": "ULX-D Boundary / Gooseneck Transmitter" + }, + "CD376FC6-E139-11DF-8F42-0015C5F3F612": { + "band": "", + "model": "ULX-DDock", + "model_name": "ULX-D 2/4/8-Bay Networked Charging Station" + }, + "CD3796FE-E139-11DF-96F4-0015C5F3F612": { + "band": "", + "model": "ULX-DDock", + "model_name": "ULX-D 2/4/8-Bay Networked Charging Station" + }, + "CD37BD82-E139-11DF-9E97-0015C5F3F612": { + "band": "", + "model": "ULX-DDock", + "model_name": "ULX-D 2/4/8-Bay Networked Charging Station" + }, + "CD3A685C-E139-11DF-9503-0015C5F3F612": { + "band": "", + "model": "MXA910", + "model_name": "MXA910 Ceiling Array Microphone" + }, + "CD3A9656-E139-11DF-9176-0015C5F3F612": { + "band": "", + "model": "ANI4IN", + "model_name": "ANI4IN Audio Network Interface (Dante Only)" + }, + "CD3AC4F0-E139-11DF-92DD-0015C5F3F612": { + "band": "", + "model": "ANI4OUT", + "model_name": "ANI4OUT Audio Network Interface (Dante Only)" + }, + "CD3AF2C2-E139-11DF-8D24-0015C5F3F612": { + "band": "", + "model": "P300", + "model_name": "P300-IMX IntelliMix Audio Conferencing Processor" + }, + "CD3C4D98-E139-11DF-9D47-0015C5F3F612": { + "band": "R52", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD3C7AD4-E139-11DF-9FD1-0015C5F3F612": { + "band": "G56", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD3CA324-E139-11DF-8570-0015C5F3F612": { + "band": "K56", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD3CCB42-E139-11DF-8C2D-0015C5F3F612": { + "band": "R52", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD3CF234-E139-11DF-81AE-0015C5F3F612": { + "band": "G56", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD3D193A-E139-11DF-8B94-0015C5F3F612": { + "band": "R52", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD3D3F96-E139-11DF-9E80-0015C5F3F612": { + "band": "JB", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD3DF648-E139-11DF-9838-0015C5F3F612": { + "band": "K56", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "CD3E50A2-E139-11DF-93F1-0015C5F3F612": { + "band": "R52", + "model": "ADTx", + "model_name": "AXT-D Bodypack / Handheld Transmitter" + }, + "F52B5E53-EAC7-4AF0-AE02-F1A666B99CD0": { + "band": "", + "model": "GLXD-RX-BAGGABLE2", + "model_name": "GLX-D Receiver" + } +} diff --git a/discover.py b/discover.py index be59ce85..ed82407f 100644 --- a/discover.py +++ b/discover.py @@ -1,5 +1,6 @@ import socket import struct +import json import xml.etree.ElementTree as ET @@ -29,12 +30,12 @@ def discover(): while True: data, (ip,_) = sock.recvfrom(1024) data = data.decode('UTF-8',errors="ignore") - print(data) + # print(data) type = rx_type(data) dcid = dcid_find(data) if type is not '': device = dcid_get(dcid) - # print('RX: {} at: {} DCID: {} BAND: {}'.format(type,ip,dcid,device['band'])) + print('RX: {} at: {} DCID: {} BAND: {}'.format(type,ip,dcid,device['band'])) add_rx(ip,type) def add_rx(ip,rx_type): @@ -88,8 +89,8 @@ def DCID_Parse_old(): print(deviceList) -def DCID_Parse(): - tree = ET.parse('DCIDMap.xml') +def DCID_Parse(file): + tree = ET.parse(file) root = tree.getroot() devices = root.findall('./MapEntry') @@ -107,11 +108,24 @@ def DCID_Parse(): dev = {'model': model,'model_name':model_name, 'band':band } deviceList[dccid.text] = dev +def dcid_save_to_file(file): + with open(file,'w') as f: + json.dump(deviceList,f, indent=2, separators=(',',': '), sort_keys=True) + f.write('\n') + +def dcid_restore_from_file(file): + global deviceList + with open(file,'r') as f: + deviceList = json.load(f) +def updateDCIDmap(inputFile,outputFile): + DCID_Parse(inputFile); + dcid_save_to_file(outputFile) def main(): - DCID_Parse() + # updateDCIDmap('DCIDmap.xml','dcid.json') + dcid_restore_from_file('dcid.json') discover() diff --git a/tornado_server.spec b/micboard.spec similarity index 82% rename from tornado_server.spec rename to micboard.spec index 48718a8a..32ba6164 100644 --- a/tornado_server.spec +++ b/micboard.spec @@ -3,10 +3,10 @@ block_cipher = None -a = Analysis(['tornado_server.py'], - pathex=['/Users/karl/Dropbox/brainstorm/Projects/Current Projects/micbox/dev/mictray'], +a = Analysis(['micboard.py'], + pathex=['/Users/karl/Dropbox/brainstorm/Projects/Current Projects/micbox/dev/micboard'], binaries=[], - datas=[('config.ini','.'), + datas=[('config.json','.'), ('static/','.')], hiddenimports=[], hookspath=[], @@ -22,7 +22,7 @@ exe = EXE(pyz, a.binaries, a.zipfiles, a.datas, - name='tornado_server', + name='micboard', debug=False, strip=False, upx=True, diff --git a/package.json b/package.json index 3092dcc7..83a79e91 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,13 @@ { - "name": "mictray", + "name": "micboard", "version": "1.0.0", "description": "An intelligent mic tray for ethernet enabled Shure microphones.", - "main": "tornado_server.py", + "main": "micboard.py", "scripts": { - "start": "electron ." + "server" : "python micboard.py", + "binary" : "pyinstaller micboard.spec", + "build": "node node_modules/webpack/bin/webpack.js --progress --hide-modules --config=webpack.config.js", + "app": "electron main.js" }, "private": true, "repository": { @@ -15,7 +18,7 @@ "bugs": { "url": "https://github.com/karlcswanson/mictray/issues" }, - "homepage": "https://github.com/karlcswanson/mictray", + "homepage": "https://github.com/karlcswanson/micboard", "dependencies": { "@ibm/plex": "^1.1.3", "bootstrap": "^4.1.2", @@ -23,9 +26,13 @@ "npm": "^6.4.0", "popper.js": "^1.14.3", "qrcode": "^1.2.2", - "smoothie": "^1.35.0" + "smoothie": "^1.35.0", + "webpack-cli": "^3.1.2" }, "devDependencies": { - "electron": "^2.0.7" + "css-loader": "^1.0.0", + "electron": "^2.0.7", + "style-loader": "^0.23.0", + "webpack": "^4.20.2" } } diff --git a/static/bundle.js b/static/bundle.js new file mode 100644 index 00000000..a7c37c8e --- /dev/null +++ b/static/bundle.js @@ -0,0 +1,626 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 0); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./node_modules/bootstrap/dist/css/bootstrap.min.css": +/*!***********************************************************!*\ + !*** ./node_modules/bootstrap/dist/css/bootstrap.min.css ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("\nvar content = __webpack_require__(/*! !../../../css-loader!./bootstrap.min.css */ \"./node_modules/css-loader/index.js!./node_modules/bootstrap/dist/css/bootstrap.min.css\");\n\nif(typeof content === 'string') content = [[module.i, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! ../../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack:///./node_modules/bootstrap/dist/css/bootstrap.min.css?"); + +/***/ }), + +/***/ "./node_modules/bootstrap/dist/js/bootstrap.js": +/*!*****************************************************!*\ + !*** ./node_modules/bootstrap/dist/js/bootstrap.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/*!\n * Bootstrap v4.1.2 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n(function (global, factory) {\n true ? factory(exports, __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"), __webpack_require__(/*! popper.js */ \"./node_modules/popper.js/dist/esm/popper.js\")) :\n undefined;\n}(this, (function (exports,$,Popper) { 'use strict';\n\n $ = $ && $.hasOwnProperty('default') ? $['default'] : $;\n Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var Util = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n var TRANSITION_END = 'transitionend';\n var MAX_UID = 1000000;\n var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle: function handle(event) {\n if ($$$1(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n }\n\n return undefined; // eslint-disable-line no-undefined\n }\n };\n }\n\n function transitionEndEmulator(duration) {\n var _this = this;\n\n var called = false;\n $$$1(this).one(Util.TRANSITION_END, function () {\n called = true;\n });\n setTimeout(function () {\n if (!called) {\n Util.triggerTransitionEnd(_this);\n }\n }, duration);\n return this;\n }\n\n function setTransitionEndSupport() {\n $$$1.fn.emulateTransitionEnd = transitionEndEmulator;\n $$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n }\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n\n var Util = {\n TRANSITION_END: 'bsTransitionEnd',\n getUID: function getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix));\n\n return prefix;\n },\n getSelectorFromElement: function getSelectorFromElement(element) {\n var selector = element.getAttribute('data-target');\n\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || '';\n }\n\n try {\n return document.querySelector(selector) ? selector : null;\n } catch (err) {\n return null;\n }\n },\n getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var transitionDuration = $$$1(element).css('transition-duration');\n var floatTransitionDuration = parseFloat(transitionDuration); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER;\n },\n reflow: function reflow(element) {\n return element.offsetHeight;\n },\n triggerTransitionEnd: function triggerTransitionEnd(element) {\n $$$1(element).trigger(TRANSITION_END);\n },\n // TODO: Remove in v5\n supportsTransitionEnd: function supportsTransitionEnd() {\n return Boolean(TRANSITION_END);\n },\n isElement: function isElement(obj) {\n return (obj[0] || obj).nodeType;\n },\n typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n for (var property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n }\n }\n }\n };\n setTransitionEndSupport();\n return Util;\n }($);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.2): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var Alert = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'alert';\n var VERSION = '4.1.2';\n var DATA_KEY = 'bs.alert';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n };\n var Event = {\n CLOSE: \"close\" + EVENT_KEY,\n CLOSED: \"closed\" + EVENT_KEY,\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY\n };\n var ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var Alert =\n /*#__PURE__*/\n function () {\n function Alert(element) {\n this._element = element;\n } // Getters\n\n\n var _proto = Alert.prototype;\n\n // Public\n _proto.close = function close(element) {\n var rootElement = this._element;\n\n if (element) {\n rootElement = this._getRootElement(element);\n }\n\n var customEvent = this._triggerCloseEvent(rootElement);\n\n if (customEvent.isDefaultPrevented()) {\n return;\n }\n\n this._removeElement(rootElement);\n };\n\n _proto.dispose = function dispose() {\n $$$1.removeData(this._element, DATA_KEY);\n this._element = null;\n }; // Private\n\n\n _proto._getRootElement = function _getRootElement(element) {\n var selector = Util.getSelectorFromElement(element);\n var parent = false;\n\n if (selector) {\n parent = document.querySelector(selector);\n }\n\n if (!parent) {\n parent = $$$1(element).closest(\".\" + ClassName.ALERT)[0];\n }\n\n return parent;\n };\n\n _proto._triggerCloseEvent = function _triggerCloseEvent(element) {\n var closeEvent = $$$1.Event(Event.CLOSE);\n $$$1(element).trigger(closeEvent);\n return closeEvent;\n };\n\n _proto._removeElement = function _removeElement(element) {\n var _this = this;\n\n $$$1(element).removeClass(ClassName.SHOW);\n\n if (!$$$1(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element);\n\n return;\n }\n\n var transitionDuration = Util.getTransitionDurationFromElement(element);\n $$$1(element).one(Util.TRANSITION_END, function (event) {\n return _this._destroyElement(element, event);\n }).emulateTransitionEnd(transitionDuration);\n };\n\n _proto._destroyElement = function _destroyElement(element) {\n $$$1(element).detach().trigger(Event.CLOSED).remove();\n }; // Static\n\n\n Alert._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $element = $$$1(this);\n var data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Alert(this);\n $element.data(DATA_KEY, data);\n }\n\n if (config === 'close') {\n data[config](this);\n }\n });\n };\n\n Alert._handleDismiss = function _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault();\n }\n\n alertInstance.close(this);\n };\n };\n\n _createClass(Alert, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }]);\n\n return Alert;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $$$1.fn[NAME] = Alert._jQueryInterface;\n $$$1.fn[NAME].Constructor = Alert;\n\n $$$1.fn[NAME].noConflict = function () {\n $$$1.fn[NAME] = JQUERY_NO_CONFLICT;\n return Alert._jQueryInterface;\n };\n\n return Alert;\n }($);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.2): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var Button = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'button';\n var VERSION = '4.1.2';\n var DATA_KEY = 'bs.button';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n };\n var Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input',\n ACTIVE: '.active',\n BUTTON: '.btn'\n };\n var Event = {\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY,\n FOCUS_BLUR_DATA_API: \"focus\" + EVENT_KEY + DATA_API_KEY + \" \" + (\"blur\" + EVENT_KEY + DATA_API_KEY)\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var Button =\n /*#__PURE__*/\n function () {\n function Button(element) {\n this._element = element;\n } // Getters\n\n\n var _proto = Button.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n var triggerChangeEvent = true;\n var addAriaPressed = true;\n var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];\n\n if (rootElement) {\n var input = this._element.querySelector(Selector.INPUT);\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked && this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false;\n } else {\n var activeElement = rootElement.querySelector(Selector.ACTIVE);\n\n if (activeElement) {\n $$$1(activeElement).removeClass(ClassName.ACTIVE);\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {\n return;\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE);\n $$$1(input).trigger('change');\n }\n\n input.focus();\n addAriaPressed = false;\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed', !this._element.classList.contains(ClassName.ACTIVE));\n }\n\n if (triggerChangeEvent) {\n $$$1(this._element).toggleClass(ClassName.ACTIVE);\n }\n };\n\n _proto.dispose = function dispose() {\n $$$1.removeData(this._element, DATA_KEY);\n this._element = null;\n }; // Static\n\n\n Button._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $$$1(this).data(DATA_KEY);\n\n if (!data) {\n data = new Button(this);\n $$$1(this).data(DATA_KEY, data);\n }\n\n if (config === 'toggle') {\n data[config]();\n }\n });\n };\n\n _createClass(Button, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }]);\n\n return Button;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {\n event.preventDefault();\n var button = event.target;\n\n if (!$$$1(button).hasClass(ClassName.BUTTON)) {\n button = $$$1(button).closest(Selector.BUTTON);\n }\n\n Button._jQueryInterface.call($$$1(button), 'toggle');\n }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {\n var button = $$$1(event.target).closest(Selector.BUTTON)[0];\n $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $$$1.fn[NAME] = Button._jQueryInterface;\n $$$1.fn[NAME].Constructor = Button;\n\n $$$1.fn[NAME].noConflict = function () {\n $$$1.fn[NAME] = JQUERY_NO_CONFLICT;\n return Button._jQueryInterface;\n };\n\n return Button;\n }($);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.2): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var Carousel = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'carousel';\n var VERSION = '4.1.2';\n var DATA_KEY = 'bs.carousel';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key\n\n var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key\n\n var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n var Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true\n };\n var DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean'\n };\n var Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n };\n var Event = {\n SLIDE: \"slide\" + EVENT_KEY,\n SLID: \"slid\" + EVENT_KEY,\n KEYDOWN: \"keydown\" + EVENT_KEY,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY,\n TOUCHEND: \"touchend\" + EVENT_KEY,\n LOAD_DATA_API: \"load\" + EVENT_KEY + DATA_API_KEY,\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY\n };\n var ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item'\n };\n var Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var Carousel =\n /*#__PURE__*/\n function () {\n function Carousel(element, config) {\n this._items = null;\n this._interval = null;\n this._activeElement = null;\n this._isPaused = false;\n this._isSliding = false;\n this.touchTimeout = null;\n this._config = this._getConfig(config);\n this._element = $$$1(element)[0];\n this._indicatorsElement = this._element.querySelector(Selector.INDICATORS);\n\n this._addEventListeners();\n } // Getters\n\n\n var _proto = Carousel.prototype;\n\n // Public\n _proto.next = function next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT);\n }\n };\n\n _proto.nextWhenVisible = function nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') {\n this.next();\n }\n };\n\n _proto.prev = function prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV);\n }\n };\n\n _proto.pause = function pause(event) {\n if (!event) {\n this._isPaused = true;\n }\n\n if (this._element.querySelector(Selector.NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element);\n this.cycle(true);\n }\n\n clearInterval(this._interval);\n this._interval = null;\n };\n\n _proto.cycle = function cycle(event) {\n if (!event) {\n this._isPaused = false;\n }\n\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n }\n };\n\n _proto.to = function to(index) {\n var _this = this;\n\n this._activeElement = this._element.querySelector(Selector.ACTIVE_ITEM);\n\n var activeIndex = this._getItemIndex(this._activeElement);\n\n if (index > this._items.length - 1 || index < 0) {\n return;\n }\n\n if (this._isSliding) {\n $$$1(this._element).one(Event.SLID, function () {\n return _this.to(index);\n });\n return;\n }\n\n if (activeIndex === index) {\n this.pause();\n this.cycle();\n return;\n }\n\n var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;\n\n this._slide(direction, this._items[index]);\n };\n\n _proto.dispose = function dispose() {\n $$$1(this._element).off(EVENT_KEY);\n $$$1.removeData(this._element, DATA_KEY);\n this._items = null;\n this._config = null;\n this._element = null;\n this._interval = null;\n this._isPaused = null;\n this._isSliding = null;\n this._activeElement = null;\n this._indicatorsElement = null;\n }; // Private\n\n\n _proto._getConfig = function _getConfig(config) {\n config = _objectSpread({}, Default, config);\n Util.typeCheckConfig(NAME, config, DefaultType);\n return config;\n };\n\n _proto._addEventListeners = function _addEventListeners() {\n var _this2 = this;\n\n if (this._config.keyboard) {\n $$$1(this._element).on(Event.KEYDOWN, function (event) {\n return _this2._keydown(event);\n });\n }\n\n if (this._config.pause === 'hover') {\n $$$1(this._element).on(Event.MOUSEENTER, function (event) {\n return _this2.pause(event);\n }).on(Event.MOUSELEAVE, function (event) {\n return _this2.cycle(event);\n });\n\n if ('ontouchstart' in document.documentElement) {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n $$$1(this._element).on(Event.TOUCHEND, function () {\n _this2.pause();\n\n if (_this2.touchTimeout) {\n clearTimeout(_this2.touchTimeout);\n }\n\n _this2.touchTimeout = setTimeout(function (event) {\n return _this2.cycle(event);\n }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);\n });\n }\n }\n };\n\n _proto._keydown = function _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault();\n this.prev();\n break;\n\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault();\n this.next();\n break;\n\n default:\n }\n };\n\n _proto._getItemIndex = function _getItemIndex(element) {\n this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(Selector.ITEM)) : [];\n return this._items.indexOf(element);\n };\n\n _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {\n var isNextDirection = direction === Direction.NEXT;\n var isPrevDirection = direction === Direction.PREV;\n\n var activeIndex = this._getItemIndex(activeElement);\n\n var lastItemIndex = this._items.length - 1;\n var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement;\n }\n\n var delta = direction === Direction.PREV ? -1 : 1;\n var itemIndex = (activeIndex + delta) % this._items.length;\n return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\n };\n\n _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n var targetIndex = this._getItemIndex(relatedTarget);\n\n var fromIndex = this._getItemIndex(this._element.querySelector(Selector.ACTIVE_ITEM));\n\n var slideEvent = $$$1.Event(Event.SLIDE, {\n relatedTarget: relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n });\n $$$1(this._element).trigger(slideEvent);\n return slideEvent;\n };\n\n _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector.ACTIVE));\n $$$1(indicators).removeClass(ClassName.ACTIVE);\n\n var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\n\n if (nextIndicator) {\n $$$1(nextIndicator).addClass(ClassName.ACTIVE);\n }\n }\n };\n\n _proto._slide = function _slide(direction, element) {\n var _this3 = this;\n\n var activeElement = this._element.querySelector(Selector.ACTIVE_ITEM);\n\n var activeElementIndex = this._getItemIndex(activeElement);\n\n var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\n\n var nextElementIndex = this._getItemIndex(nextElement);\n\n var isCycling = Boolean(this._interval);\n var directionalClassName;\n var orderClassName;\n var eventDirectionName;\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT;\n orderClassName = ClassName.NEXT;\n eventDirectionName = Direction.LEFT;\n } else {\n directionalClassName = ClassName.RIGHT;\n orderClassName = ClassName.PREV;\n eventDirectionName = Direction.RIGHT;\n }\n\n if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false;\n return;\n }\n\n var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\n if (slideEvent.isDefaultPrevented()) {\n return;\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return;\n }\n\n this._isSliding = true;\n\n if (isCycling) {\n this.pause();\n }\n\n this._setActiveIndicatorElement(nextElement);\n\n var slidEvent = $$$1.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n });\n\n if ($$$1(this._element).hasClass(ClassName.SLIDE)) {\n $$$1(nextElement).addClass(orderClassName);\n Util.reflow(nextElement);\n $$$1(activeElement).addClass(directionalClassName);\n $$$1(nextElement).addClass(directionalClassName);\n var transitionDuration = Util.getTransitionDurationFromElement(activeElement);\n $$$1(activeElement).one(Util.TRANSITION_END, function () {\n $$$1(nextElement).removeClass(directionalClassName + \" \" + orderClassName).addClass(ClassName.ACTIVE);\n $$$1(activeElement).removeClass(ClassName.ACTIVE + \" \" + orderClassName + \" \" + directionalClassName);\n _this3._isSliding = false;\n setTimeout(function () {\n return $$$1(_this3._element).trigger(slidEvent);\n }, 0);\n }).emulateTransitionEnd(transitionDuration);\n } else {\n $$$1(activeElement).removeClass(ClassName.ACTIVE);\n $$$1(nextElement).addClass(ClassName.ACTIVE);\n this._isSliding = false;\n $$$1(this._element).trigger(slidEvent);\n }\n\n if (isCycling) {\n this.cycle();\n }\n }; // Static\n\n\n Carousel._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $$$1(this).data(DATA_KEY);\n\n var _config = _objectSpread({}, Default, $$$1(this).data());\n\n if (typeof config === 'object') {\n _config = _objectSpread({}, _config, config);\n }\n\n var action = typeof config === 'string' ? config : _config.slide;\n\n if (!data) {\n data = new Carousel(this, _config);\n $$$1(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'number') {\n data.to(config);\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + action + \"\\\"\");\n }\n\n data[action]();\n } else if (_config.interval) {\n data.pause();\n data.cycle();\n }\n });\n };\n\n Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {\n var selector = Util.getSelectorFromElement(this);\n\n if (!selector) {\n return;\n }\n\n var target = $$$1(selector)[0];\n\n if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) {\n return;\n }\n\n var config = _objectSpread({}, $$$1(target).data(), $$$1(this).data());\n\n var slideIndex = this.getAttribute('data-slide-to');\n\n if (slideIndex) {\n config.interval = false;\n }\n\n Carousel._jQueryInterface.call($$$1(target), config);\n\n if (slideIndex) {\n $$$1(target).data(DATA_KEY).to(slideIndex);\n }\n\n event.preventDefault();\n };\n\n _createClass(Carousel, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }]);\n\n return Carousel;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);\n $$$1(window).on(Event.LOAD_DATA_API, function () {\n var carousels = [].slice.call(document.querySelectorAll(Selector.DATA_RIDE));\n\n for (var i = 0, len = carousels.length; i < len; i++) {\n var $carousel = $$$1(carousels[i]);\n\n Carousel._jQueryInterface.call($carousel, $carousel.data());\n }\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $$$1.fn[NAME] = Carousel._jQueryInterface;\n $$$1.fn[NAME].Constructor = Carousel;\n\n $$$1.fn[NAME].noConflict = function () {\n $$$1.fn[NAME] = JQUERY_NO_CONFLICT;\n return Carousel._jQueryInterface;\n };\n\n return Carousel;\n }($);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.2): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var Collapse = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'collapse';\n var VERSION = '4.1.2';\n var DATA_KEY = 'bs.collapse';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var Default = {\n toggle: true,\n parent: ''\n };\n var DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n };\n var Event = {\n SHOW: \"show\" + EVENT_KEY,\n SHOWN: \"shown\" + EVENT_KEY,\n HIDE: \"hide\" + EVENT_KEY,\n HIDDEN: \"hidden\" + EVENT_KEY,\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY\n };\n var ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n };\n var Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n };\n var Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var Collapse =\n /*#__PURE__*/\n function () {\n function Collapse(element, config) {\n this._isTransitioning = false;\n this._element = element;\n this._config = this._getConfig(config);\n this._triggerArray = $$$1.makeArray(document.querySelectorAll(\"[data-toggle=\\\"collapse\\\"][href=\\\"#\" + element.id + \"\\\"],\" + (\"[data-toggle=\\\"collapse\\\"][data-target=\\\"#\" + element.id + \"\\\"]\")));\n var toggleList = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE));\n\n for (var i = 0, len = toggleList.length; i < len; i++) {\n var elem = toggleList[i];\n var selector = Util.getSelectorFromElement(elem);\n var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {\n return foundElem === element;\n });\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector;\n\n this._triggerArray.push(elem);\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null;\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray);\n }\n\n if (this._config.toggle) {\n this.toggle();\n }\n } // Getters\n\n\n var _proto = Collapse.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n if ($$$1(this._element).hasClass(ClassName.SHOW)) {\n this.hide();\n } else {\n this.show();\n }\n };\n\n _proto.show = function show() {\n var _this = this;\n\n if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {\n return;\n }\n\n var actives;\n var activesData;\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(Selector.ACTIVES)).filter(function (elem) {\n return elem.getAttribute('data-parent') === _this._config.parent;\n });\n\n if (actives.length === 0) {\n actives = null;\n }\n }\n\n if (actives) {\n activesData = $$$1(actives).not(this._selector).data(DATA_KEY);\n\n if (activesData && activesData._isTransitioning) {\n return;\n }\n }\n\n var startEvent = $$$1.Event(Event.SHOW);\n $$$1(this._element).trigger(startEvent);\n\n if (startEvent.isDefaultPrevented()) {\n return;\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');\n\n if (!activesData) {\n $$$1(actives).data(DATA_KEY, null);\n }\n }\n\n var dimension = this._getDimension();\n\n $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);\n this._element.style[dimension] = 0;\n\n if (this._triggerArray.length) {\n $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);\n }\n\n this.setTransitioning(true);\n\n var complete = function complete() {\n $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);\n _this._element.style[dimension] = '';\n\n _this.setTransitioning(false);\n\n $$$1(_this._element).trigger(Event.SHOWN);\n };\n\n var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n var scrollSize = \"scroll\" + capitalizedDimension;\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n this._element.style[dimension] = this._element[scrollSize] + \"px\";\n };\n\n _proto.hide = function hide() {\n var _this2 = this;\n\n if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {\n return;\n }\n\n var startEvent = $$$1.Event(Event.HIDE);\n $$$1(this._element).trigger(startEvent);\n\n if (startEvent.isDefaultPrevented()) {\n return;\n }\n\n var dimension = this._getDimension();\n\n this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\n Util.reflow(this._element);\n $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);\n var triggerArrayLength = this._triggerArray.length;\n\n if (triggerArrayLength > 0) {\n for (var i = 0; i < triggerArrayLength; i++) {\n var trigger = this._triggerArray[i];\n var selector = Util.getSelectorFromElement(trigger);\n\n if (selector !== null) {\n var $elem = $$$1([].slice.call(document.querySelectorAll(selector)));\n\n if (!$elem.hasClass(ClassName.SHOW)) {\n $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);\n }\n }\n }\n }\n\n this.setTransitioning(true);\n\n var complete = function complete() {\n _this2.setTransitioning(false);\n\n $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);\n };\n\n this._element.style[dimension] = '';\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n };\n\n _proto.setTransitioning = function setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning;\n };\n\n _proto.dispose = function dispose() {\n $$$1.removeData(this._element, DATA_KEY);\n this._config = null;\n this._parent = null;\n this._element = null;\n this._triggerArray = null;\n this._isTransitioning = null;\n }; // Private\n\n\n _proto._getConfig = function _getConfig(config) {\n config = _objectSpread({}, Default, config);\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n Util.typeCheckConfig(NAME, config, DefaultType);\n return config;\n };\n\n _proto._getDimension = function _getDimension() {\n var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;\n };\n\n _proto._getParent = function _getParent() {\n var _this3 = this;\n\n var parent = null;\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent; // It's a jQuery object\n\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0];\n }\n } else {\n parent = document.querySelector(this._config.parent);\n }\n\n var selector = \"[data-toggle=\\\"collapse\\\"][data-parent=\\\"\" + this._config.parent + \"\\\"]\";\n var children = [].slice.call(parent.querySelectorAll(selector));\n $$$1(children).each(function (i, element) {\n _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\n });\n return parent;\n };\n\n _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n var isOpen = $$$1(element).hasClass(ClassName.SHOW);\n\n if (triggerArray.length) {\n $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\n }\n }\n }; // Static\n\n\n Collapse._getTargetFromElement = function _getTargetFromElement(element) {\n var selector = Util.getSelectorFromElement(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n Collapse._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $this = $$$1(this);\n var data = $this.data(DATA_KEY);\n\n var _config = _objectSpread({}, Default, $this.data(), typeof config === 'object' && config ? config : {});\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n if (!data) {\n data = new Collapse(this, _config);\n $this.data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(Collapse, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }]);\n\n return Collapse;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault();\n }\n\n var $trigger = $$$1(this);\n var selector = Util.getSelectorFromElement(this);\n var selectors = [].slice.call(document.querySelectorAll(selector));\n $$$1(selectors).each(function () {\n var $target = $$$1(this);\n var data = $target.data(DATA_KEY);\n var config = data ? 'toggle' : $trigger.data();\n\n Collapse._jQueryInterface.call($target, config);\n });\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $$$1.fn[NAME] = Collapse._jQueryInterface;\n $$$1.fn[NAME].Constructor = Collapse;\n\n $$$1.fn[NAME].noConflict = function () {\n $$$1.fn[NAME] = JQUERY_NO_CONFLICT;\n return Collapse._jQueryInterface;\n };\n\n return Collapse;\n }($);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.2): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var Dropdown = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'dropdown';\n var VERSION = '4.1.2';\n var DATA_KEY = 'bs.dropdown';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key\n\n var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key\n\n var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\n\n var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\n\n var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\n\n var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + \"|\" + ARROW_DOWN_KEYCODE + \"|\" + ESCAPE_KEYCODE);\n var Event = {\n HIDE: \"hide\" + EVENT_KEY,\n HIDDEN: \"hidden\" + EVENT_KEY,\n SHOW: \"show\" + EVENT_KEY,\n SHOWN: \"shown\" + EVENT_KEY,\n CLICK: \"click\" + EVENT_KEY,\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY,\n KEYDOWN_DATA_API: \"keydown\" + EVENT_KEY + DATA_API_KEY,\n KEYUP_DATA_API: \"keyup\" + EVENT_KEY + DATA_API_KEY\n };\n var ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n MENULEFT: 'dropdown-menu-left',\n POSITION_STATIC: 'position-static'\n };\n var Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n };\n var AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n };\n var Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n };\n var DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var Dropdown =\n /*#__PURE__*/\n function () {\n function Dropdown(element, config) {\n this._element = element;\n this._popper = null;\n this._config = this._getConfig(config);\n this._menu = this._getMenuElement();\n this._inNavbar = this._detectNavbar();\n\n this._addEventListeners();\n } // Getters\n\n\n var _proto = Dropdown.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {\n return;\n }\n\n var parent = Dropdown._getParentFromElement(this._element);\n\n var isActive = $$$1(this._menu).hasClass(ClassName.SHOW);\n\n Dropdown._clearMenus();\n\n if (isActive) {\n return;\n }\n\n var relatedTarget = {\n relatedTarget: this._element\n };\n var showEvent = $$$1.Event(Event.SHOW, relatedTarget);\n $$$1(parent).trigger(showEvent);\n\n if (showEvent.isDefaultPrevented()) {\n return;\n } // Disable totally Popper.js for Dropdown in Navbar\n\n\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');\n }\n\n var referenceElement = this._element;\n\n if (this._config.reference === 'parent') {\n referenceElement = parent;\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference; // Check if it's jQuery element\n\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0];\n }\n } // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n\n\n if (this._config.boundary !== 'scrollParent') {\n $$$1(parent).addClass(ClassName.POSITION_STATIC);\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $$$1(document.body).children().on('mouseover', null, $$$1.noop);\n }\n\n this._element.focus();\n\n this._element.setAttribute('aria-expanded', true);\n\n $$$1(this._menu).toggleClass(ClassName.SHOW);\n $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget));\n };\n\n _proto.dispose = function dispose() {\n $$$1.removeData(this._element, DATA_KEY);\n $$$1(this._element).off(EVENT_KEY);\n this._element = null;\n this._menu = null;\n\n if (this._popper !== null) {\n this._popper.destroy();\n\n this._popper = null;\n }\n };\n\n _proto.update = function update() {\n this._inNavbar = this._detectNavbar();\n\n if (this._popper !== null) {\n this._popper.scheduleUpdate();\n }\n }; // Private\n\n\n _proto._addEventListeners = function _addEventListeners() {\n var _this = this;\n\n $$$1(this._element).on(Event.CLICK, function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n _this.toggle();\n });\n };\n\n _proto._getConfig = function _getConfig(config) {\n config = _objectSpread({}, this.constructor.Default, $$$1(this._element).data(), config);\n Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);\n return config;\n };\n\n _proto._getMenuElement = function _getMenuElement() {\n if (!this._menu) {\n var parent = Dropdown._getParentFromElement(this._element);\n\n if (parent) {\n this._menu = parent.querySelector(Selector.MENU);\n }\n }\n\n return this._menu;\n };\n\n _proto._getPlacement = function _getPlacement() {\n var $parentDropdown = $$$1(this._element.parentNode);\n var placement = AttachmentMap.BOTTOM; // Handle dropup\n\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP;\n\n if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND;\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT;\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT;\n } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND;\n }\n\n return placement;\n };\n\n _proto._detectNavbar = function _detectNavbar() {\n return $$$1(this._element).closest('.navbar').length > 0;\n };\n\n _proto._getPopperConfig = function _getPopperConfig() {\n var _this2 = this;\n\n var offsetConf = {};\n\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = function (data) {\n data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets) || {});\n return data;\n };\n } else {\n offsetConf.offset = this._config.offset;\n }\n\n var popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n } // Disable Popper.js if we have a static display\n\n };\n\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n };\n }\n\n return popperConfig;\n }; // Static\n\n\n Dropdown._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $$$1(this).data(DATA_KEY);\n\n var _config = typeof config === 'object' ? config : null;\n\n if (!data) {\n data = new Dropdown(this, _config);\n $$$1(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n Dropdown._clearMenus = function _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return;\n }\n\n var toggles = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE));\n\n for (var i = 0, len = toggles.length; i < len; i++) {\n var parent = Dropdown._getParentFromElement(toggles[i]);\n\n var context = $$$1(toggles[i]).data(DATA_KEY);\n var relatedTarget = {\n relatedTarget: toggles[i]\n };\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n\n if (!context) {\n continue;\n }\n\n var dropdownMenu = context._menu;\n\n if (!$$$1(parent).hasClass(ClassName.SHOW)) {\n continue;\n }\n\n if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) {\n continue;\n }\n\n var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);\n $$$1(parent).trigger(hideEvent);\n\n if (hideEvent.isDefaultPrevented()) {\n continue;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n\n if ('ontouchstart' in document.documentElement) {\n $$$1(document.body).children().off('mouseover', null, $$$1.noop);\n }\n\n toggles[i].setAttribute('aria-expanded', 'false');\n $$$1(dropdownMenu).removeClass(ClassName.SHOW);\n $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget));\n }\n };\n\n Dropdown._getParentFromElement = function _getParentFromElement(element) {\n var parent;\n var selector = Util.getSelectorFromElement(element);\n\n if (selector) {\n parent = document.querySelector(selector);\n }\n\n return parent || element.parentNode;\n }; // eslint-disable-next-line complexity\n\n\n Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {\n return;\n }\n\n var parent = Dropdown._getParentFromElement(this);\n\n var isActive = $$$1(parent).hasClass(ClassName.SHOW);\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n var toggle = parent.querySelector(Selector.DATA_TOGGLE);\n $$$1(toggle).trigger('focus');\n }\n\n $$$1(this).trigger('click');\n return;\n }\n\n var items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS));\n\n if (items.length === 0) {\n return;\n }\n\n var index = items.indexOf(event.target);\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) {\n // Up\n index--;\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\n // Down\n index++;\n }\n\n if (index < 0) {\n index = 0;\n }\n\n items[index].focus();\n };\n\n _createClass(Dropdown, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }]);\n\n return Dropdown;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + \" \" + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n Dropdown._jQueryInterface.call($$$1(this), 'toggle');\n }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {\n e.stopPropagation();\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $$$1.fn[NAME] = Dropdown._jQueryInterface;\n $$$1.fn[NAME].Constructor = Dropdown;\n\n $$$1.fn[NAME].noConflict = function () {\n $$$1.fn[NAME] = JQUERY_NO_CONFLICT;\n return Dropdown._jQueryInterface;\n };\n\n return Dropdown;\n }($, Popper);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.2): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var Modal = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'modal';\n var VERSION = '4.1.2';\n var DATA_KEY = 'bs.modal';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n var Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n };\n var DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n };\n var Event = {\n HIDE: \"hide\" + EVENT_KEY,\n HIDDEN: \"hidden\" + EVENT_KEY,\n SHOW: \"show\" + EVENT_KEY,\n SHOWN: \"shown\" + EVENT_KEY,\n FOCUSIN: \"focusin\" + EVENT_KEY,\n RESIZE: \"resize\" + EVENT_KEY,\n CLICK_DISMISS: \"click.dismiss\" + EVENT_KEY,\n KEYDOWN_DISMISS: \"keydown.dismiss\" + EVENT_KEY,\n MOUSEUP_DISMISS: \"mouseup.dismiss\" + EVENT_KEY,\n MOUSEDOWN_DISMISS: \"mousedown.dismiss\" + EVENT_KEY,\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY\n };\n var ClassName = {\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n };\n var Selector = {\n DIALOG: '.modal-dialog',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var Modal =\n /*#__PURE__*/\n function () {\n function Modal(element, config) {\n this._config = this._getConfig(config);\n this._element = element;\n this._dialog = element.querySelector(Selector.DIALOG);\n this._backdrop = null;\n this._isShown = false;\n this._isBodyOverflowing = false;\n this._ignoreBackdropClick = false;\n this._scrollbarWidth = 0;\n } // Getters\n\n\n var _proto = Modal.prototype;\n\n // Public\n _proto.toggle = function toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n };\n\n _proto.show = function show(relatedTarget) {\n var _this = this;\n\n if (this._isTransitioning || this._isShown) {\n return;\n }\n\n if ($$$1(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true;\n }\n\n var showEvent = $$$1.Event(Event.SHOW, {\n relatedTarget: relatedTarget\n });\n $$$1(this._element).trigger(showEvent);\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = true;\n\n this._checkScrollbar();\n\n this._setScrollbar();\n\n this._adjustDialog();\n\n $$$1(document.body).addClass(ClassName.OPEN);\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {\n return _this.hide(event);\n });\n $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {\n $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {\n if ($$$1(event.target).is(_this._element)) {\n _this._ignoreBackdropClick = true;\n }\n });\n });\n\n this._showBackdrop(function () {\n return _this._showElement(relatedTarget);\n });\n };\n\n _proto.hide = function hide(event) {\n var _this2 = this;\n\n if (event) {\n event.preventDefault();\n }\n\n if (this._isTransitioning || !this._isShown) {\n return;\n }\n\n var hideEvent = $$$1.Event(Event.HIDE);\n $$$1(this._element).trigger(hideEvent);\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = false;\n var transition = $$$1(this._element).hasClass(ClassName.FADE);\n\n if (transition) {\n this._isTransitioning = true;\n }\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n $$$1(document).off(Event.FOCUSIN);\n $$$1(this._element).removeClass(ClassName.SHOW);\n $$$1(this._element).off(Event.CLICK_DISMISS);\n $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS);\n\n if (transition) {\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $$$1(this._element).one(Util.TRANSITION_END, function (event) {\n return _this2._hideModal(event);\n }).emulateTransitionEnd(transitionDuration);\n } else {\n this._hideModal();\n }\n };\n\n _proto.dispose = function dispose() {\n $$$1.removeData(this._element, DATA_KEY);\n $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY);\n this._config = null;\n this._element = null;\n this._dialog = null;\n this._backdrop = null;\n this._isShown = null;\n this._isBodyOverflowing = null;\n this._ignoreBackdropClick = null;\n this._scrollbarWidth = null;\n };\n\n _proto.handleUpdate = function handleUpdate() {\n this._adjustDialog();\n }; // Private\n\n\n _proto._getConfig = function _getConfig(config) {\n config = _objectSpread({}, Default, config);\n Util.typeCheckConfig(NAME, config, DefaultType);\n return config;\n };\n\n _proto._showElement = function _showElement(relatedTarget) {\n var _this3 = this;\n\n var transition = $$$1(this._element).hasClass(ClassName.FADE);\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element);\n }\n\n this._element.style.display = 'block';\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.scrollTop = 0;\n\n if (transition) {\n Util.reflow(this._element);\n }\n\n $$$1(this._element).addClass(ClassName.SHOW);\n\n if (this._config.focus) {\n this._enforceFocus();\n }\n\n var shownEvent = $$$1.Event(Event.SHOWN, {\n relatedTarget: relatedTarget\n });\n\n var transitionComplete = function transitionComplete() {\n if (_this3._config.focus) {\n _this3._element.focus();\n }\n\n _this3._isTransitioning = false;\n $$$1(_this3._element).trigger(shownEvent);\n };\n\n if (transition) {\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);\n } else {\n transitionComplete();\n }\n };\n\n _proto._enforceFocus = function _enforceFocus() {\n var _this4 = this;\n\n $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, function (event) {\n if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {\n _this4._element.focus();\n }\n });\n };\n\n _proto._setEscapeEvent = function _setEscapeEvent() {\n var _this5 = this;\n\n if (this._isShown && this._config.keyboard) {\n $$$1(this._element).on(Event.KEYDOWN_DISMISS, function (event) {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault();\n\n _this5.hide();\n }\n });\n } else if (!this._isShown) {\n $$$1(this._element).off(Event.KEYDOWN_DISMISS);\n }\n };\n\n _proto._setResizeEvent = function _setResizeEvent() {\n var _this6 = this;\n\n if (this._isShown) {\n $$$1(window).on(Event.RESIZE, function (event) {\n return _this6.handleUpdate(event);\n });\n } else {\n $$$1(window).off(Event.RESIZE);\n }\n };\n\n _proto._hideModal = function _hideModal() {\n var _this7 = this;\n\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._isTransitioning = false;\n\n this._showBackdrop(function () {\n $$$1(document.body).removeClass(ClassName.OPEN);\n\n _this7._resetAdjustments();\n\n _this7._resetScrollbar();\n\n $$$1(_this7._element).trigger(Event.HIDDEN);\n });\n };\n\n _proto._removeBackdrop = function _removeBackdrop() {\n if (this._backdrop) {\n $$$1(this._backdrop).remove();\n this._backdrop = null;\n }\n };\n\n _proto._showBackdrop = function _showBackdrop(callback) {\n var _this8 = this;\n\n var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div');\n this._backdrop.className = ClassName.BACKDROP;\n\n if (animate) {\n this._backdrop.classList.add(animate);\n }\n\n $$$1(this._backdrop).appendTo(document.body);\n $$$1(this._element).on(Event.CLICK_DISMISS, function (event) {\n if (_this8._ignoreBackdropClick) {\n _this8._ignoreBackdropClick = false;\n return;\n }\n\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (_this8._config.backdrop === 'static') {\n _this8._element.focus();\n } else {\n _this8.hide();\n }\n });\n\n if (animate) {\n Util.reflow(this._backdrop);\n }\n\n $$$1(this._backdrop).addClass(ClassName.SHOW);\n\n if (!callback) {\n return;\n }\n\n if (!animate) {\n callback();\n return;\n }\n\n var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);\n } else if (!this._isShown && this._backdrop) {\n $$$1(this._backdrop).removeClass(ClassName.SHOW);\n\n var callbackRemove = function callbackRemove() {\n _this8._removeBackdrop();\n\n if (callback) {\n callback();\n }\n };\n\n if ($$$1(this._element).hasClass(ClassName.FADE)) {\n var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n\n $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);\n } else {\n callbackRemove();\n }\n } else if (callback) {\n callback();\n }\n }; // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n\n _proto._adjustDialog = function _adjustDialog() {\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = this._scrollbarWidth + \"px\";\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = this._scrollbarWidth + \"px\";\n }\n };\n\n _proto._resetAdjustments = function _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n };\n\n _proto._checkScrollbar = function _checkScrollbar() {\n var rect = document.body.getBoundingClientRect();\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;\n this._scrollbarWidth = this._getScrollbarWidth();\n };\n\n _proto._setScrollbar = function _setScrollbar() {\n var _this9 = this;\n\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n var fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));\n var stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT)); // Adjust fixed content padding\n\n $$$1(fixedContent).each(function (index, element) {\n var actualPadding = element.style.paddingRight;\n var calculatedPadding = $$$1(element).css('padding-right');\n $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + \"px\");\n }); // Adjust sticky content margin\n\n $$$1(stickyContent).each(function (index, element) {\n var actualMargin = element.style.marginRight;\n var calculatedMargin = $$$1(element).css('margin-right');\n $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + \"px\");\n }); // Adjust body padding\n\n var actualPadding = document.body.style.paddingRight;\n var calculatedPadding = $$$1(document.body).css('padding-right');\n $$$1(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + \"px\");\n }\n };\n\n _proto._resetScrollbar = function _resetScrollbar() {\n // Restore fixed content padding\n var fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));\n $$$1(fixedContent).each(function (index, element) {\n var padding = $$$1(element).data('padding-right');\n $$$1(element).removeData('padding-right');\n element.style.paddingRight = padding ? padding : '';\n }); // Restore sticky content\n\n var elements = [].slice.call(document.querySelectorAll(\"\" + Selector.STICKY_CONTENT));\n $$$1(elements).each(function (index, element) {\n var margin = $$$1(element).data('margin-right');\n\n if (typeof margin !== 'undefined') {\n $$$1(element).css('margin-right', margin).removeData('margin-right');\n }\n }); // Restore body padding\n\n var padding = $$$1(document.body).data('padding-right');\n $$$1(document.body).removeData('padding-right');\n document.body.style.paddingRight = padding ? padding : '';\n };\n\n _proto._getScrollbarWidth = function _getScrollbarWidth() {\n // thx d.walsh\n var scrollDiv = document.createElement('div');\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER;\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n }; // Static\n\n\n Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n var data = $$$1(this).data(DATA_KEY);\n\n var _config = _objectSpread({}, Default, $$$1(this).data(), typeof config === 'object' && config ? config : {});\n\n if (!data) {\n data = new Modal(this, _config);\n $$$1(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config](relatedTarget);\n } else if (_config.show) {\n data.show(relatedTarget);\n }\n });\n };\n\n _createClass(Modal, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }]);\n\n return Modal;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n var _this10 = this;\n\n var target;\n var selector = Util.getSelectorFromElement(this);\n\n if (selector) {\n target = document.querySelector(selector);\n }\n\n var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _objectSpread({}, $$$1(target).data(), $$$1(this).data());\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault();\n }\n\n var $target = $$$1(target).one(Event.SHOW, function (showEvent) {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return;\n }\n\n $target.one(Event.HIDDEN, function () {\n if ($$$1(_this10).is(':visible')) {\n _this10.focus();\n }\n });\n });\n\n Modal._jQueryInterface.call($$$1(target), config, this);\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $$$1.fn[NAME] = Modal._jQueryInterface;\n $$$1.fn[NAME].Constructor = Modal;\n\n $$$1.fn[NAME].noConflict = function () {\n $$$1.fn[NAME] = JQUERY_NO_CONFLICT;\n return Modal._jQueryInterface;\n };\n\n return Modal;\n }($);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.2): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var Tooltip = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'tooltip';\n var VERSION = '4.1.2';\n var DATA_KEY = 'bs.tooltip';\n var EVENT_KEY = \".\" + DATA_KEY;\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var CLASS_PREFIX = 'bs-tooltip';\n var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n var DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)'\n };\n var AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n };\n var Default = {\n animation: true,\n template: '
' + '
' + '
',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent'\n };\n var HoverState = {\n SHOW: 'show',\n OUT: 'out'\n };\n var Event = {\n HIDE: \"hide\" + EVENT_KEY,\n HIDDEN: \"hidden\" + EVENT_KEY,\n SHOW: \"show\" + EVENT_KEY,\n SHOWN: \"shown\" + EVENT_KEY,\n INSERTED: \"inserted\" + EVENT_KEY,\n CLICK: \"click\" + EVENT_KEY,\n FOCUSIN: \"focusin\" + EVENT_KEY,\n FOCUSOUT: \"focusout\" + EVENT_KEY,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY\n };\n var ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n };\n var Selector = {\n TOOLTIP: '.tooltip',\n TOOLTIP_INNER: '.tooltip-inner',\n ARROW: '.arrow'\n };\n var Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var Tooltip =\n /*#__PURE__*/\n function () {\n function Tooltip(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');\n } // private\n\n\n this._isEnabled = true;\n this._timeout = 0;\n this._hoverState = '';\n this._activeTrigger = {};\n this._popper = null; // Protected\n\n this.element = element;\n this.config = this._getConfig(config);\n this.tip = null;\n\n this._setListeners();\n } // Getters\n\n\n var _proto = Tooltip.prototype;\n\n // Public\n _proto.enable = function enable() {\n this._isEnabled = true;\n };\n\n _proto.disable = function disable() {\n this._isEnabled = false;\n };\n\n _proto.toggleEnabled = function toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n };\n\n _proto.toggle = function toggle(event) {\n if (!this._isEnabled) {\n return;\n }\n\n if (event) {\n var dataKey = this.constructor.DATA_KEY;\n var context = $$$1(event.currentTarget).data(dataKey);\n\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $$$1(event.currentTarget).data(dataKey, context);\n }\n\n context._activeTrigger.click = !context._activeTrigger.click;\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context);\n } else {\n context._leave(null, context);\n }\n } else {\n if ($$$1(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this);\n\n return;\n }\n\n this._enter(null, this);\n }\n };\n\n _proto.dispose = function dispose() {\n clearTimeout(this._timeout);\n $$$1.removeData(this.element, this.constructor.DATA_KEY);\n $$$1(this.element).off(this.constructor.EVENT_KEY);\n $$$1(this.element).closest('.modal').off('hide.bs.modal');\n\n if (this.tip) {\n $$$1(this.tip).remove();\n }\n\n this._isEnabled = null;\n this._timeout = null;\n this._hoverState = null;\n this._activeTrigger = null;\n\n if (this._popper !== null) {\n this._popper.destroy();\n }\n\n this._popper = null;\n this.element = null;\n this.config = null;\n this.tip = null;\n };\n\n _proto.show = function show() {\n var _this = this;\n\n if ($$$1(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements');\n }\n\n var showEvent = $$$1.Event(this.constructor.Event.SHOW);\n\n if (this.isWithContent() && this._isEnabled) {\n $$$1(this.element).trigger(showEvent);\n var isInTheDom = $$$1.contains(this.element.ownerDocument.documentElement, this.element);\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return;\n }\n\n var tip = this.getTipElement();\n var tipId = Util.getUID(this.constructor.NAME);\n tip.setAttribute('id', tipId);\n this.element.setAttribute('aria-describedby', tipId);\n this.setContent();\n\n if (this.config.animation) {\n $$$1(tip).addClass(ClassName.FADE);\n }\n\n var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;\n\n var attachment = this._getAttachment(placement);\n\n this.addAttachmentClass(attachment);\n var container = this.config.container === false ? document.body : $$$1(document).find(this.config.container);\n $$$1(tip).data(this.constructor.DATA_KEY, this);\n\n if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $$$1(tip).appendTo(container);\n }\n\n $$$1(this.element).trigger(this.constructor.Event.INSERTED);\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: {\n offset: this.config.offset\n },\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: function onCreate(data) {\n if (data.originalPlacement !== data.placement) {\n _this._handlePopperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n _this._handlePopperPlacementChange(data);\n }\n });\n $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n if ('ontouchstart' in document.documentElement) {\n $$$1(document.body).children().on('mouseover', null, $$$1.noop);\n }\n\n var complete = function complete() {\n if (_this.config.animation) {\n _this._fixTransition();\n }\n\n var prevHoverState = _this._hoverState;\n _this._hoverState = null;\n $$$1(_this.element).trigger(_this.constructor.Event.SHOWN);\n\n if (prevHoverState === HoverState.OUT) {\n _this._leave(null, _this);\n }\n };\n\n if ($$$1(this.tip).hasClass(ClassName.FADE)) {\n var transitionDuration = Util.getTransitionDurationFromElement(this.tip);\n $$$1(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n }\n };\n\n _proto.hide = function hide(callback) {\n var _this2 = this;\n\n var tip = this.getTipElement();\n var hideEvent = $$$1.Event(this.constructor.Event.HIDE);\n\n var complete = function complete() {\n if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip);\n }\n\n _this2._cleanTipClass();\n\n _this2.element.removeAttribute('aria-describedby');\n\n $$$1(_this2.element).trigger(_this2.constructor.Event.HIDDEN);\n\n if (_this2._popper !== null) {\n _this2._popper.destroy();\n }\n\n if (callback) {\n callback();\n }\n };\n\n $$$1(this.element).trigger(hideEvent);\n\n if (hideEvent.isDefaultPrevented()) {\n return;\n }\n\n $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n $$$1(document.body).children().off('mouseover', null, $$$1.noop);\n }\n\n this._activeTrigger[Trigger.CLICK] = false;\n this._activeTrigger[Trigger.FOCUS] = false;\n this._activeTrigger[Trigger.HOVER] = false;\n\n if ($$$1(this.tip).hasClass(ClassName.FADE)) {\n var transitionDuration = Util.getTransitionDurationFromElement(tip);\n $$$1(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n\n this._hoverState = '';\n };\n\n _proto.update = function update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate();\n }\n }; // Protected\n\n\n _proto.isWithContent = function isWithContent() {\n return Boolean(this.getTitle());\n };\n\n _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n $$$1(this.getTipElement()).addClass(CLASS_PREFIX + \"-\" + attachment);\n };\n\n _proto.getTipElement = function getTipElement() {\n this.tip = this.tip || $$$1(this.config.template)[0];\n return this.tip;\n };\n\n _proto.setContent = function setContent() {\n var tip = this.getTipElement();\n this.setElementContent($$$1(tip.querySelectorAll(Selector.TOOLTIP_INNER)), this.getTitle());\n $$$1(tip).removeClass(ClassName.FADE + \" \" + ClassName.SHOW);\n };\n\n _proto.setElementContent = function setElementContent($element, content) {\n var html = this.config.html;\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (html) {\n if (!$$$1(content).parent().is($element)) {\n $element.empty().append(content);\n }\n } else {\n $element.text($$$1(content).text());\n }\n } else {\n $element[html ? 'html' : 'text'](content);\n }\n };\n\n _proto.getTitle = function getTitle() {\n var title = this.element.getAttribute('data-original-title');\n\n if (!title) {\n title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;\n }\n\n return title;\n }; // Private\n\n\n _proto._getAttachment = function _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()];\n };\n\n _proto._setListeners = function _setListeners() {\n var _this3 = this;\n\n var triggers = this.config.trigger.split(' ');\n triggers.forEach(function (trigger) {\n if (trigger === 'click') {\n $$$1(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {\n return _this3.toggle(event);\n });\n } else if (trigger !== Trigger.MANUAL) {\n var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;\n var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;\n $$$1(_this3.element).on(eventIn, _this3.config.selector, function (event) {\n return _this3._enter(event);\n }).on(eventOut, _this3.config.selector, function (event) {\n return _this3._leave(event);\n });\n }\n\n $$$1(_this3.element).closest('.modal').on('hide.bs.modal', function () {\n return _this3.hide();\n });\n });\n\n if (this.config.selector) {\n this.config = _objectSpread({}, this.config, {\n trigger: 'manual',\n selector: ''\n });\n } else {\n this._fixTitle();\n }\n };\n\n _proto._fixTitle = function _fixTitle() {\n var titleType = typeof this.element.getAttribute('data-original-title');\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');\n this.element.setAttribute('title', '');\n }\n };\n\n _proto._enter = function _enter(event, context) {\n var dataKey = this.constructor.DATA_KEY;\n context = context || $$$1(event.currentTarget).data(dataKey);\n\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $$$1(event.currentTarget).data(dataKey, context);\n }\n\n if (event) {\n context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;\n }\n\n if ($$$1(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW;\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HoverState.SHOW;\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show();\n return;\n }\n\n context._timeout = setTimeout(function () {\n if (context._hoverState === HoverState.SHOW) {\n context.show();\n }\n }, context.config.delay.show);\n };\n\n _proto._leave = function _leave(event, context) {\n var dataKey = this.constructor.DATA_KEY;\n context = context || $$$1(event.currentTarget).data(dataKey);\n\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $$$1(event.currentTarget).data(dataKey, context);\n }\n\n if (event) {\n context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;\n }\n\n if (context._isWithActiveTrigger()) {\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HoverState.OUT;\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide();\n return;\n }\n\n context._timeout = setTimeout(function () {\n if (context._hoverState === HoverState.OUT) {\n context.hide();\n }\n }, context.config.delay.hide);\n };\n\n _proto._isWithActiveTrigger = function _isWithActiveTrigger() {\n for (var trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n };\n\n _proto._getConfig = function _getConfig(config) {\n config = _objectSpread({}, this.constructor.Default, $$$1(this.element).data(), typeof config === 'object' && config ? config : {});\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n\n Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);\n return config;\n };\n\n _proto._getDelegateConfig = function _getDelegateConfig() {\n var config = {};\n\n if (this.config) {\n for (var key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key];\n }\n }\n }\n\n return config;\n };\n\n _proto._cleanTipClass = function _cleanTipClass() {\n var $tip = $$$1(this.getTipElement());\n var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\n\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''));\n }\n };\n\n _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {\n var popperInstance = popperData.instance;\n this.tip = popperInstance.popper;\n\n this._cleanTipClass();\n\n this.addAttachmentClass(this._getAttachment(popperData.placement));\n };\n\n _proto._fixTransition = function _fixTransition() {\n var tip = this.getTipElement();\n var initConfigAnimation = this.config.animation;\n\n if (tip.getAttribute('x-placement') !== null) {\n return;\n }\n\n $$$1(tip).removeClass(ClassName.FADE);\n this.config.animation = false;\n this.hide();\n this.show();\n this.config.animation = initConfigAnimation;\n }; // Static\n\n\n Tooltip._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $$$1(this).data(DATA_KEY);\n\n var _config = typeof config === 'object' && config;\n\n if (!data && /dispose|hide/.test(config)) {\n return;\n }\n\n if (!data) {\n data = new Tooltip(this, _config);\n $$$1(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(Tooltip, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return EVENT_KEY;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }]);\n\n return Tooltip;\n }();\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n\n $$$1.fn[NAME] = Tooltip._jQueryInterface;\n $$$1.fn[NAME].Constructor = Tooltip;\n\n $$$1.fn[NAME].noConflict = function () {\n $$$1.fn[NAME] = JQUERY_NO_CONFLICT;\n return Tooltip._jQueryInterface;\n };\n\n return Tooltip;\n }($, Popper);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.2): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var Popover = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'popover';\n var VERSION = '4.1.2';\n var DATA_KEY = 'bs.popover';\n var EVENT_KEY = \".\" + DATA_KEY;\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var CLASS_PREFIX = 'bs-popover';\n var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n\n var Default = _objectSpread({}, Tooltip.Default, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '
' + '
' + '

' + '
'\n });\n\n var DefaultType = _objectSpread({}, Tooltip.DefaultType, {\n content: '(string|element|function)'\n });\n\n var ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n };\n var Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n };\n var Event = {\n HIDE: \"hide\" + EVENT_KEY,\n HIDDEN: \"hidden\" + EVENT_KEY,\n SHOW: \"show\" + EVENT_KEY,\n SHOWN: \"shown\" + EVENT_KEY,\n INSERTED: \"inserted\" + EVENT_KEY,\n CLICK: \"click\" + EVENT_KEY,\n FOCUSIN: \"focusin\" + EVENT_KEY,\n FOCUSOUT: \"focusout\" + EVENT_KEY,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var Popover =\n /*#__PURE__*/\n function (_Tooltip) {\n _inheritsLoose(Popover, _Tooltip);\n\n function Popover() {\n return _Tooltip.apply(this, arguments) || this;\n }\n\n var _proto = Popover.prototype;\n\n // Overrides\n _proto.isWithContent = function isWithContent() {\n return this.getTitle() || this._getContent();\n };\n\n _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n $$$1(this.getTipElement()).addClass(CLASS_PREFIX + \"-\" + attachment);\n };\n\n _proto.getTipElement = function getTipElement() {\n this.tip = this.tip || $$$1(this.config.template)[0];\n return this.tip;\n };\n\n _proto.setContent = function setContent() {\n var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events\n\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle());\n\n var content = this._getContent();\n\n if (typeof content === 'function') {\n content = content.call(this.element);\n }\n\n this.setElementContent($tip.find(Selector.CONTENT), content);\n $tip.removeClass(ClassName.FADE + \" \" + ClassName.SHOW);\n }; // Private\n\n\n _proto._getContent = function _getContent() {\n return this.element.getAttribute('data-content') || this.config.content;\n };\n\n _proto._cleanTipClass = function _cleanTipClass() {\n var $tip = $$$1(this.getTipElement());\n var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\n\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''));\n }\n }; // Static\n\n\n Popover._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $$$1(this).data(DATA_KEY);\n\n var _config = typeof config === 'object' ? config : null;\n\n if (!data && /destroy|hide/.test(config)) {\n return;\n }\n\n if (!data) {\n data = new Popover(this, _config);\n $$$1(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(Popover, null, [{\n key: \"VERSION\",\n // Getters\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return EVENT_KEY;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }]);\n\n return Popover;\n }(Tooltip);\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n\n $$$1.fn[NAME] = Popover._jQueryInterface;\n $$$1.fn[NAME].Constructor = Popover;\n\n $$$1.fn[NAME].noConflict = function () {\n $$$1.fn[NAME] = JQUERY_NO_CONFLICT;\n return Popover._jQueryInterface;\n };\n\n return Popover;\n }($);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.2): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var ScrollSpy = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'scrollspy';\n var VERSION = '4.1.2';\n var DATA_KEY = 'bs.scrollspy';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var Default = {\n offset: 10,\n method: 'auto',\n target: ''\n };\n var DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n };\n var Event = {\n ACTIVATE: \"activate\" + EVENT_KEY,\n SCROLL: \"scroll\" + EVENT_KEY,\n LOAD_DATA_API: \"load\" + EVENT_KEY + DATA_API_KEY\n };\n var ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active'\n };\n var Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n ACTIVE: '.active',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_ITEMS: '.dropdown-item',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n };\n var OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var ScrollSpy =\n /*#__PURE__*/\n function () {\n function ScrollSpy(element, config) {\n var _this = this;\n\n this._element = element;\n this._scrollElement = element.tagName === 'BODY' ? window : element;\n this._config = this._getConfig(config);\n this._selector = this._config.target + \" \" + Selector.NAV_LINKS + \",\" + (this._config.target + \" \" + Selector.LIST_ITEMS + \",\") + (this._config.target + \" \" + Selector.DROPDOWN_ITEMS);\n this._offsets = [];\n this._targets = [];\n this._activeTarget = null;\n this._scrollHeight = 0;\n $$$1(this._scrollElement).on(Event.SCROLL, function (event) {\n return _this._process(event);\n });\n this.refresh();\n\n this._process();\n } // Getters\n\n\n var _proto = ScrollSpy.prototype;\n\n // Public\n _proto.refresh = function refresh() {\n var _this2 = this;\n\n var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;\n var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;\n this._offsets = [];\n this._targets = [];\n this._scrollHeight = this._getScrollHeight();\n var targets = [].slice.call(document.querySelectorAll(this._selector));\n targets.map(function (element) {\n var target;\n var targetSelector = Util.getSelectorFromElement(element);\n\n if (targetSelector) {\n target = document.querySelector(targetSelector);\n }\n\n if (target) {\n var targetBCR = target.getBoundingClientRect();\n\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];\n }\n }\n\n return null;\n }).filter(function (item) {\n return item;\n }).sort(function (a, b) {\n return a[0] - b[0];\n }).forEach(function (item) {\n _this2._offsets.push(item[0]);\n\n _this2._targets.push(item[1]);\n });\n };\n\n _proto.dispose = function dispose() {\n $$$1.removeData(this._element, DATA_KEY);\n $$$1(this._scrollElement).off(EVENT_KEY);\n this._element = null;\n this._scrollElement = null;\n this._config = null;\n this._selector = null;\n this._offsets = null;\n this._targets = null;\n this._activeTarget = null;\n this._scrollHeight = null;\n }; // Private\n\n\n _proto._getConfig = function _getConfig(config) {\n config = _objectSpread({}, Default, typeof config === 'object' && config ? config : {});\n\n if (typeof config.target !== 'string') {\n var id = $$$1(config.target).attr('id');\n\n if (!id) {\n id = Util.getUID(NAME);\n $$$1(config.target).attr('id', id);\n }\n\n config.target = \"#\" + id;\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType);\n return config;\n };\n\n _proto._getScrollTop = function _getScrollTop() {\n return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n };\n\n _proto._getScrollHeight = function _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n };\n\n _proto._getOffsetHeight = function _getOffsetHeight() {\n return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n };\n\n _proto._process = function _process() {\n var scrollTop = this._getScrollTop() + this._config.offset;\n\n var scrollHeight = this._getScrollHeight();\n\n var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh();\n }\n\n if (scrollTop >= maxScroll) {\n var target = this._targets[this._targets.length - 1];\n\n if (this._activeTarget !== target) {\n this._activate(target);\n }\n\n return;\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null;\n\n this._clear();\n\n return;\n }\n\n var offsetLength = this._offsets.length;\n\n for (var i = offsetLength; i--;) {\n var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n\n if (isActiveTarget) {\n this._activate(this._targets[i]);\n }\n }\n };\n\n _proto._activate = function _activate(target) {\n this._activeTarget = target;\n\n this._clear();\n\n var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style\n\n\n queries = queries.map(function (selector) {\n return selector + \"[data-target=\\\"\" + target + \"\\\"],\" + (selector + \"[href=\\\"\" + target + \"\\\"]\");\n });\n var $link = $$$1([].slice.call(document.querySelectorAll(queries.join(','))));\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);\n $link.addClass(ClassName.ACTIVE);\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active\n // With both