diff --git a/apps/docs/hardware_setup.md b/apps/docs/hardware_setup.md deleted file mode 100644 index a27443c..0000000 --- a/apps/docs/hardware_setup.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Hardware Setup -nav_order: 2 -has_children: true -has_toc: false ---- - -# Hardware Setup - -[dsPICDEM™ MCHV-3 Development Board (High Voltage)](https://www.microchip.com/developmenttools/ProductDetails/dm330023-3) - -| Board | Description | -| ----------- | --------- | -| [MCHV3 Setup for Sensorless Mode](mchv3_atsame70_pim_sensorless.md) | Hardware setup of MCHV3 development board for sensorless mode | -| [MCHV3 Setup for Quadrature Encoder Mode](mchv3_atsame70_pim_encoder.md) | Hardware setup of MCHV3 development board for encoder mode | -||| - -[dsPICDEM™ MCLV-2 Development Board (Motor Control Low-Voltage)](https://www.microchip.com/DevelopmentTools/ProductDetails/DM330021-2) - -| Board | Description | -| ----------- | --------- | -| [MCLV2 Setup for Sensorless Mode](mclv2_atsame70_pim_sensorless.md) | Hardware setup of MCLV2 development board for sensorless mode | -| [MCLV2 Setup for Quadrature Encoder Mode](mclv2_atsame70_pim_encoder.md) | Hardware setup of MCLV2 development board for encoder mode | -||| - \ No newline at end of file diff --git a/apps/docs/images/mchv3/encoder_connection.png b/apps/docs/images/mchv3/encoder_connection.png deleted file mode 100644 index 5b1832a..0000000 Binary files a/apps/docs/images/mchv3/encoder_connection.png and /dev/null differ diff --git a/apps/docs/images/mchv3/exclude_device_checks_edbg.jpg b/apps/docs/images/mchv3/exclude_device_checks_edbg.jpg deleted file mode 100644 index c2f5161..0000000 Binary files a/apps/docs/images/mchv3/exclude_device_checks_edbg.jpg and /dev/null differ diff --git a/apps/docs/images/mchv3/mchv3_ac_mains.png b/apps/docs/images/mchv3/mchv3_ac_mains.png deleted file mode 100644 index 8c312d2..0000000 Binary files a/apps/docs/images/mchv3/mchv3_ac_mains.png and /dev/null differ diff --git a/apps/docs/images/mchv3/mchv3_back_panel.png b/apps/docs/images/mchv3/mchv3_back_panel.png deleted file mode 100644 index 40274ef..0000000 Binary files a/apps/docs/images/mchv3/mchv3_back_panel.png and /dev/null differ diff --git a/apps/docs/images/mchv3/mchv3_replacing_isolated_edbg.png b/apps/docs/images/mchv3/mchv3_replacing_isolated_edbg.png deleted file mode 100644 index e2403bb..0000000 Binary files a/apps/docs/images/mchv3/mchv3_replacing_isolated_edbg.png and /dev/null differ diff --git a/apps/docs/images/mchv3/same70_mchv3_hardware_setup.png b/apps/docs/images/mchv3/same70_mchv3_hardware_setup.png deleted file mode 100644 index 0238c37..0000000 Binary files a/apps/docs/images/mchv3/same70_mchv3_hardware_setup.png and /dev/null differ diff --git a/apps/docs/images/mchv3/same70_mchv3_jumper_settings.png b/apps/docs/images/mchv3/same70_mchv3_jumper_settings.png deleted file mode 100644 index ffb7e3a..0000000 Binary files a/apps/docs/images/mchv3/same70_mchv3_jumper_settings.png and /dev/null differ diff --git a/apps/docs/images/mchv3/same70_pfc_external_opamp_mchv3.png b/apps/docs/images/mchv3/same70_pfc_external_opamp_mchv3.png deleted file mode 100644 index c587e96..0000000 Binary files a/apps/docs/images/mchv3/same70_pfc_external_opamp_mchv3.png and /dev/null differ diff --git a/apps/docs/images/mchv3/same70_pim_mchv3.png b/apps/docs/images/mchv3/same70_pim_mchv3.png deleted file mode 100644 index 2b32e5f..0000000 Binary files a/apps/docs/images/mchv3/same70_pim_mchv3.png and /dev/null differ diff --git a/apps/docs/images/mclv2/encoder_connection.png b/apps/docs/images/mclv2/encoder_connection.png deleted file mode 100644 index d75f043..0000000 Binary files a/apps/docs/images/mclv2/encoder_connection.png and /dev/null differ diff --git a/apps/docs/images/mclv2/pll_same70_mclv2.png b/apps/docs/images/mclv2/pll_same70_mclv2.png deleted file mode 100644 index 64c69d0..0000000 Binary files a/apps/docs/images/mclv2/pll_same70_mclv2.png and /dev/null differ diff --git a/apps/docs/images/mclv2/pll_same70_mclv2_ext_opamp.png b/apps/docs/images/mclv2/pll_same70_mclv2_ext_opamp.png deleted file mode 100644 index 063a6ed..0000000 Binary files a/apps/docs/images/mclv2/pll_same70_mclv2_ext_opamp.png and /dev/null differ diff --git a/apps/docs/images/mclv2/pll_same70_mclv2_jumper_settings.png b/apps/docs/images/mclv2/pll_same70_mclv2_jumper_settings.png deleted file mode 100644 index 858c2e7..0000000 Binary files a/apps/docs/images/mclv2/pll_same70_mclv2_jumper_settings.png and /dev/null differ diff --git a/apps/docs/images/mclv2/pll_same70_mclv2_motor_connection.png b/apps/docs/images/mclv2/pll_same70_mclv2_motor_connection.png deleted file mode 100644 index ade615b..0000000 Binary files a/apps/docs/images/mclv2/pll_same70_mclv2_motor_connection.png and /dev/null differ diff --git a/apps/docs/images/mclv2/pll_same70_pim_mclv2.png b/apps/docs/images/mclv2/pll_same70_pim_mclv2.png deleted file mode 100644 index 42cd3d2..0000000 Binary files a/apps/docs/images/mclv2/pll_same70_pim_mclv2.png and /dev/null differ diff --git a/apps/docs/images/mclv2/pll_same70_power_mclv2.png b/apps/docs/images/mclv2/pll_same70_power_mclv2.png deleted file mode 100644 index 709c330..0000000 Binary files a/apps/docs/images/mclv2/pll_same70_power_mclv2.png and /dev/null differ diff --git a/apps/docs/mchv3_atsame70_pim_encoder.md b/apps/docs/mchv3_atsame70_pim_encoder.md deleted file mode 100644 index fd85f82..0000000 --- a/apps/docs/mchv3_atsame70_pim_encoder.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -parent: Hardware Setup -title: MCHV3 Development Board Setup for Quadrature Encoder -has_children: false -has_toc: false ---- - -# MCHV3 Development Board -## Setting up the hardware - -The following table shows the target hardware for the application projects. - -| Project Name| Hardware | -|:---------|:---------:| -| mchv3_sam_e70_pim.X |
[MCHV3 Development Board](https://www.microchip.com/developmenttools/ProductDetails/dm330023-3)
[ATSAME70 Plug-in module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203)
[Leadshine EL5-M0400-1-24 Motor](https://www.microchip.com/developmenttools/ProductDetails/AC300025)
[Isolated Embedded Debugger Interface](https://www.microchip.com/DevelopmentTools/ProductDetails/AC320202) | -||| - -### Setting up [MCHV3 Development Board](https://www.microchip.com/developmenttools/ProductDetails/dm330023-3) - -- Mount the ATSAME70 Motor Control Plug In Module on U9 header. - - ![PIM Install](./images/mchv3/same70_pim_mchv3.png) - -- Place the "PFC - External Opamp Configuration" Matrix board at J4. - - ![External OPAMP](./images/mchv3/same70_pfc_external_opamp_mchv3.png) - -- Motor Connections: - - Phase U - M1 - - Phase V - M2 - - Phase W - M3 - - ![Motor Connections](./images/mchv3/mchv3_back_panel.png) - -- Encoder Connections: - - A+ - HA - - B+ - HB - - 5V - +5V - - 0V - GND - - ![Encoder Connections](./images/mchv3/encoder_connection.png) - -- Jumper Settings: - - J11 - VAC ( Short Pin 3 - 4) - - J12 - IA ( Short Pin 1 - 2) - - J13 - IB ( Short Pin 1 - 2) - - J14 - Fault_IP/IBUS ( Short Pin 1 - 2) - - ![jumper Settings](./images/mchv3/same70_mchv3_jumper_settings.png) - -- Power the board with (110V/220V) AC mains. For additional safety, it is recommended to use a current limited power supply while testing this software demonstration on a non-default hardware and motor. - - ![jumper Settings](./images/mchv3/mchv3_ac_mains.png) - -- Installing Isolated Embedded Debugger -Default programmer or debugger daughter card shipped with the MCHV3 board cannot program or debug SAM series MCU and therefore, it needs to be replaced with an Isolated Embedded Debugger Interface for MCHV. - - ![Isolated EDBG](./images/mchv3/mchv3_replacing_isolated_edbg.png) - -- Complete Setup - - ![Setup](./images/mchv3/same70_mchv3_hardware_setup.png) - -## Running the Application - -1. Build and Program the application using its IDE -2. Press switch PUSHBUTTON to start the motor -3. Vary potentiometer to change the speed of the motor -4. Press switch to stop the motor -5. Monitor graphs on X2C Scope - -Refer to the following tables for switch and LED details: - -| Switch | Description | -|------|----------------| -| PUSHBUTTON | To start or stop the motor | -|| - -| LED D2 Status | Description | -|------|----------------| -| OFF | No fault | -| ON | Fault is detected | -|| \ No newline at end of file diff --git a/apps/docs/mchv3_atsame70_pim_sensorless.md b/apps/docs/mchv3_atsame70_pim_sensorless.md deleted file mode 100644 index c4f53d9..0000000 --- a/apps/docs/mchv3_atsame70_pim_sensorless.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -parent: Hardware Setup -title: MCHV3 Development Board Setup for Sensorless Mode -has_children: false -has_toc: false ---- - -# MCHV3 Development Board -## Setting up the hardware - -The following table shows the target hardware for the application projects. - -| Project Name| Hardware | -|:---------|:---------:| -| mchv3_sam_e70_pim.X |
[MCHV3 Development Board](https://www.microchip.com/developmenttools/ProductDetails/dm330023-3)
[ATSAME70 Plug-in module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203)
[Leadshine EL5-M0400-1-24 Motor](https://www.microchip.com/developmenttools/ProductDetails/AC300025)
[Isolated Embedded Debugger Interface](https://www.microchip.com/DevelopmentTools/ProductDetails/AC320202) | -||| - -### Setting up [MCHV3 Development Board](https://www.microchip.com/developmenttools/ProductDetails/dm330023-3) - -- Mount the ATSAME70 Motor Control Plug In Module on U9 header. - - ![PIM Install](./images/mchv3/same70_pim_mchv3.png) - -- Place the "PFC - External Opamp Configuration" Matrix board at J4. - - ![External OPAMP](./images/mchv3/same70_pfc_external_opamp_mchv3.png) - -- Motor Connections: - - Phase U - M1 - - Phase V - M2 - - Phase W - M3 - - ![Motor Connections](./images/mchv3/mchv3_back_panel.png) - -- Jumper Settings: - - J11 - VAC ( Short Pin 3 - 4) - - J12 - IA ( Short Pin 1 - 2) - - J13 - IB ( Short Pin 1 - 2) - - J14 - Fault_IP/IBUS ( Short Pin 1 - 2) - - ![jumper Settings](./images/mchv3/same70_mchv3_jumper_settings.png) - -- Power the board with (110V/220V) AC mains. For additional safety, it is recommended to use a current limited power supply while testing this software demonstration on a non-default hardware and motor. - - ![jumper Settings](./images/mchv3/mchv3_ac_mains.png) - -- Installing Isolated Embedded Debugger -Default programmer or debugger daughter card shipped with the MCHV3 board cannot program or debug SAM series MCU and therefore, it needs to be replaced with an Isolated Embedded Debugger Interface for MCHV. - - ![Isolated EDBG](./images/mchv3/mchv3_replacing_isolated_edbg.png) - -- Complete Setup - - ![Setup](./images/mchv3/same70_mchv3_hardware_setup.png) - -## Running the Application - -1. Build and Program the application using its IDE -2. Press switch PUSHBUTTON to start the motor -3. Vary potentiometer to change the speed of the motor -4. Press switch to stop the motor -5. Monitor graphs on X2C Scope - -Refer to the following tables for switch and LED details: - -| Switch | Description | -|------|----------------| -| PUSHBUTTON | To start or stop the motor | -|| - -| LED D2 Status | Description | -|------|----------------| -| OFF | No fault | -| ON | Fault is detected | -|| \ No newline at end of file diff --git a/apps/docs/mclv2_atsame70_pim_encoder.md b/apps/docs/mclv2_atsame70_pim_encoder.md deleted file mode 100644 index f37eb01..0000000 --- a/apps/docs/mclv2_atsame70_pim_encoder.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -parent: Hardware Setup -title: MCLV2 Development Board Setup for Quadrature Encoder -has_children: false -has_toc: false ---- - -# MCLV2 Development Board -## Setting up the hardware - -The following table shows the target hardware for the application projects. - -| Project Name| Hardware | -|:---------|:---------:| -| mclv2_sam_e70_pim.X |
[MCLV2 Development Board](https://www.microchip.com/DevelopmentTools/ProductDetails/DM330021-2)
[ATSAME70 Plug-in module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203)
[Hurst Motor with encoder](https://www.microchip.com/DevelopmentTools/ProductDetails/PartNo/AC300022) | -||| - -### Setting up [MCLV2 Development Board](https://www.microchip.com/DevelopmentTools/ProductDetails/DM330021-2) - -- Mount the ATSAME70 Motor Control Plug In Module on U9 header. - - ![PIM Install](./images/mclv2/pll_same70_pim_mclv2.png) - -- Place the "External Opamp Configuration" Matrix board at J14. - - ![External OPAMP](./images/mclv2/pll_same70_mclv2_ext_opamp.png) - -- Motor Connections: - - White (Phase U) - M1 - - Black (Phase V) - M2 - - Red (Phase W) - M3 - - ![Motor Connections](./images/mclv2/pll_same70_mclv2_motor_connection.png) - -- Encoder Connections: Connect encoder wires as shown below - - (Red) +5V : +5V - - (Black) -5V : GND - - (White) A : HA - - (Blue) B : HB - - ![Encoder Connections](./images/mclv2/encoder_connection.png) - -- Jumper Settings: - - JP1 - Curr, JP2 - Curr, JP3 - Curr - - In order to use RS232 port for X2CScope Communication JP4 - UART, JP5 - UART - - In order to use USB port for X2CScope Communication JP4 - USB, JP5 - USB - - ![jumper Settings](./images/mclv2/pll_same70_mclv2_jumper_settings.png) - - -- Power the board with a 24V DC supply using J2 or BP1-BP2. For additional safety, it is recommended to use a current limited power supply while testing this software demonstration on a non-default hardware and motor. - - ![jumper Settings](./images/mclv2/pll_same70_power_mclv2.png) - -- Complete Setup - - ![Setup](./images/mclv2/pll_same70_mclv2.png) - -## Running the Application - -1. Build and Program the application using its IDE -2. Press switch S2 to start the motor -3. Vary potentiometer to change the speed of the motor -4. Press switch S2 to stop the motor -5. Press switch S3 to change the direction of the motor -6. Press switch S2 again to start the motor -7. Monitor graphs on X2C Scope - -Refer to the following tables for switch and LED details: - -| Switch | Description | -|------|----------------| -| Switch S2 | To start or stop the motor | -| Switch S3 | To change the direction of rotation.
Direction toggle command is accepted only when motor is stationary. | -|| - -| LED D2 Status | Description | -|------|----------------| -| OFF | Motor spin direction is "positive" | -| ON | Motor spin direction is "negative" | -|| - -| LED D17 Status | Description | -|------|----------------| -| OFF | No fault | -| ON | Fault is detected | -|| \ No newline at end of file diff --git a/apps/docs/mclv2_atsame70_pim_sensorless.md b/apps/docs/mclv2_atsame70_pim_sensorless.md deleted file mode 100644 index ec2444d..0000000 --- a/apps/docs/mclv2_atsame70_pim_sensorless.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -parent: Hardware Setup -title: MCLV2 Development Board Setup for Sensorless Mode -has_children: false -has_toc: false ---- - -# MCLV2 Development Board -## Setting up the hardware - -The following table shows the target hardware for the application projects. - -| Project Name | Hardware | -|:---------|:---------:| -| mclv2_sam_e70_pim.X |
[MCLV2 Development Board](https://www.microchip.com/DevelopmentTools/ProductDetails/DM330021-2)
[ATSAME70 Plug-in module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203)
[Hurst Motor with encoder](https://www.microchip.com/DevelopmentTools/ProductDetails/PartNo/AC300022) | -||| - -### Setting up [MCLV2 Development Board](https://www.microchip.com/DevelopmentTools/ProductDetails/DM330021-2) - -- Mount the ATSAME70 Motor Control Plug In Module on U9 header. - - ![PIM_Install](images/mclv2/pll_same70_pim_mclv2.png) - -- Place the "External Opamp Configuration" Matrix board at J14. - - ![External_OPAMP](images/mclv2/pll_same70_mclv2_ext_opamp.png) - -- Motor Connections: - - White (Phase U) - M1 - - Black (Phase V) - M2 - - Red (Phase W) - M3 - - ![Motor_Connections](./images/mclv2/pll_same70_mclv2_motor_connection.png) - -- Jumper Settings: - - JP1 - Curr, JP2 - Curr, JP3 - Curr - - In order to use RS232 port for X2CScope Communication JP4 - UART, JP5 - UART - - In order to use USB port for X2CScope Communication JP4 - USB, JP5 - USB - - ![jumper_Settings](./images/mclv2/pll_same70_mclv2_jumper_settings.png) - - -- Power the board with a 24V DC supply using J2 or BP1-BP2. For additional safety, it is recommended to use a current limited power supply while testing this software demonstration on a non-default hardware and motor. - - ![power](./images/mclv2/pll_same70_power_mclv2.png) - -- Complete Setup - - ![Setup](./images/mclv2/pll_same70_mclv2.png) - -## Running the Application - -1. Build and Program the application using its IDE -2. Press switch S2 to start the motor -3. Vary potentiometer to change the speed of the motor -4. Press switch S2 to stop the motor -5. Press switch S3 to change the direction of the motor -6. Press switch S2 again to start the motor -7. Monitor graphs on X2C Scope - -Refer to the following tables for switch and LED details: - -| Switch | Description | -|------|----------------| -| Switch S2 | To start or stop the motor | -| Switch S3 | To change the direction of rotation.
Direction toggle command is accepted only when motor is stationary. | -|| - -| LED D2 Status | Description | -|------|----------------| -| OFF | Motor spin direction is "positive" | -| ON | Motor spin direction is "negative" | -|| - -| LED D17 Status | Description | -|------|----------------| -| OFF | No fault | -| ON | Fault is detected | -|| \ No newline at end of file diff --git a/apps/pmsm_foc_encoder_sam_e70/images/adc_parameters.PNG b/apps/pmsm_foc_encoder_sam_e70/images/adc_parameters.PNG deleted file mode 100644 index f12f118..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/adc_parameters.PNG and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/block_diagram.jpg b/apps/pmsm_foc_encoder_sam_e70/images/block_diagram.jpg deleted file mode 100644 index ead231c..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/block_diagram.jpg and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/board_parameters.PNG b/apps/pmsm_foc_encoder_sam_e70/images/board_parameters.PNG deleted file mode 100644 index 0d02f29..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/board_parameters.PNG and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/code_structure.png b/apps/pmsm_foc_encoder_sam_e70/images/code_structure.png deleted file mode 100644 index 7475c6c..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/code_structure.png and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/code_structure_fixed_point.jpg b/apps/pmsm_foc_encoder_sam_e70/images/code_structure_fixed_point.jpg deleted file mode 100644 index 61eb49d..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/code_structure_fixed_point.jpg and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/control_parameters.PNG b/apps/pmsm_foc_encoder_sam_e70/images/control_parameters.PNG deleted file mode 100644 index 0c30d3c..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/control_parameters.PNG and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/control_strategy.PNG b/apps/pmsm_foc_encoder_sam_e70/images/control_strategy.PNG deleted file mode 100644 index b7fa36a..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/control_strategy.PNG and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/encoder.PNG b/apps/pmsm_foc_encoder_sam_e70/images/encoder.PNG deleted file mode 100644 index 5b61f6d..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/encoder.PNG and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/encoder_signals.PNG b/apps/pmsm_foc_encoder_sam_e70/images/encoder_signals.PNG deleted file mode 100644 index c27dbfd..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/encoder_signals.PNG and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/flow_chart.png b/apps/pmsm_foc_encoder_sam_e70/images/flow_chart.png deleted file mode 100644 index 46ecd20..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/flow_chart.png and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/flow_chart_fixed_point.jpg b/apps/pmsm_foc_encoder_sam_e70/images/flow_chart_fixed_point.jpg deleted file mode 100644 index 073ab46..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/flow_chart_fixed_point.jpg and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/flux_weakening.png b/apps/pmsm_foc_encoder_sam_e70/images/flux_weakening.png deleted file mode 100644 index e38d768..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/flux_weakening.png and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/flyingstart_parameters.png b/apps/pmsm_foc_encoder_sam_e70/images/flyingstart_parameters.png deleted file mode 100644 index 586611e..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/flyingstart_parameters.png and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/motor_parameters.PNG b/apps/pmsm_foc_encoder_sam_e70/images/motor_parameters.PNG deleted file mode 100644 index 931a33e..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/motor_parameters.PNG and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/project_graph.jpg b/apps/pmsm_foc_encoder_sam_e70/images/project_graph.jpg deleted file mode 100644 index 69ec2ce..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/project_graph.jpg and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/pwm_parameters.PNG b/apps/pmsm_foc_encoder_sam_e70/images/pwm_parameters.PNG deleted file mode 100644 index d3f670e..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/pwm_parameters.PNG and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/supported_features.jpg b/apps/pmsm_foc_encoder_sam_e70/images/supported_features.jpg deleted file mode 100644 index ea22ad1..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/supported_features.jpg and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/supported_features.xlsx b/apps/pmsm_foc_encoder_sam_e70/images/supported_features.xlsx deleted file mode 100644 index 3a74bde..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/supported_features.xlsx and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/timing_diagram.png b/apps/pmsm_foc_encoder_sam_e70/images/timing_diagram.png deleted file mode 100644 index 2d26c81..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/timing_diagram.png and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/images/timing_diagram_fixed_point.jpg b/apps/pmsm_foc_encoder_sam_e70/images/timing_diagram_fixed_point.jpg deleted file mode 100644 index 950694d..0000000 Binary files a/apps/pmsm_foc_encoder_sam_e70/images/timing_diagram_fixed_point.jpg and /dev/null differ diff --git a/apps/pmsm_foc_encoder_sam_e70/readme.md b/apps/pmsm_foc_encoder_sam_e70/readme.md index 0471fb9..aa6494c 100644 --- a/apps/pmsm_foc_encoder_sam_e70/readme.md +++ b/apps/pmsm_foc_encoder_sam_e70/readme.md @@ -7,74 +7,4 @@ has_toc: false [![MCHP](https://www.microchip.com/ResourcePackages/Microchip/assets/dist/images/logo.png)](https://www.microchip.com) -# PMSM FOC using Quadrature Encoder - -This example application shows how to control the Permanent Magnet Synchronous Motor (PMSM) with Quadrature Encoder based Field Oriented Control (FOC) on a SAME70 Micro-controller. - -## Description - -Permanent Magnet Synchronous Motor (PMSM) is controlled using Field Oriented Control (FOC). Rotor position and speed is determined using quadrature encoder sensor. Motor start/stop operation is controlled by the switch and motor speed can be changed by the on-board potentiometer. Waveforms and variables can be monitored runtime using X2CScope. - -Key features enabled in this project are: - -- Dual shunt current measurement -- Speed control loop -- Field weakening - - -## MCC Project Configurations - -![MHC Project Graph](images/project_graph.jpg) - - -- **PMSM_FOC**: - - This component configures FOC algorithm parameters, motor parameters and motor control board parameters. It connects to underlying peripheral libraries AFEC and PWM. This components auto configures ADC channels and PWM channels as per PMSM_FOC component configurations. -- **AFEC Peripheral**: - - The AFEC is used to measure analog quantities. Four channels are used to measure the Phase Current U, the Phase Current V, the DC Bus Voltage and the Potentiometer. Conversion is triggered at the PWM (zero match + offset of the switch delay) -- **PWM Peripheral**: - - This peripheral is used to generated three phase synchronous PWM waveforms. Fault functionality is also enabled to switch off the output waveforms asynchronously. -- **TC QDEC Peripheral**: - - TC peripheral is configured in QDEC mode. It is used to decode the rotor position and speed from quadrature encoder signals. -- **X2CScope**: - - This component adds X2C scope protocol code. This uses UART to communicate to the host PC. X2CScope allows user to monitor variables runtime. -- **UART Peripheral**: - - The UART is used for X2CScope communication to observe graphs and variable values in run time - -## Project Details -This project has been created using Harmony QSpin Tool. For details refer [Harmony QSpin](https://microchip-mplab-harmony.github.io/motor_control/index.html) - -## Development Kits - -### MCLV2 with ATSAME70 PIM -#### Downloading and building the application - -To clone or download this application from Github, go to the [main page of this repository](https://github.com/Microchip-MPLAB-Harmony/mc_apps_sam_e7x_s7x_v7x) and then click **Clone** button to clone this repository or download as zip file. -This content can also be downloaded using content manager by following these [instructions](https://microchip-mplab-harmony.github.io/contentmanager/). - -Path of the application within the repository is **apps/mcp_pmsm_foc_encoder_sam_e70** . - -To build the application, refer to the following table and open the project using its IDE. - -| Project Name | Description | Hardware Setup Guide | -| ----------------- | ---------------------------------------------- | --------------------- | -| mclv2_sam_e70_pim.X | MPLABX project for MCLV2 board with ATSAME70 PIM | [Hardware Setup and Running The Application on MCLV2 with ATSAME70 PIM](../docs/mclv2_atsame70_pim_encoder.md)| - -### MCHV3 with ATSAME70 PIM -#### Downloading and building the application - -To clone or download this application from Github, go to the [main page of this repository](https://github.com/Microchip-MPLAB-Harmony/mc_apps_sam_e7x_s7x_v7x) and then click **Clone** button to clone this repository or download as zip file. -This content can also be downloaded using content manager by following these [instructions](https://microchip-mplab-harmony.github.io/contentmanager/). - -Path of the application within the repository is **apps/mcp_pmsm_foc_encoder_sam_e70** . - -To build the application, refer to the following table and open the project using its IDE. - -| Project Name | Description | Hardware Setup Guide | -| ----------------- | ---------------------------------------------- | --------------------- | -| mchv3_sam_e70_pim.X | MPLABX project for MCHV3 board with ATSAME70 PIM | [Hardware Setup and Running The Application on MCHV3 with ATSAME70 PIM](../docs/mchv3_atsame70_pim_encoder.md)| +[Click here](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=MC_APPS_SAM_E7X_S7X_V7X_PMSM_FOC_QUADRATURE_ENCODER&redirect=true) to view documentation for this application. diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/adc_parameters.PNG b/apps/pmsm_foc_pll_estimator_sam_e70/images/adc_parameters.PNG deleted file mode 100644 index f12f118..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/adc_parameters.PNG and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/block_diagram.jpg b/apps/pmsm_foc_pll_estimator_sam_e70/images/block_diagram.jpg deleted file mode 100644 index ead231c..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/block_diagram.jpg and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/board_parameters.PNG b/apps/pmsm_foc_pll_estimator_sam_e70/images/board_parameters.PNG deleted file mode 100644 index 0d02f29..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/board_parameters.PNG and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/code_structure.png b/apps/pmsm_foc_pll_estimator_sam_e70/images/code_structure.png deleted file mode 100644 index 7475c6c..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/code_structure.png and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/code_structure_fixed_point.jpg b/apps/pmsm_foc_pll_estimator_sam_e70/images/code_structure_fixed_point.jpg deleted file mode 100644 index 61eb49d..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/code_structure_fixed_point.jpg and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/control_parameters.PNG b/apps/pmsm_foc_pll_estimator_sam_e70/images/control_parameters.PNG deleted file mode 100644 index 0c30d3c..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/control_parameters.PNG and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/control_strategy.PNG b/apps/pmsm_foc_pll_estimator_sam_e70/images/control_strategy.PNG deleted file mode 100644 index b7fa36a..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/control_strategy.PNG and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/encoder.PNG b/apps/pmsm_foc_pll_estimator_sam_e70/images/encoder.PNG deleted file mode 100644 index 5b61f6d..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/encoder.PNG and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/encoder_signals.PNG b/apps/pmsm_foc_pll_estimator_sam_e70/images/encoder_signals.PNG deleted file mode 100644 index c27dbfd..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/encoder_signals.PNG and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/flow_chart.png b/apps/pmsm_foc_pll_estimator_sam_e70/images/flow_chart.png deleted file mode 100644 index 46ecd20..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/flow_chart.png and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/flow_chart_fixed_point.jpg b/apps/pmsm_foc_pll_estimator_sam_e70/images/flow_chart_fixed_point.jpg deleted file mode 100644 index 073ab46..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/flow_chart_fixed_point.jpg and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/flux_weakening.png b/apps/pmsm_foc_pll_estimator_sam_e70/images/flux_weakening.png deleted file mode 100644 index e38d768..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/flux_weakening.png and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/flyingstart_parameters.png b/apps/pmsm_foc_pll_estimator_sam_e70/images/flyingstart_parameters.png deleted file mode 100644 index 586611e..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/flyingstart_parameters.png and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/motor_parameters.PNG b/apps/pmsm_foc_pll_estimator_sam_e70/images/motor_parameters.PNG deleted file mode 100644 index 931a33e..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/motor_parameters.PNG and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/project_graph.jpg b/apps/pmsm_foc_pll_estimator_sam_e70/images/project_graph.jpg deleted file mode 100644 index bd2f9b8..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/project_graph.jpg and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/pwm_parameters.PNG b/apps/pmsm_foc_pll_estimator_sam_e70/images/pwm_parameters.PNG deleted file mode 100644 index d3f670e..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/pwm_parameters.PNG and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/supported_features.jpg b/apps/pmsm_foc_pll_estimator_sam_e70/images/supported_features.jpg deleted file mode 100644 index ea22ad1..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/supported_features.jpg and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/supported_features.xlsx b/apps/pmsm_foc_pll_estimator_sam_e70/images/supported_features.xlsx deleted file mode 100644 index 3a74bde..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/supported_features.xlsx and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/timing_diagram.png b/apps/pmsm_foc_pll_estimator_sam_e70/images/timing_diagram.png deleted file mode 100644 index 2d26c81..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/timing_diagram.png and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/images/timing_diagram_fixed_point.jpg b/apps/pmsm_foc_pll_estimator_sam_e70/images/timing_diagram_fixed_point.jpg deleted file mode 100644 index 950694d..0000000 Binary files a/apps/pmsm_foc_pll_estimator_sam_e70/images/timing_diagram_fixed_point.jpg and /dev/null differ diff --git a/apps/pmsm_foc_pll_estimator_sam_e70/readme.md b/apps/pmsm_foc_pll_estimator_sam_e70/readme.md index fd77907..49d6b08 100644 --- a/apps/pmsm_foc_pll_estimator_sam_e70/readme.md +++ b/apps/pmsm_foc_pll_estimator_sam_e70/readme.md @@ -7,68 +7,4 @@ has_toc: false [![MCHP](https://www.microchip.com/ResourcePackages/Microchip/assets/dist/images/logo.png)](https://www.microchip.com) -# PMSM FOC using PLL Estimator - -This example application shows how to control the Permanent Magnet Synchronous Motor (PMSM) with PLL Estimator based Field Oriented Control (FOC) on a SAME70 Micro-controller. - -## Description - -Permanent Magnet Synchronous Motor (PMSM) is controlled using Field Oriented Control (FOC). Rotor position and speed is determined using PLL estimator technique. Motor start/stop operation is controlled by the switch and motor speed can be changed by the on-board potentiometer. Waveforms and variables can be monitored runtime using X2CScope. - -Key features enabled in this project are: - -- Dual shunt current measurement -- Speed control loop -- Field weakening - - -## MCC Project Configurations - -![MHC Project Graph](images/project_graph.jpg) - -- **AFEC Peripheral**: - - The AFEC is used to measure analog quantities. Four channels are used to measure the Phase Current U, the Phase Current V, the DC Bus Voltage and the Potentiometer. Conversion is triggered at the PWM (zero match + offset of the switch delay) -- **PWM Peripheral**: - - This peripheral is used to generated three phase synchronous PWM waveforms. Fault functionality is also enabled to switch off the output waveforms asynchronously. -- **X2CScope**: - - This component adds X2C scope protocol code. This uses UART to communicate to the host PC. X2CScope allows user to monitor variables runtime. -- **UART Peripheral**: - - The UART is used for X2CScope communication to observe graphs and variable values in run time - - -## Project Details -This project has been created using Harmony QSpin Tool. For details refer [Harmony QSpin](https://microchip-mplab-harmony.github.io/motor_control/index.html) - -## Development Kits - -### MCLV2 with ATSAME70 PIM -#### Downloading and building the application - -To clone or download this application from Github, go to the [main page of this repository](https://github.com/Microchip-MPLAB-Harmony/mc_apps_sam_e7x_s7x_v7x) and then click **Clone** button to clone this repository or download as zip file. -This content can also be downloaded using content manager by following these [instructions](https://microchip-mplab-harmony.github.io/contentmanager/). - -Path of the application within the repository is **apps/mcp_pmsm_foc_pll_estimator_sam_e70** . - -To build the application, refer to the following table and open the project using its IDE. - -| Project Name | Description | Hardware Setup Guide | -| ----------------- | ---------------------------------------------- | ----------------- | -| mclv2_sam_e70_pim.X | MPLABX project for MCLV2 board with ATSAME70 PIM | [Hardware Setup and Running The Application on MCLV2 with ATSAME70 PIM](../docs/mclv2_atsame70_pim_sensorless.md)| - -### MCHV3 with ATSAME70 PIM -#### Downloading and building the application - -To clone or download this application from Github, go to the [main page of this repository](https://github.com/Microchip-MPLAB-Harmony/mc_apps_sam_e7x_s7x_v7x) and then click **Clone** button to clone this repository or download as zip file. -This content can also be downloaded using content manager by following these [instructions](https://microchip-mplab-harmony.github.io/contentmanager/). - -Path of the application within the repository is **apps/mcp_pmsm_foc_pll_estimator_sam_e70** . - -To build the application, refer to the following table and open the project using its IDE. - -| Project Name | Description | Hardware Setup Guide | -| ----------------- | ---------------------------------------------- | ----------------- | -| mchv3_sam_e70_pim.X | MPLABX project for MCHV3 board with ATSAME70 PIM | [Hardware Setup and Running The Application on MCHV3 with ATSAME70 PIM](../docs/mchv3_atsame70_pim_sensorless.md)| +[Click here](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=MC_APPS_SAM_E7X_S7X_V7X_PMSM_FOC_PLL_ESTIMATOR&redirect=true) to view documentation for this application. diff --git a/apps/pmsm_foc_smo_sam_e70/images/back_emf_observer.png b/apps/pmsm_foc_smo_sam_e70/images/back_emf_observer.png deleted file mode 100644 index de7def6..0000000 Binary files a/apps/pmsm_foc_smo_sam_e70/images/back_emf_observer.png and /dev/null differ diff --git a/apps/pmsm_foc_smo_sam_e70/images/block_diagram.png b/apps/pmsm_foc_smo_sam_e70/images/block_diagram.png deleted file mode 100644 index eb286e8..0000000 Binary files a/apps/pmsm_foc_smo_sam_e70/images/block_diagram.png and /dev/null differ diff --git a/apps/pmsm_foc_smo_sam_e70/images/current_observer.png b/apps/pmsm_foc_smo_sam_e70/images/current_observer.png deleted file mode 100644 index 8222a1a..0000000 Binary files a/apps/pmsm_foc_smo_sam_e70/images/current_observer.png and /dev/null differ diff --git a/apps/pmsm_foc_smo_sam_e70/images/isr_run_task.png b/apps/pmsm_foc_smo_sam_e70/images/isr_run_task.png deleted file mode 100644 index d5c6b14..0000000 Binary files a/apps/pmsm_foc_smo_sam_e70/images/isr_run_task.png and /dev/null differ diff --git a/apps/pmsm_foc_smo_sam_e70/images/project_graph.png b/apps/pmsm_foc_smo_sam_e70/images/project_graph.png deleted file mode 100644 index 24c51a2..0000000 Binary files a/apps/pmsm_foc_smo_sam_e70/images/project_graph.png and /dev/null differ diff --git a/apps/pmsm_foc_smo_sam_e70/images/smo_block_diagram.png b/apps/pmsm_foc_smo_sam_e70/images/smo_block_diagram.png deleted file mode 100644 index 42f3adc..0000000 Binary files a/apps/pmsm_foc_smo_sam_e70/images/smo_block_diagram.png and /dev/null differ diff --git a/apps/pmsm_foc_smo_sam_e70/images/smo_parameters.png b/apps/pmsm_foc_smo_sam_e70/images/smo_parameters.png deleted file mode 100644 index d471751..0000000 Binary files a/apps/pmsm_foc_smo_sam_e70/images/smo_parameters.png and /dev/null differ diff --git a/apps/pmsm_foc_smo_sam_e70/images/state_diagram.png b/apps/pmsm_foc_smo_sam_e70/images/state_diagram.png deleted file mode 100644 index 52a5084..0000000 Binary files a/apps/pmsm_foc_smo_sam_e70/images/state_diagram.png and /dev/null differ diff --git a/apps/pmsm_foc_smo_sam_e70/images/timing_diagram.png b/apps/pmsm_foc_smo_sam_e70/images/timing_diagram.png deleted file mode 100644 index a1ab25e..0000000 Binary files a/apps/pmsm_foc_smo_sam_e70/images/timing_diagram.png and /dev/null differ diff --git a/apps/pmsm_foc_smo_sam_e70/readme.md b/apps/pmsm_foc_smo_sam_e70/readme.md index 944fe86..b01ca35 100644 --- a/apps/pmsm_foc_smo_sam_e70/readme.md +++ b/apps/pmsm_foc_smo_sam_e70/readme.md @@ -7,57 +7,5 @@ has_toc: false [![MCHP](https://www.microchip.com/ResourcePackages/Microchip/assets/dist/images/logo.png)](https://www.microchip.com) -# PMSM FOC using Sliding Mode Observer - -This example application shows how to control the Permanent Magnet Synchronous Motor (PMSM) with Sliding Mode Observer based Field Oriented Control (FOC) on a SAME70 Micro-controller. - -## Description - -Permanent Magnet Synchronous Motor (PMSM) is controlled using Field Oriented Control (FOC). Rotor position and speed is determined using Sliding Mode Observer (SMO) technique. Motor start/stop operation is controlled by the switch and motor speed can be changed by the on-board potentiometer. Waveforms and variables can be monitored runtime using X2CScope. - -Key features enabled in this project are: - -- Dual shunt current measurement -- Speed control loop - - -## MCC Project Configurations - -![MCC Project Graph](images/project_graph.png) - - -- **AFEC Peripheral**: - -The AFEC (ADC) is used to measure analog quantities. Four channels are used to measure the Phase Current A, the Phase Current B, the DC Bus Voltage and the Potentiometer. Conversion is triggered at the PWM (zero match + offset of the switch delay) - -- **PWM Peripheral**: - -This peripheral is used to generated three phase synchronous PWM waveforms. Fault functionality is also enabled to switch off the output waveforms asynchronously - -- **UART Peripheral**: - -The UART is used for X2CScope communication to observe graphs and variable values in run time - -## Control Algorithm -This project has been created using Harmony QSpin Tool. For details refer [Harmony QSpin](https://microchip-mplab-harmony.github.io/motor_control/index.html) - -## Development Kits - -### MCLV2 with ATSAME70 PIM -#### Downloading and building the application - -To clone or download this application from Github, go to the [main page of this repository](https://github.com/Microchip-MPLAB-Harmony/mc_apps_sam_e7x_s7x_v7x) and then click **Clone** button to clone this repository or download as zip file. -This content can also be downloaded using content manager by following these [instructions](https://microchip-mplab-harmony.github.io/contentmanager/). - -Path of the application within the repository is **apps/pmsm_foc_smo_sam_e70** . - -To build the application, refer to the following table and open the project using its IDE. - -| Project Name | Description | Hardware Setup Guide | -| ----------------- | ---------------------------------------------- | ------------------ | -| mclv2_sam_e70_pim.X | MPLABX project for MCLV2 board with ATSAME70 PIM | [Hardware Setup and Running The Application on MCLV2 with ATSAME70 PIM](../docs/mclv2_atsame70_pim_sensorless.md)| -||| - - - +[Click here](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=MC_APPS_SAM_E7X_S7X_V7X_PMSM_FOC_SLIDING_MODE_OBSERVER&redirect=true) to view documentation for this application. diff --git a/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/block_diagram.png b/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/block_diagram.png deleted file mode 100644 index eb286e8..0000000 Binary files a/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/block_diagram.png and /dev/null differ diff --git a/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_block_diagram.png b/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_block_diagram.png deleted file mode 100644 index 9219b57..0000000 Binary files a/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_block_diagram.png and /dev/null differ diff --git a/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_classification.png b/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_classification.png deleted file mode 100644 index c6782a5..0000000 Binary files a/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_classification.png and /dev/null differ diff --git a/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_isr_tasks.png b/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_isr_tasks.png deleted file mode 100644 index cac5d47..0000000 Binary files a/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_isr_tasks.png and /dev/null differ diff --git a/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_pwm_freq_setting.png b/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_pwm_freq_setting.png deleted file mode 100644 index bd3c9d3..0000000 Binary files a/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_pwm_freq_setting.png and /dev/null differ diff --git a/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_state_machine.png b/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_state_machine.png deleted file mode 100644 index ca376a6..0000000 Binary files a/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_state_machine.png and /dev/null differ diff --git a/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/project_graph.png b/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/project_graph.png deleted file mode 100644 index cb8ca1e..0000000 Binary files a/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/project_graph.png and /dev/null differ diff --git a/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.md b/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.md index 9c5351e..9b74aa2 100644 --- a/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.md +++ b/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.md @@ -7,169 +7,4 @@ has_toc: false [![MCHP](https://www.microchip.com/ResourcePackages/Microchip/assets/dist/images/logo.png)](https://www.microchip.com) -# Power Factor Correction with PMSM FOC using PLL Estimator - -This example application shows how to control the Permanent Magnet Synchronous Motor (PMSM) with PLL Estimator based Field Oriented Control (FOC) along with Power Factor Correction (PFC)on a SAME70 Micro-controller. - -## Description - -Power Factor Correction ( PFC ) shapes the input current drawn from the AC mains to be in synchronization with the input AC voltage. This project uses Boost-Converter topology to carry out the Power Factor Correction. Permanent Magnet Synchronous Motor (PMSM) is controlled using Field Oriented Control (FOC). Rotor position and speed is determined using PLL estimator technique. Motor start/stop operation is controlled by the switch and motor speed can be changed by the on-board potentiometer. Waveforms and variables can be monitored runtime using X2CScope. - -Key features enabled in this project are: - -- Power factor correction -- Dual shunt current measurement -- Speed control loop -- Field weakening - - -## MCC Project Configurations - -![MHC Project Graph](images/project_graph.png) - - -- **AFEC Peripheral**: - -The AFEC0 peripheral is used to measure analog quantities for motor control operation. Four channels are used to measure the Phase Current A, the Phase Current B, the DC Bus Voltage and the Potentiometer. Conversion is triggered at the PWM (zero match + offset of the switch delay) - -The AFEC1 peripheral is used to measure analog quantities for power factor correction. Three channels are used to measure the input rectified voltage, input rectified current, and the output DC link inverter voltage. Conversion is triggered at the PWM period match - -- **PWM Peripheral**: - -The PWM0 peripheral is used to generated three phase synchronous PWM waveforms. Fault functionality is also enabled to switch off the output waveforms asynchronously - -The PWM1 peripheral is used to generate the PWM waveform for the boost converter switch for current waveform shaping - -- **UART Peripheral**: - -The UART is used for X2CScope communication to observe graphs and variable values in run time - -## Control Algorithm - -The Power Factor Correction is a technique of increasing the power factor of the input AC power supply, thereby providing following advantages: -- Low line harmonics. -- Reduced input current. -- Reduced kVA requirement. -- Improved line efficiency, and improved electromagnetic compatibility. - -The Power Factor Correction techniques can be classified as - Passive and Active. The Passive Power Factor Correction uses passive components, while the active Power Factor Correction Technique uses power electronic switches to carry out Power Factor Correction. Following figure shows the various Power Factor Correction techniques classification: - -![pfc classification](images/pfc_classification.png) - -This project uses Boost topology for Power Factor Correction. A boost converter is placed between the rectifier and output inverter stage to synchronize input AC current to the input AC voltage. For details, refer to application note [AN1106](http://ww1.microchip.com/downloads/en/appnotes/01106a.pdf). The block diagram of a typical boost converter topology based Power Factor Correction is shown below. - -Block Diagram: - -![pfc_block_diagram](images/pfc_block_diagram.png) - -The power factor correction is implemented in following steps: -1. Measure the rectifier stage rectified AC voltage and rectified AC current, and output inverter stage DC bus voltage via high speed ADC channels. -2. Regulate the DC bus voltage using the Voltage Error Compensator. -3. Determine the reference input for Current Error Compensator based on the output of Voltage Error Compensator and Voltage Feed-Forward Compensator. -4. Track the rectified reference AC current using a Current Error Compensator. - - -### Current Error Compensator: -The inner loop in the control block forms the current loop. The input to the current loop is the reference current signal IACREF and the actual inductor current IAC. The current error compensator is designed to produce a control output such that the inductor current IAC follows the reference current IACREF. The current loop should run at a much faster rate when compared to the voltage loop. The bandwidth of the current compensator should be higher for correctly tracking the semi-sinusoidal waveform at twice the input frequency. The current controller GI produces a duty cycle value after appropriate scaling to drive the gate of the boost converter MOSFET. - -### Voltage Error Compensator: -The outer loop in the control block forms the voltage loop. The input to the voltage loop is the reference DC voltage VDCREF and the actual sensed output DC voltage VDC. The voltage error compensator is designed to produce a control output such that the DC bus voltage VDC remains constant at the reference value VDCREF regardless of variations in the load current IO and the supply voltage VAC. The voltage controller GV produces a control signal, which determines the reference current IACREF for the inner current loop. The output voltage is controlled by the voltage error compensator. When the input voltage increases, the product of VAC and VPI increases, and thereby increasing the programming signal. When this signal is divided by the square of the average voltage signal, it results in the current reference signal being reduced proportionally. The outcome is that the current is reduced proportionally to the increase in voltage, thereby keeping the input power constant. This ensures that the reference control output IACREF from the voltage compensator is maximum such that the rated output power is delivered at minimum input voltage. - -### Voltage Feed-Forward Compensator: -If the voltage decreases, the product (VAC · VPI), which determines IACREF, also proportionally decreases. However, to maintain a constant output power at reduced input voltage, the term IACREF should proportionally increase. The purpose of having an input voltage feed-forward, is to maintain the output power constant as determined by the load regardless of variations in the input line voltage. This compensator implemented digitally by calculating the average value of the input line voltage, squaring this average value and using the result as a divider for the input reference current, which is fed to the current error compensator. - - -**FOC with PLL estimator** : - -This estimator uses PLL structure to estimate the rotor position and thus speed. Its operating principle -is based on the fact that the d-component of the Back Electromotive Force (BEMF) must be equal to zero at -a steady state functioning mode. It can not estimate the rotor angle at -lower rotor speeds because of very low back EMF. So, open loop startup is used till required minimum speed is achieved. - -The following block diagram shows the software realization of the FOC algorithm. - -![block_diagram](images/block_diagram.png) - -## PFC Software Design - -The following section describes the software flow diagram for the power factor correction application project. The power factor correction algorithm in this example project is realized by following state machines. - -![state machine](images/pfc_state_machine.png) - -1. PFC Init State: -In this state following tasks are performed: -Initialization and configuration of NVIC, AFEC, PWM peripherals for generation of periodic ADC triggers and ADC conversion interrupt. -Calibration of input rectified AC current sense amplifiers. -Initialization of reference DC voltage and reference rectified AC current PI controllers used for Power Factor Correction. - -2. PFC Start state: -In this state following tasks are performed: -Start PWM peripherals timer to trigger ADC conversion interrupt. - - -3. PFC Running State: -In this state, the power factor correction ISR is executed. - -![run state machine](images/pfc_isr_tasks.png) - -4. PFC Stop State: -In this state, the power factor correction is disabled. - -## Software Configuration: -The following section describes user specific parameters used the the project. - -1. Setting the PFC boost converter stage frequency: -The boost converter stage PWM frequency ( in Hz ) can be configured by setting the following macro in userparams.h file. -This period timer ticks should be configured properly for PWM peripheral in the MHC to get the desired frequency as shown below: - -![freq setting](images/pfc_pwm_freq_setting.png) - -| Macro | Description | -| ----------------- | ---------------------------------------------- | -| PFC_PWM_FREQUENCY | Boost converter stage PWM frequency | -||| - -2. Setting PI Controller parameters of Boost Converter Controller: - -The voltage and current controllers used in the PFC algorithm has to be tuned to get the optimal control. - -Parameters for reference DC bus voltage PI Controller: - -| Macro | Description | -| ----------------- | ---------------------------------------------- | -| PFC_VOLTAGE_PTERM | Proportional gain of voltage control loop | -| PFC_VOLTAGE_ITERM | Integral gain of voltage control loop | -| PFC_VOLTAGE_CTERM | Anti-windup term of voltage control loop | -| PFC_VOLTAGE_OUTMAX | Maximum controller output of voltage control loop | -||| - -Parameters for reference rectified AC current PI Controller: - -| Macro | Description | -| ----------------- | ---------------------------------------------- | -| PFC_CURRCNTR_PTERM | Proportional gain of input current control loop | -| PFC_CURRCNTR_ITERM | Integral gain of input current control loop | -| PFC_CURRCNTR_CTERM | Anti-windup term of input current control loop | -| PFC_CURRCNTR_OUTMAX | Maximum controller output of input current control loop | -||| - -## Development Kits - -### MCHV3 with ATSAME70 PIM -#### Downloading and building the application - -To clone or download this application from Github, go to the [main page of this repository](https://github.com/Microchip-MPLAB-Harmony/mc_apps_sam_e7x_s7x_v7x) and then click **Clone** button to clone this repository or download as zip file. -This content can also be downloaded using content manager by following these [instructions](https://microchip-mplab-harmony.github.io/contentmanager/). - -Path of the application within the repository is **apps/pmsm_pfc_foc_pll_estimator_sam_e70** . - -To build the application, refer to the following table and open the project using its IDE. - -| Project Name | Description | Hardware Setup Guide | -| ----------------- | ---------------------------------------------- | ----------------- | -| mchv3_sam_e70_pim.X | MPLABX project for MCHV3 board with ATSAME70 PIM | [Hardware Setup and Running The Application on MCHV3 with ATSAME70 PIM](../docs/mchv3_atsame70_pim_sensorless.md) | -||| - - - - +[Click here](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=MC_APPS_SAM_E7X_S7X_V7X_POWER_FACTOR_CORRECTION_PMSM_FOC_PLL_ESTIMATOR&redirect=true) to view documentation for this application. diff --git a/docs/apps/docs/hardware_setup.html b/docs/apps/docs/hardware_setup.html deleted file mode 100644 index 85493d8..0000000 --- a/docs/apps/docs/hardware_setup.html +++ /dev/null @@ -1 +0,0 @@ - Hardware Setup | Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family Link Search Menu Expand Document

Hardware Setup

dsPICDEM™ MCHV-3 Development Board (High Voltage)

Board Description
MCHV3 Setup for Sensorless Mode Hardware setup of MCHV3 development board for sensorless mode
MCHV3 Setup for Quadrature Encoder Mode Hardware setup of MCHV3 development board for encoder mode
   

dsPICDEM™ MCLV-2 Development Board (Motor Control Low-Voltage)

Board Description
MCLV2 Setup for Sensorless Mode Hardware setup of MCLV2 development board for sensorless mode
MCLV2 Setup for Quadrature Encoder Mode Hardware setup of MCLV2 development board for encoder mode
   


Copyright © 2020 Microchip Technology.

diff --git a/docs/apps/docs/images/mchv3/encoder_connection.png b/docs/apps/docs/images/mchv3/encoder_connection.png deleted file mode 100644 index 5b1832a..0000000 Binary files a/docs/apps/docs/images/mchv3/encoder_connection.png and /dev/null differ diff --git a/docs/apps/docs/images/mchv3/exclude_device_checks_edbg.jpg b/docs/apps/docs/images/mchv3/exclude_device_checks_edbg.jpg deleted file mode 100644 index c2f5161..0000000 Binary files a/docs/apps/docs/images/mchv3/exclude_device_checks_edbg.jpg and /dev/null differ diff --git a/docs/apps/docs/images/mchv3/mchv3_ac_mains.png b/docs/apps/docs/images/mchv3/mchv3_ac_mains.png deleted file mode 100644 index 8c312d2..0000000 Binary files a/docs/apps/docs/images/mchv3/mchv3_ac_mains.png and /dev/null differ diff --git a/docs/apps/docs/images/mchv3/mchv3_back_panel.png b/docs/apps/docs/images/mchv3/mchv3_back_panel.png deleted file mode 100644 index 40274ef..0000000 Binary files a/docs/apps/docs/images/mchv3/mchv3_back_panel.png and /dev/null differ diff --git a/docs/apps/docs/images/mchv3/mchv3_replacing_isolated_edbg.png b/docs/apps/docs/images/mchv3/mchv3_replacing_isolated_edbg.png deleted file mode 100644 index e2403bb..0000000 Binary files a/docs/apps/docs/images/mchv3/mchv3_replacing_isolated_edbg.png and /dev/null differ diff --git a/docs/apps/docs/images/mchv3/same70_mchv3_hardware_setup.png b/docs/apps/docs/images/mchv3/same70_mchv3_hardware_setup.png deleted file mode 100644 index 0238c37..0000000 Binary files a/docs/apps/docs/images/mchv3/same70_mchv3_hardware_setup.png and /dev/null differ diff --git a/docs/apps/docs/images/mchv3/same70_mchv3_jumper_settings.png b/docs/apps/docs/images/mchv3/same70_mchv3_jumper_settings.png deleted file mode 100644 index ffb7e3a..0000000 Binary files a/docs/apps/docs/images/mchv3/same70_mchv3_jumper_settings.png and /dev/null differ diff --git a/docs/apps/docs/images/mchv3/same70_pfc_external_opamp_mchv3.png b/docs/apps/docs/images/mchv3/same70_pfc_external_opamp_mchv3.png deleted file mode 100644 index c587e96..0000000 Binary files a/docs/apps/docs/images/mchv3/same70_pfc_external_opamp_mchv3.png and /dev/null differ diff --git a/docs/apps/docs/images/mchv3/same70_pim_mchv3.png b/docs/apps/docs/images/mchv3/same70_pim_mchv3.png deleted file mode 100644 index 2b32e5f..0000000 Binary files a/docs/apps/docs/images/mchv3/same70_pim_mchv3.png and /dev/null differ diff --git a/docs/apps/docs/images/mclv2/encoder_connection.png b/docs/apps/docs/images/mclv2/encoder_connection.png deleted file mode 100644 index d75f043..0000000 Binary files a/docs/apps/docs/images/mclv2/encoder_connection.png and /dev/null differ diff --git a/docs/apps/docs/images/mclv2/pll_same70_mclv2.png b/docs/apps/docs/images/mclv2/pll_same70_mclv2.png deleted file mode 100644 index 64c69d0..0000000 Binary files a/docs/apps/docs/images/mclv2/pll_same70_mclv2.png and /dev/null differ diff --git a/docs/apps/docs/images/mclv2/pll_same70_mclv2_ext_opamp.png b/docs/apps/docs/images/mclv2/pll_same70_mclv2_ext_opamp.png deleted file mode 100644 index 063a6ed..0000000 Binary files a/docs/apps/docs/images/mclv2/pll_same70_mclv2_ext_opamp.png and /dev/null differ diff --git a/docs/apps/docs/images/mclv2/pll_same70_mclv2_jumper_settings.png b/docs/apps/docs/images/mclv2/pll_same70_mclv2_jumper_settings.png deleted file mode 100644 index 858c2e7..0000000 Binary files a/docs/apps/docs/images/mclv2/pll_same70_mclv2_jumper_settings.png and /dev/null differ diff --git a/docs/apps/docs/images/mclv2/pll_same70_mclv2_motor_connection.png b/docs/apps/docs/images/mclv2/pll_same70_mclv2_motor_connection.png deleted file mode 100644 index ade615b..0000000 Binary files a/docs/apps/docs/images/mclv2/pll_same70_mclv2_motor_connection.png and /dev/null differ diff --git a/docs/apps/docs/images/mclv2/pll_same70_pim_mclv2.png b/docs/apps/docs/images/mclv2/pll_same70_pim_mclv2.png deleted file mode 100644 index 42cd3d2..0000000 Binary files a/docs/apps/docs/images/mclv2/pll_same70_pim_mclv2.png and /dev/null differ diff --git a/docs/apps/docs/images/mclv2/pll_same70_power_mclv2.png b/docs/apps/docs/images/mclv2/pll_same70_power_mclv2.png deleted file mode 100644 index 709c330..0000000 Binary files a/docs/apps/docs/images/mclv2/pll_same70_power_mclv2.png and /dev/null differ diff --git a/docs/apps/docs/mchv3_atsame70_pim_encoder.html b/docs/apps/docs/mchv3_atsame70_pim_encoder.html deleted file mode 100644 index 43a46c0..0000000 --- a/docs/apps/docs/mchv3_atsame70_pim_encoder.html +++ /dev/null @@ -1 +0,0 @@ - MCHV3 Development Board Setup for Quadrature Encoder | Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family Link Search Menu Expand Document

MCHV3 Development Board

Setting up the hardware

The following table shows the target hardware for the application projects.

Setting up MCHV3 Development Board

  • Mount the ATSAME70 Motor Control Plug In Module on U9 header.

    PIM Install

  • Place the “PFC - External Opamp Configuration” Matrix board at J4.

    External OPAMP

  • Motor Connections:
    • Phase U - M1
    • Phase V - M2
    • Phase W - M3

    Motor Connections

  • Encoder Connections:
    • A+ - HA
    • B+ - HB
    • 5V - +5V
    • 0V - GND

    Encoder Connections

  • Jumper Settings:
    • J11 - VAC ( Short Pin 3 - 4)
    • J12 - IA ( Short Pin 1 - 2)
    • J13 - IB ( Short Pin 1 - 2)
    • J14 - Fault_IP/IBUS ( Short Pin 1 - 2)

    jumper Settings

  • Power the board with (110V/220V) AC mains. For additional safety, it is recommended to use a current limited power supply while testing this software demonstration on a non-default hardware and motor.

    jumper Settings

  • Installing Isolated Embedded Debugger Default programmer or debugger daughter card shipped with the MCHV3 board cannot program or debug SAM series MCU and therefore, it needs to be replaced with an Isolated Embedded Debugger Interface for MCHV.

    Isolated EDBG

  • Complete Setup

    Setup

Running the Application

  1. Build and Program the application using its IDE
  2. Press switch PUSHBUTTON to start the motor
  3. Vary potentiometer to change the speed of the motor
  4. Press switch to stop the motor
  5. Monitor graphs on X2C Scope

Refer to the following tables for switch and LED details:

Switch Description
PUSHBUTTON To start or stop the motor
   
LED D2 Status Description
OFF No fault
ON Fault is detected
   


Copyright © 2020 Microchip Technology.

diff --git a/docs/apps/docs/mchv3_atsame70_pim_sensorless.html b/docs/apps/docs/mchv3_atsame70_pim_sensorless.html deleted file mode 100644 index f4d6ab9..0000000 --- a/docs/apps/docs/mchv3_atsame70_pim_sensorless.html +++ /dev/null @@ -1 +0,0 @@ - MCHV3 Development Board Setup for Sensorless Mode | Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family Link Search Menu Expand Document

MCHV3 Development Board

Setting up the hardware

The following table shows the target hardware for the application projects.

Setting up MCHV3 Development Board

  • Mount the ATSAME70 Motor Control Plug In Module on U9 header.

    PIM Install

  • Place the “PFC - External Opamp Configuration” Matrix board at J4.

    External OPAMP

  • Motor Connections:
    • Phase U - M1
    • Phase V - M2
    • Phase W - M3

    Motor Connections

  • Jumper Settings:
    • J11 - VAC ( Short Pin 3 - 4)
    • J12 - IA ( Short Pin 1 - 2)
    • J13 - IB ( Short Pin 1 - 2)
    • J14 - Fault_IP/IBUS ( Short Pin 1 - 2)

    jumper Settings

  • Power the board with (110V/220V) AC mains. For additional safety, it is recommended to use a current limited power supply while testing this software demonstration on a non-default hardware and motor.

    jumper Settings

  • Installing Isolated Embedded Debugger Default programmer or debugger daughter card shipped with the MCHV3 board cannot program or debug SAM series MCU and therefore, it needs to be replaced with an Isolated Embedded Debugger Interface for MCHV.

    Isolated EDBG

  • Complete Setup

    Setup

Running the Application

  1. Build and Program the application using its IDE
  2. Press switch PUSHBUTTON to start the motor
  3. Vary potentiometer to change the speed of the motor
  4. Press switch to stop the motor
  5. Monitor graphs on X2C Scope

Refer to the following tables for switch and LED details:

Switch Description
PUSHBUTTON To start or stop the motor
   
LED D2 Status Description
OFF No fault
ON Fault is detected
   


Copyright © 2020 Microchip Technology.

diff --git a/docs/apps/docs/mclv2_atsame70_pim_encoder.html b/docs/apps/docs/mclv2_atsame70_pim_encoder.html deleted file mode 100644 index 24e3d83..0000000 --- a/docs/apps/docs/mclv2_atsame70_pim_encoder.html +++ /dev/null @@ -1 +0,0 @@ - MCLV2 Development Board Setup for Quadrature Encoder | Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family Link Search Menu Expand Document

MCLV2 Development Board

Setting up the hardware

The following table shows the target hardware for the application projects.

Project Name Hardware
mclv2_sam_e70_pim.X
MCLV2 Development Board
ATSAME70 Plug-in module
Hurst Motor with encoder
   

Setting up MCLV2 Development Board

  • Mount the ATSAME70 Motor Control Plug In Module on U9 header.

    PIM Install

  • Place the “External Opamp Configuration” Matrix board at J14.

    External OPAMP

  • Motor Connections:
    • White (Phase U) - M1
    • Black (Phase V) - M2
    • Red (Phase W) - M3

    Motor Connections

  • Encoder Connections: Connect encoder wires as shown below
    • (Red) +5V : +5V
    • (Black) -5V : GND
    • (White) A : HA
    • (Blue) B : HB

    Encoder Connections

  • Jumper Settings:
    • JP1 - Curr, JP2 - Curr, JP3 - Curr
    • In order to use RS232 port for X2CScope Communication JP4 - UART, JP5 - UART
    • In order to use USB port for X2CScope Communication JP4 - USB, JP5 - USB

    jumper Settings

  • Power the board with a 24V DC supply using J2 or BP1-BP2. For additional safety, it is recommended to use a current limited power supply while testing this software demonstration on a non-default hardware and motor.

    jumper Settings

  • Complete Setup

    Setup

Running the Application

  1. Build and Program the application using its IDE
  2. Press switch S2 to start the motor
  3. Vary potentiometer to change the speed of the motor
  4. Press switch S2 to stop the motor
  5. Press switch S3 to change the direction of the motor
  6. Press switch S2 again to start the motor
  7. Monitor graphs on X2C Scope

Refer to the following tables for switch and LED details:

Switch Description
Switch S2 To start or stop the motor
Switch S3 To change the direction of rotation.
Direction toggle command is accepted only when motor is stationary.
   
LED D2 Status Description
OFF Motor spin direction is “positive”
ON Motor spin direction is “negative”
   
LED D17 Status Description
OFF No fault
ON Fault is detected
   


Copyright © 2020 Microchip Technology.

diff --git a/docs/apps/docs/mclv2_atsame70_pim_sensorless.html b/docs/apps/docs/mclv2_atsame70_pim_sensorless.html deleted file mode 100644 index baf5c61..0000000 --- a/docs/apps/docs/mclv2_atsame70_pim_sensorless.html +++ /dev/null @@ -1 +0,0 @@ - MCLV2 Development Board Setup for Sensorless Mode | Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family Link Search Menu Expand Document

MCLV2 Development Board

Setting up the hardware

The following table shows the target hardware for the application projects.

Project Name Hardware
mclv2_sam_e70_pim.X
MCLV2 Development Board
ATSAME70 Plug-in module
Hurst Motor with encoder
   

Setting up MCLV2 Development Board

  • Mount the ATSAME70 Motor Control Plug In Module on U9 header.

    PIM_Install

  • Place the “External Opamp Configuration” Matrix board at J14.

    External_OPAMP

  • Motor Connections:
    • White (Phase U) - M1
    • Black (Phase V) - M2
    • Red (Phase W) - M3

    Motor_Connections

  • Jumper Settings:
    • JP1 - Curr, JP2 - Curr, JP3 - Curr
    • In order to use RS232 port for X2CScope Communication JP4 - UART, JP5 - UART
    • In order to use USB port for X2CScope Communication JP4 - USB, JP5 - USB

    jumper_Settings

  • Power the board with a 24V DC supply using J2 or BP1-BP2. For additional safety, it is recommended to use a current limited power supply while testing this software demonstration on a non-default hardware and motor.

    power

  • Complete Setup

    Setup

Running the Application

  1. Build and Program the application using its IDE
  2. Press switch S2 to start the motor
  3. Vary potentiometer to change the speed of the motor
  4. Press switch S2 to stop the motor
  5. Press switch S3 to change the direction of the motor
  6. Press switch S2 again to start the motor
  7. Monitor graphs on X2C Scope

Refer to the following tables for switch and LED details:

Switch Description
Switch S2 To start or stop the motor
Switch S3 To change the direction of rotation.
Direction toggle command is accepted only when motor is stationary.
   
LED D2 Status Description
OFF Motor spin direction is “positive”
ON Motor spin direction is “negative”
   
LED D17 Status Description
OFF No fault
ON Fault is detected
   


Copyright © 2020 Microchip Technology.

diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/adc_parameters.PNG b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/adc_parameters.PNG deleted file mode 100644 index f12f118..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/adc_parameters.PNG and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/block_diagram.jpg b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/block_diagram.jpg deleted file mode 100644 index ead231c..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/block_diagram.jpg and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/board_parameters.PNG b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/board_parameters.PNG deleted file mode 100644 index 0d02f29..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/board_parameters.PNG and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/code_structure.png b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/code_structure.png deleted file mode 100644 index 7475c6c..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/code_structure.png and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/code_structure_fixed_point.jpg b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/code_structure_fixed_point.jpg deleted file mode 100644 index 61eb49d..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/code_structure_fixed_point.jpg and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/control_parameters.PNG b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/control_parameters.PNG deleted file mode 100644 index 0c30d3c..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/control_parameters.PNG and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/control_strategy.PNG b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/control_strategy.PNG deleted file mode 100644 index b7fa36a..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/control_strategy.PNG and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/encoder.PNG b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/encoder.PNG deleted file mode 100644 index 5b61f6d..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/encoder.PNG and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/encoder_signals.PNG b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/encoder_signals.PNG deleted file mode 100644 index c27dbfd..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/encoder_signals.PNG and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/flow_chart.png b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/flow_chart.png deleted file mode 100644 index 46ecd20..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/flow_chart.png and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/flow_chart_fixed_point.jpg b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/flow_chart_fixed_point.jpg deleted file mode 100644 index 073ab46..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/flow_chart_fixed_point.jpg and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/flux_weakening.png b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/flux_weakening.png deleted file mode 100644 index e38d768..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/flux_weakening.png and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/flyingstart_parameters.png b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/flyingstart_parameters.png deleted file mode 100644 index 586611e..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/flyingstart_parameters.png and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/motor_parameters.PNG b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/motor_parameters.PNG deleted file mode 100644 index 931a33e..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/motor_parameters.PNG and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/project_graph.jpg b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/project_graph.jpg deleted file mode 100644 index 69ec2ce..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/project_graph.jpg and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/pwm_parameters.PNG b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/pwm_parameters.PNG deleted file mode 100644 index d3f670e..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/pwm_parameters.PNG and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/supported_features.jpg b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/supported_features.jpg deleted file mode 100644 index ea22ad1..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/supported_features.jpg and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/supported_features.xlsx b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/supported_features.xlsx deleted file mode 100644 index 3a74bde..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/supported_features.xlsx and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/timing_diagram.png b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/timing_diagram.png deleted file mode 100644 index 2d26c81..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/timing_diagram.png and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/timing_diagram_fixed_point.jpg b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/timing_diagram_fixed_point.jpg deleted file mode 100644 index 950694d..0000000 Binary files a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/images/timing_diagram_fixed_point.jpg and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html b/docs/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html deleted file mode 100644 index 59787d1..0000000 --- a/docs/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html +++ /dev/null @@ -1 +0,0 @@ - PMSM FOC using Quadrature Encoder | Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family Link Search Menu Expand Document

MCHP

PMSM FOC using Quadrature Encoder

This example application shows how to control the Permanent Magnet Synchronous Motor (PMSM) with Quadrature Encoder based Field Oriented Control (FOC) on a SAME70 Micro-controller.

Description

Permanent Magnet Synchronous Motor (PMSM) is controlled using Field Oriented Control (FOC). Rotor position and speed is determined using quadrature encoder sensor. Motor start/stop operation is controlled by the switch and motor speed can be changed by the on-board potentiometer. Waveforms and variables can be monitored runtime using X2CScope.

Key features enabled in this project are:

  • Dual shunt current measurement
  • Speed control loop
  • Field weakening

MCC Project Configurations

MHC Project Graph

  • PMSM_FOC:

    This component configures FOC algorithm parameters, motor parameters and motor control board parameters. It connects to underlying peripheral libraries AFEC and PWM. This components auto configures ADC channels and PWM channels as per PMSM_FOC component configurations.

  • AFEC Peripheral:

    The AFEC is used to measure analog quantities. Four channels are used to measure the Phase Current U, the Phase Current V, the DC Bus Voltage and the Potentiometer. Conversion is triggered at the PWM (zero match + offset of the switch delay)

  • PWM Peripheral:

    This peripheral is used to generated three phase synchronous PWM waveforms. Fault functionality is also enabled to switch off the output waveforms asynchronously.

  • TC QDEC Peripheral:

    TC peripheral is configured in QDEC mode. It is used to decode the rotor position and speed from quadrature encoder signals.

  • X2CScope:

    This component adds X2C scope protocol code. This uses UART to communicate to the host PC. X2CScope allows user to monitor variables runtime.

  • UART Peripheral:

    The UART is used for X2CScope communication to observe graphs and variable values in run time

Project Details

This project has been created using Harmony QSpin Tool. For details refer Harmony QSpin

Development Kits

MCLV2 with ATSAME70 PIM

Downloading and building the application

To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions.

Path of the application within the repository is apps/mcp_pmsm_foc_encoder_sam_e70 .

To build the application, refer to the following table and open the project using its IDE.

Project Name Description Hardware Setup Guide
mclv2_sam_e70_pim.X MPLABX project for MCLV2 board with ATSAME70 PIM Hardware Setup and Running The Application on MCLV2 with ATSAME70 PIM

MCHV3 with ATSAME70 PIM

Downloading and building the application

To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions.

Path of the application within the repository is apps/mcp_pmsm_foc_encoder_sam_e70 .

To build the application, refer to the following table and open the project using its IDE.

Project Name Description Hardware Setup Guide
mchv3_sam_e70_pim.X MPLABX project for MCHV3 board with ATSAME70 PIM Hardware Setup and Running The Application on MCHV3 with ATSAME70 PIM


Copyright © 2020 Microchip Technology.

diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/adc_parameters.PNG b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/adc_parameters.PNG deleted file mode 100644 index f12f118..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/adc_parameters.PNG and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/block_diagram.jpg b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/block_diagram.jpg deleted file mode 100644 index ead231c..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/block_diagram.jpg and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/board_parameters.PNG b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/board_parameters.PNG deleted file mode 100644 index 0d02f29..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/board_parameters.PNG and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/code_structure.png b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/code_structure.png deleted file mode 100644 index 7475c6c..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/code_structure.png and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/code_structure_fixed_point.jpg b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/code_structure_fixed_point.jpg deleted file mode 100644 index 61eb49d..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/code_structure_fixed_point.jpg and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/control_parameters.PNG b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/control_parameters.PNG deleted file mode 100644 index 0c30d3c..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/control_parameters.PNG and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/control_strategy.PNG b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/control_strategy.PNG deleted file mode 100644 index b7fa36a..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/control_strategy.PNG and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/encoder.PNG b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/encoder.PNG deleted file mode 100644 index 5b61f6d..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/encoder.PNG and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/encoder_signals.PNG b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/encoder_signals.PNG deleted file mode 100644 index c27dbfd..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/encoder_signals.PNG and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/flow_chart.png b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/flow_chart.png deleted file mode 100644 index 46ecd20..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/flow_chart.png and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/flow_chart_fixed_point.jpg b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/flow_chart_fixed_point.jpg deleted file mode 100644 index 073ab46..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/flow_chart_fixed_point.jpg and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/flux_weakening.png b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/flux_weakening.png deleted file mode 100644 index e38d768..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/flux_weakening.png and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/flyingstart_parameters.png b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/flyingstart_parameters.png deleted file mode 100644 index 586611e..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/flyingstart_parameters.png and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/motor_parameters.PNG b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/motor_parameters.PNG deleted file mode 100644 index 931a33e..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/motor_parameters.PNG and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/project_graph.jpg b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/project_graph.jpg deleted file mode 100644 index bd2f9b8..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/project_graph.jpg and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/pwm_parameters.PNG b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/pwm_parameters.PNG deleted file mode 100644 index d3f670e..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/pwm_parameters.PNG and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/supported_features.jpg b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/supported_features.jpg deleted file mode 100644 index ea22ad1..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/supported_features.jpg and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/supported_features.xlsx b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/supported_features.xlsx deleted file mode 100644 index 3a74bde..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/supported_features.xlsx and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/timing_diagram.png b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/timing_diagram.png deleted file mode 100644 index 2d26c81..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/timing_diagram.png and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/timing_diagram_fixed_point.jpg b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/timing_diagram_fixed_point.jpg deleted file mode 100644 index 950694d..0000000 Binary files a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/images/timing_diagram_fixed_point.jpg and /dev/null differ diff --git a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html b/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html deleted file mode 100644 index d56f8fc..0000000 --- a/docs/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html +++ /dev/null @@ -1 +0,0 @@ - PMSM FOC using PLL Estimator | Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family Link Search Menu Expand Document

MCHP

PMSM FOC using PLL Estimator

This example application shows how to control the Permanent Magnet Synchronous Motor (PMSM) with PLL Estimator based Field Oriented Control (FOC) on a SAME70 Micro-controller.

Description

Permanent Magnet Synchronous Motor (PMSM) is controlled using Field Oriented Control (FOC). Rotor position and speed is determined using PLL estimator technique. Motor start/stop operation is controlled by the switch and motor speed can be changed by the on-board potentiometer. Waveforms and variables can be monitored runtime using X2CScope.

Key features enabled in this project are:

  • Dual shunt current measurement
  • Speed control loop
  • Field weakening

MCC Project Configurations

MHC Project Graph

  • AFEC Peripheral:

    The AFEC is used to measure analog quantities. Four channels are used to measure the Phase Current U, the Phase Current V, the DC Bus Voltage and the Potentiometer. Conversion is triggered at the PWM (zero match + offset of the switch delay)

  • PWM Peripheral:

    This peripheral is used to generated three phase synchronous PWM waveforms. Fault functionality is also enabled to switch off the output waveforms asynchronously.

  • X2CScope:

    This component adds X2C scope protocol code. This uses UART to communicate to the host PC. X2CScope allows user to monitor variables runtime.

  • UART Peripheral:

    The UART is used for X2CScope communication to observe graphs and variable values in run time

Project Details

This project has been created using Harmony QSpin Tool. For details refer Harmony QSpin

Development Kits

MCLV2 with ATSAME70 PIM

Downloading and building the application

To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions.

Path of the application within the repository is apps/mcp_pmsm_foc_pll_estimator_sam_e70 .

To build the application, refer to the following table and open the project using its IDE.

Project Name Description Hardware Setup Guide
mclv2_sam_e70_pim.X MPLABX project for MCLV2 board with ATSAME70 PIM Hardware Setup and Running The Application on MCLV2 with ATSAME70 PIM

MCHV3 with ATSAME70 PIM

Downloading and building the application

To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions.

Path of the application within the repository is apps/mcp_pmsm_foc_pll_estimator_sam_e70 .

To build the application, refer to the following table and open the project using its IDE.

Project Name Description Hardware Setup Guide
mchv3_sam_e70_pim.X MPLABX project for MCHV3 board with ATSAME70 PIM Hardware Setup and Running The Application on MCHV3 with ATSAME70 PIM


Copyright © 2020 Microchip Technology.

diff --git a/docs/apps/pmsm_foc_smo_sam_e70/images/back_emf_observer.png b/docs/apps/pmsm_foc_smo_sam_e70/images/back_emf_observer.png deleted file mode 100644 index de7def6..0000000 Binary files a/docs/apps/pmsm_foc_smo_sam_e70/images/back_emf_observer.png and /dev/null differ diff --git a/docs/apps/pmsm_foc_smo_sam_e70/images/block_diagram.png b/docs/apps/pmsm_foc_smo_sam_e70/images/block_diagram.png deleted file mode 100644 index eb286e8..0000000 Binary files a/docs/apps/pmsm_foc_smo_sam_e70/images/block_diagram.png and /dev/null differ diff --git a/docs/apps/pmsm_foc_smo_sam_e70/images/current_observer.png b/docs/apps/pmsm_foc_smo_sam_e70/images/current_observer.png deleted file mode 100644 index 8222a1a..0000000 Binary files a/docs/apps/pmsm_foc_smo_sam_e70/images/current_observer.png and /dev/null differ diff --git a/docs/apps/pmsm_foc_smo_sam_e70/images/isr_run_task.png b/docs/apps/pmsm_foc_smo_sam_e70/images/isr_run_task.png deleted file mode 100644 index d5c6b14..0000000 Binary files a/docs/apps/pmsm_foc_smo_sam_e70/images/isr_run_task.png and /dev/null differ diff --git a/docs/apps/pmsm_foc_smo_sam_e70/images/project_graph.png b/docs/apps/pmsm_foc_smo_sam_e70/images/project_graph.png deleted file mode 100644 index 24c51a2..0000000 Binary files a/docs/apps/pmsm_foc_smo_sam_e70/images/project_graph.png and /dev/null differ diff --git a/docs/apps/pmsm_foc_smo_sam_e70/images/smo_block_diagram.png b/docs/apps/pmsm_foc_smo_sam_e70/images/smo_block_diagram.png deleted file mode 100644 index 42f3adc..0000000 Binary files a/docs/apps/pmsm_foc_smo_sam_e70/images/smo_block_diagram.png and /dev/null differ diff --git a/docs/apps/pmsm_foc_smo_sam_e70/images/smo_parameters.png b/docs/apps/pmsm_foc_smo_sam_e70/images/smo_parameters.png deleted file mode 100644 index d471751..0000000 Binary files a/docs/apps/pmsm_foc_smo_sam_e70/images/smo_parameters.png and /dev/null differ diff --git a/docs/apps/pmsm_foc_smo_sam_e70/images/state_diagram.png b/docs/apps/pmsm_foc_smo_sam_e70/images/state_diagram.png deleted file mode 100644 index 52a5084..0000000 Binary files a/docs/apps/pmsm_foc_smo_sam_e70/images/state_diagram.png and /dev/null differ diff --git a/docs/apps/pmsm_foc_smo_sam_e70/images/timing_diagram.png b/docs/apps/pmsm_foc_smo_sam_e70/images/timing_diagram.png deleted file mode 100644 index a1ab25e..0000000 Binary files a/docs/apps/pmsm_foc_smo_sam_e70/images/timing_diagram.png and /dev/null differ diff --git a/docs/apps/pmsm_foc_smo_sam_e70/readme.html b/docs/apps/pmsm_foc_smo_sam_e70/readme.html deleted file mode 100644 index e761062..0000000 --- a/docs/apps/pmsm_foc_smo_sam_e70/readme.html +++ /dev/null @@ -1 +0,0 @@ - PMSM FOC using Sliding Mode Observer | Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family Link Search Menu Expand Document

MCHP

PMSM FOC using Sliding Mode Observer

This example application shows how to control the Permanent Magnet Synchronous Motor (PMSM) with Sliding Mode Observer based Field Oriented Control (FOC) on a SAME70 Micro-controller.

Description

Permanent Magnet Synchronous Motor (PMSM) is controlled using Field Oriented Control (FOC). Rotor position and speed is determined using Sliding Mode Observer (SMO) technique. Motor start/stop operation is controlled by the switch and motor speed can be changed by the on-board potentiometer. Waveforms and variables can be monitored runtime using X2CScope.

Key features enabled in this project are:

  • Dual shunt current measurement
  • Speed control loop

MCC Project Configurations

MHC Project Graph

  • AFEC Peripheral:

The AFEC (ADC) is used to measure analog quantities. Four channels are used to measure the Phase Current A, the Phase Current B, the DC Bus Voltage and the Potentiometer. Conversion is triggered at the PWM (zero match + offset of the switch delay)

  • PWM Peripheral:

This peripheral is used to generated three phase synchronous PWM waveforms. Fault functionality is also enabled to switch off the output waveforms asynchronously

  • UART Peripheral:

The UART is used for X2CScope communication to observe graphs and variable values in run time

Control Algorithm

This section briefly explains the FOC control algorithm, software design and implementation.

Field Oriented Control is the technique used to achieve the decoupled control of torque and flux. This is done by transforming the stator current quantities (phase currents) from stationary reference frame to torque and flux producing currents components in rotating reference frame using mathematical transformations. The Field Oriented Control is done as follows:

  1. Measure the motor phase currents.
  2. Transform them into the two phase system (a, b) using the Clarke transformation.
  3. Calculate the rotor position angle.
  4. Transform stator currents into the d,q-coordinate system using the Park transformation.
  5. The stator current torque (iq) and flux (id) producing components are controlled separately by the controllers.
  6. The output stator voltage space vector is transformed back from the d,q-coordinate system into the two phase system fixed with the stator by the Inverse Park transformation.
  7. Using the space vector modulation, the three-phase output voltage is generated.

Sliding Mode Observer (SMO) :

Sliding Mode Observer is used to estimate the rotor position and thus speed. The electrical rotor position and speed is calculated using the Sliding Mode Observer. The main disadvantage of SMO Observer is its inability to estimate the rotor angle at lower rotor speeds because of very low value of back EMF. Therefore, the FOC algorithm also integrates the ramp-up profile for motor start. The reference speed is incremented linearly using a open loop phase voltage control until the required minimum reference speed for the SMO observer is reached.

The Sliding Mode Observer ( SMO ) is based on the principle of sliding mode control. It generates a sliding motion on the error between the plant output and the output of the observer such it produces a set of states that are precisely drives the estimated output to the actual output of the plant.

The sliding mode observer consists of a model based current observer followed by a back EMF Observer. The observed back EMF is filtered and then used to extract the position information from it. The following figure shows a typical Sliding Mode Observer:

smo_block_diagram

The current and back EMF observer is modeled in discrete time by following equations:

Current Observer:

current_observer

Back EMF Observer:

back_emf_observer

smo_parameters

The following block diagram shows the software realization of the FOC algorithm.

block_diagram

Software Design

The following figure shows the various state machines of the the motor control software.

state_diagram

In the software, the PMSM speed control task is realized by a state machine as shown in the previous figure. The following sections briefly describes the various states in the PMSM speed control task:

  1. Initialize:

In this state, following tasks are performed: Initialization and configuration of NVIC, AFEC, PWM motor control peripherals for generation of periodic ADC triggers and ADC conversion interrupt Current Offset measurement and calibration Initialize PI controller parameters for speed and current control loops

  1. Start:

In this state, the motor control state variables are reset and periodic ADC conversion interrupt is enabled. Control waits for the switch press.

  1. Run:

In this state, the motor starts spinning. The following flow chart and the timing diagram shows the tasks performed in run state:

flow chart

timing diagram

In run state, two threads are executed- Main task thread and ADC Interrupt task thread. The current control and speed control is carried out in the ADC interrupt task thread. The main task thread monitors the external switches and maintains the state machine. Therefore, the ADC interrupt cycle indicates the current and speed control frequency.

As pointed out earlier, the SMO is unable to estimate the rotor position information at the start-up phase when the speed is very low. This necessitates the motor control algorithm to integrate an open-loop control mechanism to linearly ramp the motor speed to the required minimum speed before switching over to closed loop control. Therefore, the motor control state can further be classified into three sub-states - Field Alignment, Open-loop Control and Close-loop Control.

Field Alignment: In this mode, a limited value of DC current is applied to the U phase of PMSM motor in order to align the rotor magnetic field with the U-phase of the motor. The time for which DC current has to be applied to achieve the field alignment depends on the time constant of the PMSM motor drive.

Open Loop Control: In this mode, the speed of the PMSM motor is gradually ramped up using an open loop control. The speed is ramped up linearly to a minimum value required for the sensor-less SMO observer to estimate the speed of the PMSM motor with required accuracy.

Close Loop Control: In this mode, the speed can be regulated using closed loop SMO based sensor-less FOC algorithm.

  1. Stop: In this state, the PWM channels are disabled thereby stopping the motor. The periodic ADC trigger and conversion interrupt is disabled.

Software Configurations

  1. The PWM controller frequency ( in Hz ) can be configured by setting the following macro in userparams.h file. This frequency should be same as the frequency configured in the PWM peripheral in the MHC.
Macro Description
PWM_FREQUENCY Current controller and PWM frequency in Hz
   
  1. Setting motor specific -parameter: Set the motor following motor parameters in userparams.h file.
Macro Description Unit
MOTOR_PER_PHASE_RESISTANCE Motor per phase resistance ohm
MOTOR_PER_PHASE_INDUCTANCE Motor per phase inductance H
MOTOR_BACK_EMF_CONSTANT_Vpeak_Line_Line_KRPM_MECH Back EMF constant Vpk(L-L)/KRPM
NOPOLESPAIRS Number of pole pairs  
NOMINAL_SPEED_RPM Rated mechanical speed of the motor RPM
     
  1. Setting PI Controller parameters: Depending on the type of motor used, and the corresponding application PI controller parameters should to be updated in userparams.h file.

Parameters for speed Control loop:

Macro Description
SPEEDCNTR_PTERM Proportional gain of speed control loop
SPEEDCNTR_ITERM Integral gain of speed control loop
SPEEDCNTR_CTERM Anti-windup term of speed control loop
SPEEDCNTR_OUTMAX Maximum controller output of speed control loop
   

Parameters for Id current loop:

Macro Description
D_CURRCNTR_PTERM Proportional gain of Id current control loop
D_CURRCNTR_ITERM Integral gain of Id current control loop
D_CURRCNTR_CTERM Anti-windup term of Id current control loop
D_CURRCNTR_OUTMAX Maximum controller output of Id current control loop
   

Parameters for Iq current loop:

Macro Description
Q_CURRCNTR_PTERM Proportional gain of Iq current control loop
Q_CURRCNTR_ITERM Integral gain of Iq current control loop
Q_CURRCNTR_CTERM Anti-windup term of Iq current control loop
Q_CURRCNTR_OUTMAX Maximum controller output of Iq current control loop
   
  1. Debugging Features: Open loop functioning is useful for debugging when using new motor. This feature can be enabled by setting the following macros in userparams.h file.

Parameters for Iq current loop:

Macro Description
OPEN_LOOP_FUNCTIONING Open loop enable switch (0 - Disable, 1 - Enable )
Q_CURRENT_REF_OPENLOOP Startup current in open loop
   

Development Kits

MCLV2 with ATSAME70 PIM

Downloading and building the application

To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions.

Path of the application within the repository is apps/pmsm_foc_smo_sam_e70 .

To build the application, refer to the following table and open the project using its IDE.

Project Name Description Hardware Setup Guide
mclv2_sam_e70_pim.X MPLABX project for MCLV2 board with ATSAME70 PIM Hardware Setup and Running The Application on MCLV2 with ATSAME70 PIM
     


Copyright © 2020 Microchip Technology.

diff --git a/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/block_diagram.png b/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/block_diagram.png deleted file mode 100644 index eb286e8..0000000 Binary files a/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/block_diagram.png and /dev/null differ diff --git a/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_block_diagram.png b/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_block_diagram.png deleted file mode 100644 index 9219b57..0000000 Binary files a/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_block_diagram.png and /dev/null differ diff --git a/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_classification.png b/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_classification.png deleted file mode 100644 index c6782a5..0000000 Binary files a/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_classification.png and /dev/null differ diff --git a/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_isr_tasks.png b/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_isr_tasks.png deleted file mode 100644 index cac5d47..0000000 Binary files a/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_isr_tasks.png and /dev/null differ diff --git a/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_pwm_freq_setting.png b/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_pwm_freq_setting.png deleted file mode 100644 index bd3c9d3..0000000 Binary files a/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_pwm_freq_setting.png and /dev/null differ diff --git a/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_state_machine.png b/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_state_machine.png deleted file mode 100644 index ca376a6..0000000 Binary files a/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/pfc_state_machine.png and /dev/null differ diff --git a/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/project_graph.png b/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/project_graph.png deleted file mode 100644 index cb8ca1e..0000000 Binary files a/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/images/project_graph.png and /dev/null differ diff --git a/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html b/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html deleted file mode 100644 index 89fb351..0000000 --- a/docs/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html +++ /dev/null @@ -1 +0,0 @@ - PFC with PMSM FOC using PLL Estimator | Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family Link Search Menu Expand Document

MCHP

Power Factor Correction with PMSM FOC using PLL Estimator

This example application shows how to control the Permanent Magnet Synchronous Motor (PMSM) with PLL Estimator based Field Oriented Control (FOC) along with Power Factor Correction (PFC)on a SAME70 Micro-controller.

Description

Power Factor Correction ( PFC ) shapes the input current drawn from the AC mains to be in synchronization with the input AC voltage. This project uses Boost-Converter topology to carry out the Power Factor Correction. Permanent Magnet Synchronous Motor (PMSM) is controlled using Field Oriented Control (FOC). Rotor position and speed is determined using PLL estimator technique. Motor start/stop operation is controlled by the switch and motor speed can be changed by the on-board potentiometer. Waveforms and variables can be monitored runtime using X2CScope.

Key features enabled in this project are:

  • Power factor correction
  • Dual shunt current measurement
  • Speed control loop
  • Field weakening

MCC Project Configurations

MHC Project Graph

  • AFEC Peripheral:

The AFEC0 peripheral is used to measure analog quantities for motor control operation. Four channels are used to measure the Phase Current A, the Phase Current B, the DC Bus Voltage and the Potentiometer. Conversion is triggered at the PWM (zero match + offset of the switch delay)

The AFEC1 peripheral is used to measure analog quantities for power factor correction. Three channels are used to measure the input rectified voltage, input rectified current, and the output DC link inverter voltage. Conversion is triggered at the PWM period match

  • PWM Peripheral:

The PWM0 peripheral is used to generated three phase synchronous PWM waveforms. Fault functionality is also enabled to switch off the output waveforms asynchronously

The PWM1 peripheral is used to generate the PWM waveform for the boost converter switch for current waveform shaping

  • UART Peripheral:

The UART is used for X2CScope communication to observe graphs and variable values in run time

Control Algorithm

The Power Factor Correction is a technique of increasing the power factor of the input AC power supply, thereby providing following advantages:

  • Low line harmonics.
  • Reduced input current.
  • Reduced kVA requirement.
  • Improved line efficiency, and improved electromagnetic compatibility.

The Power Factor Correction techniques can be classified as - Passive and Active. The Passive Power Factor Correction uses passive components, while the active Power Factor Correction Technique uses power electronic switches to carry out Power Factor Correction. Following figure shows the various Power Factor Correction techniques classification:

pfc classification

This project uses Boost topology for Power Factor Correction. A boost converter is placed between the rectifier and output inverter stage to synchronize input AC current to the input AC voltage. For details, refer to application note AN1106. The block diagram of a typical boost converter topology based Power Factor Correction is shown below.

Block Diagram:

pfc_block_diagram

The power factor correction is implemented in following steps:

  1. Measure the rectifier stage rectified AC voltage and rectified AC current, and output inverter stage DC bus voltage via high speed ADC channels.
  2. Regulate the DC bus voltage using the Voltage Error Compensator.
  3. Determine the reference input for Current Error Compensator based on the output of Voltage Error Compensator and Voltage Feed-Forward Compensator.
  4. Track the rectified reference AC current using a Current Error Compensator.

Current Error Compensator:

The inner loop in the control block forms the current loop. The input to the current loop is the reference current signal IACREF and the actual inductor current IAC. The current error compensator is designed to produce a control output such that the inductor current IAC follows the reference current IACREF. The current loop should run at a much faster rate when compared to the voltage loop. The bandwidth of the current compensator should be higher for correctly tracking the semi-sinusoidal waveform at twice the input frequency. The current controller GI produces a duty cycle value after appropriate scaling to drive the gate of the boost converter MOSFET.

Voltage Error Compensator:

The outer loop in the control block forms the voltage loop. The input to the voltage loop is the reference DC voltage VDCREF and the actual sensed output DC voltage VDC. The voltage error compensator is designed to produce a control output such that the DC bus voltage VDC remains constant at the reference value VDCREF regardless of variations in the load current IO and the supply voltage VAC. The voltage controller GV produces a control signal, which determines the reference current IACREF for the inner current loop. The output voltage is controlled by the voltage error compensator. When the input voltage increases, the product of VAC and VPI increases, and thereby increasing the programming signal. When this signal is divided by the square of the average voltage signal, it results in the current reference signal being reduced proportionally. The outcome is that the current is reduced proportionally to the increase in voltage, thereby keeping the input power constant. This ensures that the reference control output IACREF from the voltage compensator is maximum such that the rated output power is delivered at minimum input voltage.

Voltage Feed-Forward Compensator:

If the voltage decreases, the product (VAC · VPI), which determines IACREF, also proportionally decreases. However, to maintain a constant output power at reduced input voltage, the term IACREF should proportionally increase. The purpose of having an input voltage feed-forward, is to maintain the output power constant as determined by the load regardless of variations in the input line voltage. This compensator implemented digitally by calculating the average value of the input line voltage, squaring this average value and using the result as a divider for the input reference current, which is fed to the current error compensator.

FOC with PLL estimator :

This estimator uses PLL structure to estimate the rotor position and thus speed. Its operating principle is based on the fact that the d-component of the Back Electromotive Force (BEMF) must be equal to zero at a steady state functioning mode. It can not estimate the rotor angle at lower rotor speeds because of very low back EMF. So, open loop startup is used till required minimum speed is achieved.

The following block diagram shows the software realization of the FOC algorithm.

block_diagram

PFC Software Design

The following section describes the software flow diagram for the power factor correction application project. The power factor correction algorithm in this example project is realized by following state machines.

state machine

  1. PFC Init State:
    In this state following tasks are performed: Initialization and configuration of NVIC, AFEC, PWM peripherals for generation of periodic ADC triggers and ADC conversion interrupt. Calibration of input rectified AC current sense amplifiers. Initialization of reference DC voltage and reference rectified AC current PI controllers used for Power Factor Correction.

  2. PFC Start state:
    In this state following tasks are performed: Start PWM peripherals timer to trigger ADC conversion interrupt.

  3. PFC Running State:
    In this state, the power factor correction ISR is executed.

run state machine

  1. PFC Stop State:
    In this state, the power factor correction is disabled.

Software Configuration:

The following section describes user specific parameters used the the project.

  1. Setting the PFC boost converter stage frequency: The boost converter stage PWM frequency ( in Hz ) can be configured by setting the following macro in userparams.h file. This period timer ticks should be configured properly for PWM peripheral in the MHC to get the desired frequency as shown below:

freq setting

Macro Description
PFC_PWM_FREQUENCY Boost converter stage PWM frequency
   
  1. Setting PI Controller parameters of Boost Converter Controller:

The voltage and current controllers used in the PFC algorithm has to be tuned to get the optimal control.

Parameters for reference DC bus voltage PI Controller:

Macro Description
PFC_VOLTAGE_PTERM Proportional gain of voltage control loop
PFC_VOLTAGE_ITERM Integral gain of voltage control loop
PFC_VOLTAGE_CTERM Anti-windup term of voltage control loop
PFC_VOLTAGE_OUTMAX Maximum controller output of voltage control loop
   

Parameters for reference rectified AC current PI Controller:

Macro Description
PFC_CURRCNTR_PTERM Proportional gain of input current control loop
PFC_CURRCNTR_ITERM Integral gain of input current control loop
PFC_CURRCNTR_CTERM Anti-windup term of input current control loop
PFC_CURRCNTR_OUTMAX Maximum controller output of input current control loop
   

Development Kits

MCHV3 with ATSAME70 PIM

Downloading and building the application

To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions.

Path of the application within the repository is apps/pmsm_pfc_foc_pll_estimator_sam_e70 .

To build the application, refer to the following table and open the project using its IDE.

Project Name Description Hardware Setup Guide
mchv3_sam_e70_pim.X MPLABX project for MCHV3 board with ATSAME70 PIM Hardware Setup and Running The Application on MCHV3 with ATSAME70 PIM
     


Copyright © 2020 Microchip Technology.

diff --git a/docs/assets/css/just-the-docs-dark.css b/docs/assets/css/just-the-docs-dark.css deleted file mode 100644 index 9480137..0000000 --- a/docs/assets/css/just-the-docs-dark.css +++ /dev/null @@ -1,2250 +0,0 @@ -@charset "UTF-8"; -/*! normalize.scss v0.1.0 | MIT License | based on git.io/normalize */ -/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */ -html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } - -/** Remove default margin. */ -body { margin: 0; } - -/* HTML5 display definitions ========================================================================== */ -/** Correct `block` display not defined for any HTML5 element in IE 8/9. Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. Correct `block` display not defined for `main` in IE 11. */ -article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; } - -/** 1. Correct `inline-block` display not defined in IE 8/9. 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. */ -audio, canvas, progress, video { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ } - -/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */ -audio:not([controls]) { display: none; height: 0; } - -/** Address `[hidden]` styling not present in IE 8/9/10. Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. */ -[hidden], template { display: none; } - -/* Links ========================================================================== */ -/** Remove the gray background color from active links in IE 10. */ -a { background-color: transparent; } - -/** Improve readability when focused and also mouse hovered in all browsers. */ -a:active, a:hover { outline: 0; } - -/* Text-level semantics ========================================================================== */ -/** Address styling not present in IE 8/9/10/11, Safari, and Chrome. */ -abbr[title] { border-bottom: 1px dotted; } - -/** Address style set to `bolder` in Firefox 4+, Safari, and Chrome. */ -b, strong { font-weight: bold; } - -/** Address styling not present in Safari and Chrome. */ -dfn { font-style: italic; } - -/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari, and Chrome. */ -h1 { font-size: 2em; margin: 0.67em 0; } - -/** Address styling not present in IE 8/9. */ -mark { background: #ff0; color: #000; } - -/** Address inconsistent and variable font size in all browsers. */ -small { font-size: 80%; } - -/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */ -sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } - -sup { top: -0.5em; } - -sub { bottom: -0.25em; } - -/* Embedded content ========================================================================== */ -/** Remove border when inside `a` element in IE 8/9/10. */ -img { border: 0; } - -/** Correct overflow not hidden in IE 9/10/11. */ -svg:not(:root) { overflow: hidden; } - -/* Grouping content ========================================================================== */ -/** Address margin not present in IE 8/9 and Safari. */ -figure { margin: 1em 40px; } - -/** Address differences between Firefox and other browsers. */ -hr { -moz-box-sizing: content-box; box-sizing: content-box; height: 0; } - -/** Contain overflow in all browsers. */ -pre { overflow: auto; } - -/** Address odd `em`-unit font size rendering in all browsers. */ -code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; } - -/* Forms ========================================================================== */ -/** Known limitation: by default, Chrome and Safari on OS X allow very limited styling of `select`, unless a `border` property is set. */ -/** 1. Correct color not being inherited. Known issue: affects color of disabled elements. 2. Correct font properties not being inherited. 3. Address margins set differently in Firefox 4+, Safari, and Chrome. */ -button, input, optgroup, select, textarea { color: inherit; /* 1 */ font: inherit; /* 2 */ margin: 0; /* 3 */ } - -/** Address `overflow` set to `hidden` in IE 8/9/10/11. */ -button { overflow: visible; } - -/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. Correct `select` style inheritance in Firefox. */ -button, select { text-transform: none; } - -/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */ -button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ } - -/** Re-set default cursor for disabled elements. */ -button[disabled], html input[disabled] { cursor: default; } - -/** Remove inner padding and border in Firefox 4+. */ -button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } - -/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */ -input { line-height: normal; } - -/** It's recommended that you don't attempt to style these elements. Firefox's implementation doesn't respect box-sizing, padding, or width. 1. Address box sizing set to `content-box` in IE 8/9/10. 2. Remove excess padding in IE 8/9/10. */ -input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } - -/** Fix the cursor style for Chrome's increment/decrement buttons. For certain `font-size` values of the `input`, it causes the cursor style of the decrement button to change from `default` to `text`. */ -input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; } - -/** 1. Address `appearance` set to `searchfield` in Safari and Chrome. 2. Address `box-sizing` set to `border-box` in Safari and Chrome (include `-moz` to future-proof). */ -input[type="search"] { -webkit-appearance: textfield; /* 1 */ -moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */ box-sizing: content-box; } - -/** Remove inner padding and search cancel button in Safari and Chrome on OS X. Safari (but not Chrome) clips the cancel button when the search input has padding (and `textfield` appearance). */ -input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } - -/** Define consistent border, margin, and padding. */ -fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } - -/** 1. Correct `color` not being inherited in IE 8/9/10/11. 2. Remove padding so people aren't caught out if they zero out fieldsets. */ -legend { border: 0; /* 1 */ padding: 0; /* 2 */ } - -/** Remove default vertical scrollbar in IE 8/9/10/11. */ -textarea { overflow: auto; } - -/** Don't inherit the `font-weight` (applied by a rule above). NOTE: the default cannot safely be changed in Chrome and Safari on OS X. */ -optgroup { font-weight: bold; } - -/* Tables ========================================================================== */ -/** Remove most spacing between table cells. */ -table { border-collapse: collapse; border-spacing: 0; } - -td, th { padding: 0; } - -* { box-sizing: border-box; } - -::selection { color: #fff; background: #2c84fa; } - -html { font-size: 15px !important; scroll-behavior: smooth; } -@media (min-width: 31.25rem) { html { font-size: 16px !important; } } - -body { font-family: -apple-system, BlinkMacSystemFont, "helvetica neue", helvetica, roboto, noto, "segoe ui", arial, sans-serif; font-size: inherit; line-height: 1.4; color: #e6e1e8; background-color: #27262b; } - -ol, ul, dl, pre, address, blockquote, table, div, hr, form, fieldset, noscript .table-wrapper { margin-top: 0; } - -h1, h2, h3, h4, h5, h6 { margin-top: 0; margin-bottom: 1em; font-weight: 500; line-height: 1.25; color: #f5f6fa; } - -p { margin-top: 1em; margin-bottom: 1em; } - -a { color: #2c84fa; text-decoration: none; } - -a:not([class]) { text-decoration: none; background-image: linear-gradient(#44434d 0%, #44434d 100%); background-repeat: repeat-x; background-position: 0 100%; background-size: 1px 1px; } -a:not([class]):hover { background-image: linear-gradient(rgba(44, 132, 250, 0.45) 0%, rgba(44, 132, 250, 0.45) 100%); background-size: 1px 1px; } - -code { font-family: "SFMono-Regular", Menlo, Consolas, Monospace; font-size: 0.75em; line-height: 1.4; } - -figure, pre { margin: 0; } - -li { margin: 0.25em 0; } - -img { max-width: 100%; height: auto; } - -hr { height: 1px; padding: 0; margin: 2rem 0; background-color: #44434d; border: 0; } - -.side-bar { z-index: 0; display: flex; flex-wrap: wrap; background-color: #27262b; } -@media (min-width: 50rem) { .side-bar { flex-wrap: nowrap; position: fixed; width: 248px; height: 100%; flex-direction: column; border-right: 1px solid #44434d; align-items: flex-end; } } -@media (min-width: 66.5rem) { .side-bar { width: calc((100% - 1064px) / 2 + 264px); min-width: 264px; } } - -@media (min-width: 50rem) { .main { position: relative; max-width: 800px; margin-left: 248px; } } -@media (min-width: 66.5rem) { .main { margin-left: calc( (100% - 1064px) / 2 + 264px ); } } - -.main-content-wrap { padding-right: 1rem; padding-left: 1rem; padding-top: 1rem; padding-bottom: 1rem; } -@media (min-width: 50rem) { .main-content-wrap { padding-right: 2rem; padding-left: 2rem; } } -@media (min-width: 50rem) { .main-content-wrap { padding-top: 2rem; padding-bottom: 2rem; } } - -.main-header { z-index: 0; display: none; background-color: #27262b; } -@media (min-width: 50rem) { .main-header { display: flex; justify-content: space-between; height: 60px; background-color: #27262b; border-bottom: 1px solid #44434d; } } -.main-header.nav-open { display: block; } -@media (min-width: 50rem) { .main-header.nav-open { display: flex; } } - -.site-nav, .site-header, .site-footer { width: 100%; } -@media (min-width: 66.5rem) { .site-nav, .site-header, .site-footer { width: 264px; } } - -.site-nav { display: none; } -.site-nav.nav-open { display: block; } -@media (min-width: 50rem) { .site-nav { display: block; padding-top: 3rem; padding-bottom: 1rem; overflow-y: auto; flex: 1 1 auto; } } - -.site-header { display: flex; min-height: 60px; align-items: center; } -@media (min-width: 50rem) { .site-header { height: 60px; max-height: 60px; border-bottom: 1px solid #44434d; } } - -.site-title { padding-right: 1rem; padding-left: 1rem; flex-grow: 1; display: flex; height: 100%; align-items: center; padding-top: 0.75rem; padding-bottom: 0.75rem; color: #f5f6fa; font-size: 18px !important; } -@media (min-width: 50rem) { .site-title { padding-right: 2rem; padding-left: 2rem; } } -@media (min-width: 31.25rem) { .site-title { font-size: 24px !important; line-height: 1.25; } } -@media (min-width: 50rem) { .site-title { padding-top: 0.5rem; padding-bottom: 0.5rem; } } - -.site-logo { width: 100%; height: 100%; background-image: url("../../assets/images/vendor/microchip_mplab_harmony_logo_150_transparent.png"); background-repeat: no-repeat; background-position: left center; background-size: contain; } - -.site-button { display: flex; height: 100%; padding: 1rem; align-items: center; } - -@media (min-width: 50rem) { .site-header .site-button { display: none; } } -.site-title:hover { background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 80%, rgba(32, 31, 35, 0) 100%); } - -.site-button:hover { background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 100%); } - -body { position: relative; padding-bottom: 4rem; overflow-y: scroll; } -@media (min-width: 50rem) { body { position: static; padding-bottom: 0; } } - -.site-footer { padding-right: 1rem; padding-left: 1rem; position: absolute; bottom: 0; left: 0; padding-top: 1rem; padding-bottom: 1rem; color: #959396; font-size: 11px !important; } -@media (min-width: 50rem) { .site-footer { padding-right: 2rem; padding-left: 2rem; } } -@media (min-width: 31.25rem) { .site-footer { font-size: 12px !important; } } -@media (min-width: 50rem) { .site-footer { position: static; justify-self: end; } } - -.icon { width: 1.5rem; height: 1.5rem; color: #2c84fa; } - -.main-content { line-height: 1.6; } -.main-content ol, .main-content ul, .main-content dl, .main-content pre, .main-content address, .main-content blockquote, .main-content .table-wrapper { margin-top: 0.5em; } -.main-content a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } -.main-content ul, .main-content ol { padding-left: 1.5em; } -.main-content li .highlight { margin-top: 0.25rem; } -.main-content ol { list-style-type: none; counter-reset: step-counter; } -.main-content ol > li { position: relative; } -.main-content ol > li::before { position: absolute; top: 0.2em; left: -1.6em; color: #959396; content: counter(step-counter); counter-increment: step-counter; font-size: 12px !important; } -@media (min-width: 31.25rem) { .main-content ol > li::before { font-size: 14px !important; } } -@media (min-width: 31.25rem) { .main-content ol > li::before { top: 0.11em; } } -.main-content ol > li ol { counter-reset: sub-counter; } -.main-content ol > li ol li::before { content: counter(sub-counter,lower-alpha); counter-increment: sub-counter; } -.main-content ul { list-style: none; } -.main-content ul > li::before { position: absolute; margin-left: -1.4em; color: #959396; content: "•"; } -.main-content .task-list { padding-left: 0; } -.main-content .task-list-item { display: flex; align-items: center; } -.main-content .task-list-item::before { content: ""; } -.main-content .task-list-item-checkbox { margin-right: 0.6em; } -.main-content hr + * { margin-top: 0; } -.main-content h1:first-of-type { margin-top: 0.5em; } -.main-content dl { display: grid; grid-template-columns: max-content 1fr; } -.main-content dt, .main-content dd { margin: 0.25em 0; } -.main-content dt { text-align: right; } -.main-content dt::after { content: ":"; } -.main-content dd { margin-left: 1em; font-weight: 500; } -.main-content .anchor-heading { position: absolute; right: -1rem; width: 1.5rem; height: 100%; padding-right: 0.25rem; padding-left: 0.25rem; overflow: visible; } -@media (min-width: 50rem) { .main-content .anchor-heading { right: auto; left: -1.5rem; } } -.main-content .anchor-heading svg { display: inline-block; width: 100%; height: 100%; color: #2c84fa; visibility: hidden; } -.main-content .anchor-heading:hover svg, .main-content h1:hover > .anchor-heading svg, .main-content h2:hover > .anchor-heading svg, .main-content h3:hover > .anchor-heading svg, .main-content h4:hover > .anchor-heading svg, .main-content h5:hover > .anchor-heading svg, .main-content h6:hover > .anchor-heading svg { visibility: visible; } -.main-content summary { cursor: pointer; } -.main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6 { position: relative; margin-top: 1.5em; margin-bottom: 0.25em; } -.main-content h1:first-child, .main-content h2:first-child, .main-content h3:first-child, .main-content h4:first-child, .main-content h5:first-child, .main-content h6:first-child { margin-top: 0.5rem; } -.main-content h1 + table, .main-content h1 + .table-wrapper, .main-content h1 + .code-example, .main-content h1 + .highlighter-rouge, .main-content h2 + table, .main-content h2 + .table-wrapper, .main-content h2 + .code-example, .main-content h2 + .highlighter-rouge, .main-content h3 + table, .main-content h3 + .table-wrapper, .main-content h3 + .code-example, .main-content h3 + .highlighter-rouge, .main-content h4 + table, .main-content h4 + .table-wrapper, .main-content h4 + .code-example, .main-content h4 + .highlighter-rouge, .main-content h5 + table, .main-content h5 + .table-wrapper, .main-content h5 + .code-example, .main-content h5 + .highlighter-rouge, .main-content h6 + table, .main-content h6 + .table-wrapper, .main-content h6 + .code-example, .main-content h6 + .highlighter-rouge { margin-top: 1em; } -.main-content h1 + p, .main-content h2 + p, .main-content h3 + p, .main-content h4 + p, .main-content h5 + p, .main-content h6 + p { margin-top: 0; } - -.nav-list { padding: 0; margin-top: 0; margin-bottom: 0; list-style: none; } -.nav-list .nav-list-item { font-size: 15px !important; position: relative; margin: 0; } -@media (min-width: 31.25rem) { .nav-list .nav-list-item { font-size: 16px !important; } } -@media (min-width: 50rem) { .nav-list .nav-list-item { font-size: 12px !important; } } -@media (min-width: 50rem) and (min-width: 31.25rem) { .nav-list .nav-list-item { font-size: 14px !important; } } - -.nav-list .nav-list-item .nav-list-link { display: block; min-height: 3rem; padding-top: 0.25rem; padding-bottom: 0.25rem; line-height: 2.5rem; padding-right: 3rem; padding-left: 1rem; } -@media (min-width: 50rem) { .nav-list .nav-list-item .nav-list-link { min-height: 2rem; line-height: 1.5rem; padding-right: 2rem; padding-left: 2rem; } } -.nav-list .nav-list-item .nav-list-link.active { font-weight: 600; text-decoration: none; } -.nav-list .nav-list-item .nav-list-link:hover, .nav-list .nav-list-item .nav-list-link.active { background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 80%, rgba(32, 31, 35, 0) 100%); } -.nav-list .nav-list-item .nav-list-expander { position: absolute; right: 0; width: 3rem; height: 3rem; padding-top: 0.75rem; padding-right: 0.75rem; padding-bottom: 0.75rem; padding-left: 0.75rem; color: #2c84fa; } -@media (min-width: 50rem) { .nav-list .nav-list-item .nav-list-expander { width: 2rem; height: 2rem; padding-top: 0.5rem; padding-right: 0.5rem; padding-bottom: 0.5rem; padding-left: 0.5rem; } } -.nav-list .nav-list-item .nav-list-expander:hover { background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 100%); } -.nav-list .nav-list-item .nav-list-expander svg { transform: rotate(90deg); } -.nav-list .nav-list-item > .nav-list { display: none; padding-left: 0.75rem; list-style: none; } -.nav-list .nav-list-item > .nav-list .nav-list-item { position: relative; } -.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-link { color: #959396; } -.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-expander { color: #959396; } -.nav-list .nav-list-item.active > .nav-list-expander svg { transform: rotate(-90deg); } -.nav-list .nav-list-item.active > .nav-list { display: block; } - -.aux-nav { height: 100%; overflow-x: auto; font-size: 11px !important; } -@media (min-width: 31.25rem) { .aux-nav { font-size: 12px !important; } } -.aux-nav .aux-nav-list { display: flex; height: 100%; padding: 0; margin: 0; list-style: none; } -.aux-nav .aux-nav-list-item { display: inline-block; height: 100%; padding: 0; margin: 0; } -@media (min-width: 50rem) { .aux-nav { padding-right: 1rem; } } - -@media (min-width: 50rem) { .breadcrumb-nav { margin-top: -1rem; } } - -.breadcrumb-nav-list { padding-left: 0; margin-bottom: 0.75rem; list-style: none; } - -.breadcrumb-nav-list-item { display: table-cell; font-size: 11px !important; } -@media (min-width: 31.25rem) { .breadcrumb-nav-list-item { font-size: 12px !important; } } -.breadcrumb-nav-list-item::before { display: none; } -.breadcrumb-nav-list-item::after { display: inline-block; margin-right: 0.5rem; margin-left: 0.5rem; color: #959396; content: "/"; } -.breadcrumb-nav-list-item:last-child::after { content: ""; } - -h1, .text-alpha { font-size: 32px !important; line-height: 1.25; font-weight: 300; } -@media (min-width: 31.25rem) { h1, .text-alpha { font-size: 36px !important; } } - -h2, .text-beta { font-size: 18px !important; } -@media (min-width: 31.25rem) { h2, .text-beta { font-size: 24px !important; line-height: 1.25; } } - -h3, .text-gamma { font-size: 16px !important; } -@media (min-width: 31.25rem) { h3, .text-gamma { font-size: 18px !important; } } - -h4, .text-delta { font-size: 11px !important; font-weight: 400; text-transform: uppercase; letter-spacing: 0.1em; } -@media (min-width: 31.25rem) { h4, .text-delta { font-size: 12px !important; } } - -h5, .text-epsilon { font-size: 12px !important; color: #44434d; } -@media (min-width: 31.25rem) { h5, .text-epsilon { font-size: 14px !important; } } - -h6, .text-zeta { font-size: 11px !important; color: #44434d; } -@media (min-width: 31.25rem) { h6, .text-zeta { font-size: 12px !important; } } - -.text-small { font-size: 11px !important; } -@media (min-width: 31.25rem) { .text-small { font-size: 12px !important; } } - -.text-mono { font-family: "SFMono-Regular", Menlo, Consolas, Monospace !important; } - -.text-left { text-align: left !important; } - -.text-center { text-align: center !important; } - -.text-right { text-align: right !important; } - -.label, .label-blue { display: inline-block; padding-top: 0.16em; padding-right: 0.56em; padding-bottom: 0.16em; padding-left: 0.56em; margin-right: 0.5rem; margin-left: 0.5rem; color: #fff; text-transform: uppercase; vertical-align: middle; background-color: #2869e6; font-size: 11px !important; border-radius: 12px; } -@media (min-width: 31.25rem) { .label, .label-blue { font-size: 12px !important; } } - -.label-green { background-color: #009c7b; } - -.label-purple { background-color: #5e41d0; } - -.label-red { background-color: #e94c4c; } - -.label-yellow { color: #44434d; background-color: #f7d12e; } - -.btn { display: inline-block; box-sizing: border-box; padding-top: 0.3em; padding-right: 1em; padding-bottom: 0.3em; padding-left: 1em; margin: 0; font-family: inherit; font-size: inherit; font-weight: 500; line-height: 1.5; color: #2c84fa; text-decoration: none; vertical-align: baseline; cursor: pointer; background-color: #302d36; border-width: 0; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); appearance: none; } -.btn:focus { text-decoration: none; outline: none; box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); } -.btn:focus:hover, .btn.selected:focus { box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); } -.btn:hover, .btn.zeroclipboard-is-hover { color: #227efa; } -.btn:hover, .btn:active, .btn.zeroclipboard-is-hover, .btn.zeroclipboard-is-active { text-decoration: none; background-color: #2e2b33; } -.btn:active, .btn.selected, .btn.zeroclipboard-is-active { background-color: #29262e; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn.selected:hover { background-color: #cfcfcf; } -.btn:disabled, .btn:disabled:hover, .btn.disabled, .btn.disabled:hover { color: rgba(102, 102, 102, 0.5); cursor: default; background-color: rgba(229, 229, 229, 0.5); background-image: none; box-shadow: none; } - -.btn-outline { color: #2c84fa; background: transparent; box-shadow: inset 0 0 0 2px #e6e1e8; } -.btn-outline:hover, .btn-outline:active, .btn-outline.zeroclipboard-is-hover, .btn-outline.zeroclipboard-is-active { color: #1878fa; text-decoration: none; background-color: transparent; box-shadow: inset 0 0 0 3px #e6e1e8; } -.btn-outline:focus { text-decoration: none; outline: none; box-shadow: inset 0 0 0 2px #5c5962, 0 0 0 3px rgba(0, 0, 255, 0.25); } -.btn-outline:focus:hover, .btn-outline.selected:focus { box-shadow: inset 0 0 0 2px #5c5962; } - -.btn-primary { color: #fff; background-color: #2448a7; background-image: linear-gradient(#2b55c4, #2448a7); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-primary:hover, .btn-primary.zeroclipboard-is-hover { color: #fff; background-color: #22459e; background-image: linear-gradient(#2850b7, #22459e); } -.btn-primary:active, .btn-primary.selected, .btn-primary.zeroclipboard-is-active { background-color: #21439a; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-primary.selected:hover { background-color: #1d3a85; } - -.btn-purple { color: #fff; background-color: #5739ce; background-image: linear-gradient(#6f55d5, #5739ce); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-purple:hover, .btn-purple.zeroclipboard-is-hover { color: #fff; background-color: #5132cb; background-image: linear-gradient(#6549d2, #5132cb); } -.btn-purple:active, .btn-purple.selected, .btn-purple.zeroclipboard-is-active { background-color: #4f31c6; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-purple.selected:hover { background-color: #472cb2; } - -.btn-blue { color: #fff; background-color: #227efa; background-image: linear-gradient(#4593fb, #227efa); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-blue:hover, .btn-blue.zeroclipboard-is-hover { color: #fff; background-color: #1878fa; background-image: linear-gradient(#368afa, #1878fa); } -.btn-blue:active, .btn-blue.selected, .btn-blue.zeroclipboard-is-active { background-color: #1375f9; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-blue.selected:hover { background-color: #0669ed; } - -.btn-green { color: #fff; background-color: #10ac7d; background-image: linear-gradient(#13cc95, #10ac7d); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-green:hover, .btn-green.zeroclipboard-is-hover { color: #fff; background-color: #0fa276; background-image: linear-gradient(#12be8b, #0fa276); } -.btn-green:active, .btn-green.selected, .btn-green.zeroclipboard-is-active { background-color: #0f9e73; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-green.selected:hover { background-color: #0d8662; } - -.search { position: relative; z-index: 2; flex-grow: 1; height: 4rem; padding: 0.5rem; transition: padding linear 200ms; } -@media (min-width: 50rem) { .search { position: relative !important; width: auto !important; height: 100% !important; padding: 0; transition: none; } } - -.search-input-wrap { position: relative; z-index: 1; height: 3rem; overflow: hidden; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); transition: height linear 200ms; } -@media (min-width: 50rem) { .search-input-wrap { position: absolute; width: 100%; max-width: 536px; height: 100% !important; border-radius: 0; box-shadow: none; transition: width ease 400ms; } } - -.search-input { position: absolute; width: 100%; height: 100%; padding-top: 0.5rem; padding-right: 1rem; padding-bottom: 0.5rem; padding-left: 2.5rem; font-size: 16px; background-color: #302d36; border-top: 0; border-right: 0; border-bottom: 0; border-left: 0; border-radius: 0; } -@media (min-width: 50rem) { .search-input { padding-top: 1rem; padding-bottom: 1rem; padding-left: 3.5rem; font-size: 14px; background-color: #27262b; transition: padding-left linear 200ms; } } -.search-input:focus { outline: 0; } -.search-input:focus + .search-label .search-icon { color: #2c84fa; } - -.search-label { position: absolute; display: flex; height: 100%; padding-left: 1rem; } -@media (min-width: 50rem) { .search-label { padding-left: 2rem; transition: padding-left linear 200ms; } } -.search-label .search-icon { width: 1.2rem; height: 1.2rem; align-self: center; color: #959396; } - -.search-results { position: absolute; left: 0; display: none; width: 100%; max-height: calc(100% - 4rem); overflow-y: auto; background-color: #302d36; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } -@media (min-width: 50rem) { .search-results { top: 100%; width: 536px; max-height: calc(100vh - 200%) !important; } } - -.search-results-list { padding-left: 0; margin-bottom: 0.25rem; list-style: none; font-size: 15px !important; } -@media (min-width: 31.25rem) { .search-results-list { font-size: 16px !important; } } -@media (min-width: 50rem) { .search-results-list { font-size: 12px !important; } } -@media (min-width: 50rem) and (min-width: 31.25rem) { .search-results-list { font-size: 14px !important; } } - -.search-results-list-item { padding: 0; margin: 0; } - -.search-result { display: block; padding-top: 0.25rem; padding-right: 0.75rem; padding-bottom: 0.25rem; padding-left: 0.75rem; } -.search-result:hover, .search-result.active { background-color: #201f23; } - -.search-result-title { display: block; padding-top: 0.5rem; padding-bottom: 0.5rem; } -@media (min-width: 31.25rem) { .search-result-title { display: inline-block; width: 40%; padding-right: 0.5rem; vertical-align: top; } } - -.search-result-doc { display: flex; align-items: center; word-wrap: break-word; } -.search-result-doc.search-result-doc-parent { opacity: 0.5; font-size: 12px !important; } -@media (min-width: 31.25rem) { .search-result-doc.search-result-doc-parent { font-size: 14px !important; } } -@media (min-width: 50rem) { .search-result-doc.search-result-doc-parent { font-size: 11px !important; } } -@media (min-width: 50rem) and (min-width: 31.25rem) { .search-result-doc.search-result-doc-parent { font-size: 12px !important; } } - -.search-result-doc .search-result-icon { width: 1rem; height: 1rem; margin-right: 0.5rem; color: #2c84fa; flex-shrink: 0; } -.search-result-doc .search-result-doc-title { overflow: auto; } - -.search-result-section { margin-left: 1.5rem; word-wrap: break-word; } - -.search-result-rel-url { display: block; margin-left: 1.5rem; overflow: hidden; color: #959396; text-overflow: ellipsis; white-space: nowrap; font-size: 9px !important; } -@media (min-width: 31.25rem) { .search-result-rel-url { font-size: 10px !important; } } - -.search-result-previews { display: block; padding-top: 0.5rem; padding-bottom: 0.5rem; padding-left: 1rem; margin-left: 0.5rem; color: #959396; word-wrap: break-word; border-left: 1px solid; border-left-color: #44434d; font-size: 11px !important; } -@media (min-width: 31.25rem) { .search-result-previews { font-size: 12px !important; } } -@media (min-width: 31.25rem) { .search-result-previews { display: inline-block; width: 60%; padding-left: 0.5rem; margin-left: 0; vertical-align: top; } } - -.search-result-preview + .search-result-preview { margin-top: 0.25rem; } - -.search-result-highlight { font-weight: bold; } - -.search-no-result { padding-top: 0.5rem; padding-right: 0.75rem; padding-bottom: 0.5rem; padding-left: 0.75rem; font-size: 12px !important; } -@media (min-width: 31.25rem) { .search-no-result { font-size: 14px !important; } } - -.search-button { position: fixed; right: 1rem; bottom: 1rem; display: flex; width: 3.5rem; height: 3.5rem; background-color: #302d36; border: 1px solid rgba(44, 132, 250, 0.3); border-radius: 1.75rem; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); align-items: center; justify-content: center; } - -.search-overlay { position: fixed; top: 0; left: 0; z-index: 1; width: 0; height: 0; background-color: rgba(0, 0, 0, 0.3); opacity: 0; transition: opacity ease 400ms, width 0s 400ms, height 0s 400ms; } - -.search-active .search { position: fixed; top: 0; left: 0; width: 100%; height: 100%; padding: 0; } -.search-active .search-input-wrap { height: 4rem; border-radius: 0; } -@media (min-width: 50rem) { .search-active .search-input-wrap { width: 536px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } } -.search-active .search-input { background-color: #302d36; } -@media (min-width: 50rem) { .search-active .search-input { padding-left: 2.75rem; } } -@media (min-width: 50rem) { .search-active .search-label { padding-left: 1.25rem; } } -.search-active .search-results { display: block; } -.search-active .search-overlay { width: 100%; height: 100%; opacity: 1; transition: opacity ease 400ms, width 0s, height 0s; } -@media (min-width: 50rem) { .search-active .main { position: fixed; right: 0; left: 0; } } -.search-active .main-header { padding-top: 4rem; } -@media (min-width: 50rem) { .search-active .main-header { padding-top: 0; } } - -.table-wrapper { display: block; width: 100%; max-width: 100%; margin-bottom: 1.5rem; overflow-x: auto; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } - -table { display: table; min-width: 100%; border-collapse: separate; } - -th, td { font-size: 12px !important; min-width: 120px; padding-top: 0.5rem; padding-right: 0.75rem; padding-bottom: 0.5rem; padding-left: 0.75rem; background-color: #302d36; border-bottom: 1px solid rgba(68, 67, 77, 0.5); border-left: 1px solid #44434d; } -@media (min-width: 31.25rem) { th, td { font-size: 14px !important; } } -th:first-of-type, td:first-of-type { border-left: 0; } - -tbody tr:last-of-type th, tbody tr:last-of-type td { border-bottom: 0; } -tbody tr:last-of-type td { padding-bottom: 0.75rem; } - -thead th { border-bottom: 1px solid #44434d; } - -code { padding: 0.2em 0.15em; font-weight: 400; background-color: #302d36; border: 1px solid #44434d; border-radius: 4px; } - -pre.highlight, figure.highlight { padding: 0.75rem; margin-top: 0; margin-bottom: 0; background-color: #302d36; border-radius: 4px; -webkit-overflow-scrolling: touch; } -pre.highlight code, figure.highlight code { padding: 0; border: 0; } - -.highlighter-rouge { margin-bottom: 0.75rem; } - -.highlight .c { color: #586e75; } - -.highlight .err { color: #93a1a1; } - -.highlight .g { color: #93a1a1; } - -.highlight .k { color: #859900; } - -.highlight .l { color: #93a1a1; } - -.highlight .n { color: #93a1a1; } - -.highlight .o { color: #859900; } - -.highlight .x { color: #cb4b16; } - -.highlight .p { color: #93a1a1; } - -.highlight .cm { color: #586e75; } - -.highlight .cp { color: #859900; } - -.highlight .c1 { color: #586e75; } - -.highlight .cs { color: #859900; } - -.highlight .gd { color: #2aa198; } - -.highlight .ge { font-style: italic; color: #93a1a1; } - -.highlight .gr { color: #dc322f; } - -.highlight .gh { color: #cb4b16; } - -.highlight .gi { color: #859900; } - -.highlight .go { color: #93a1a1; } - -.highlight .gp { color: #93a1a1; } - -.highlight .gs { font-weight: bold; color: #93a1a1; } - -.highlight .gu { color: #cb4b16; } - -.highlight .gt { color: #93a1a1; } - -.highlight .kc { color: #cb4b16; } - -.highlight .kd { color: #268bd2; } - -.highlight .kn { color: #859900; } - -.highlight .kp { color: #859900; } - -.highlight .kr { color: #268bd2; } - -.highlight .kt { color: #dc322f; } - -.highlight .ld { color: #93a1a1; } - -.highlight .m { color: #2aa198; } - -.highlight .s { color: #2aa198; } - -.highlight .na { color: #555; } - -.highlight .nb { color: #b58900; } - -.highlight .nc { color: #268bd2; } - -.highlight .no { color: #cb4b16; } - -.highlight .nd { color: #268bd2; } - -.highlight .ni { color: #cb4b16; } - -.highlight .ne { color: #cb4b16; } - -.highlight .nf { color: #268bd2; } - -.highlight .nl { color: #555; } - -.highlight .nn { color: #93a1a1; } - -.highlight .nx { color: #555; } - -.highlight .py { color: #93a1a1; } - -.highlight .nt { color: #268bd2; } - -.highlight .nv { color: #268bd2; } - -.highlight .ow { color: #859900; } - -.highlight .w { color: #93a1a1; } - -.highlight .mf { color: #2aa198; } - -.highlight .mh { color: #2aa198; } - -.highlight .mi { color: #2aa198; } - -.highlight .mo { color: #2aa198; } - -.highlight .sb { color: #586e75; } - -.highlight .sc { color: #2aa198; } - -.highlight .sd { color: #93a1a1; } - -.highlight .s2 { color: #2aa198; } - -.highlight .se { color: #cb4b16; } - -.highlight .sh { color: #93a1a1; } - -.highlight .si { color: #2aa198; } - -.highlight .sx { color: #2aa198; } - -.highlight .sr { color: #dc322f; } - -.highlight .s1 { color: #2aa198; } - -.highlight .ss { color: #2aa198; } - -.highlight .bp { color: #268bd2; } - -.highlight .vc { color: #268bd2; } - -.highlight .vg { color: #268bd2; } - -.highlight .vi { color: #268bd2; } - -.highlight .il { color: #2aa198; } - -.code-example { padding: 0.75rem; margin-bottom: 0.75rem; overflow: auto; border: 1px solid #44434d; border-radius: 4px; } -.code-example + .highlighter-rouge, .code-example + figure.highlight { position: relative; margin-top: -1rem; border-right: 1px solid #44434d; border-bottom: 1px solid #44434d; border-left: 1px solid #44434d; border-top-left-radius: 0; border-top-right-radius: 0; } - -.text-grey-dk-000 { color: #959396 !important; } - -.text-grey-dk-100 { color: #5c5962 !important; } - -.text-grey-dk-200 { color: #44434d !important; } - -.text-grey-dk-250 { color: #302d36 !important; } - -.text-grey-dk-300 { color: #27262b !important; } - -.text-grey-lt-000 { color: #f5f6fa !important; } - -.text-grey-lt-100 { color: #eeebee !important; } - -.text-grey-lt-200 { color: #ecebed !important; } - -.text-grey-lt-300 { color: #e6e1e8 !important; } - -.text-blue-000 { color: #2c84fa !important; } - -.text-blue-100 { color: #2869e6 !important; } - -.text-blue-200 { color: #264caf !important; } - -.text-blue-300 { color: #183385 !important; } - -.text-green-000 { color: #41d693 !important; } - -.text-green-100 { color: #11b584 !important; } - -.text-green-200 { color: #009c7b !important; } - -.text-green-300 { color: #026e57 !important; } - -.text-purple-000 { color: #7253ed !important; } - -.text-purple-100 { color: #5e41d0 !important; } - -.text-purple-200 { color: #4e26af !important; } - -.text-purple-300 { color: #381885 !important; } - -.text-yellow-000 { color: #ffeb82 !important; } - -.text-yellow-100 { color: #fadf50 !important; } - -.text-yellow-200 { color: #f7d12e !important; } - -.text-yellow-300 { color: #e7af06 !important; } - -.text-red-000 { color: #f77e7e !important; } - -.text-red-100 { color: #f96e65 !important; } - -.text-red-200 { color: #e94c4c !important; } - -.text-red-300 { color: #dd2e2e !important; } - -.bg-grey-dk-000 { background-color: #959396 !important; } - -.bg-grey-dk-100 { background-color: #5c5962 !important; } - -.bg-grey-dk-200 { background-color: #44434d !important; } - -.bg-grey-dk-250 { background-color: #302d36 !important; } - -.bg-grey-dk-300 { background-color: #27262b !important; } - -.bg-grey-lt-000 { background-color: #f5f6fa !important; } - -.bg-grey-lt-100 { background-color: #eeebee !important; } - -.bg-grey-lt-200 { background-color: #ecebed !important; } - -.bg-grey-lt-300 { background-color: #e6e1e8 !important; } - -.bg-blue-000 { background-color: #2c84fa !important; } - -.bg-blue-100 { background-color: #2869e6 !important; } - -.bg-blue-200 { background-color: #264caf !important; } - -.bg-blue-300 { background-color: #183385 !important; } - -.bg-green-000 { background-color: #41d693 !important; } - -.bg-green-100 { background-color: #11b584 !important; } - -.bg-green-200 { background-color: #009c7b !important; } - -.bg-green-300 { background-color: #026e57 !important; } - -.bg-purple-000 { background-color: #7253ed !important; } - -.bg-purple-100 { background-color: #5e41d0 !important; } - -.bg-purple-200 { background-color: #4e26af !important; } - -.bg-purple-300 { background-color: #381885 !important; } - -.bg-yellow-000 { background-color: #ffeb82 !important; } - -.bg-yellow-100 { background-color: #fadf50 !important; } - -.bg-yellow-200 { background-color: #f7d12e !important; } - -.bg-yellow-300 { background-color: #e7af06 !important; } - -.bg-red-000 { background-color: #f77e7e !important; } - -.bg-red-100 { background-color: #f96e65 !important; } - -.bg-red-200 { background-color: #e94c4c !important; } - -.bg-red-300 { background-color: #dd2e2e !important; } - -.d-block { display: block !important; } - -.d-flex { display: flex !important; } - -.d-inline { display: inline !important; } - -.d-inline-block { display: inline-block !important; } - -.d-none { display: none !important; } - -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -.float-left { float: left !important; } - -.float-right { float: right !important; } - -.flex-justify-start { justify-content: flex-start !important; } - -.flex-justify-end { justify-content: flex-end !important; } - -.flex-justify-between { justify-content: space-between !important; } - -.flex-justify-around { justify-content: space-around !important; } - -.v-align-baseline { vertical-align: baseline !important; } - -.v-align-bottom { vertical-align: bottom !important; } - -.v-align-middle { vertical-align: middle !important; } - -.v-align-text-bottom { vertical-align: text-bottom !important; } - -.v-align-text-top { vertical-align: text-top !important; } - -.v-align-top { vertical-align: top !important; } - -.fs-1 { font-size: 9px !important; } -@media (min-width: 31.25rem) { .fs-1 { font-size: 10px !important; } } - -.fs-2 { font-size: 11px !important; } -@media (min-width: 31.25rem) { .fs-2 { font-size: 12px !important; } } - -.fs-3 { font-size: 12px !important; } -@media (min-width: 31.25rem) { .fs-3 { font-size: 14px !important; } } - -.fs-4 { font-size: 15px !important; } -@media (min-width: 31.25rem) { .fs-4 { font-size: 16px !important; } } - -.fs-5 { font-size: 16px !important; } -@media (min-width: 31.25rem) { .fs-5 { font-size: 18px !important; } } - -.fs-6 { font-size: 18px !important; } -@media (min-width: 31.25rem) { .fs-6 { font-size: 24px !important; line-height: 1.25; } } - -.fs-7 { font-size: 24px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-7 { font-size: 32px !important; } } - -.fs-8 { font-size: 32px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-8 { font-size: 36px !important; } } - -.fs-9 { font-size: 36px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-9 { font-size: 42px !important; } } - -.fs-10 { font-size: 42px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-10 { font-size: 48px !important; } } - -.fw-300 { font-weight: 300 !important; } - -.fw-400 { font-weight: 400 !important; } - -.fw-500 { font-weight: 500 !important; } - -.fw-700 { font-weight: 700 !important; } - -.lh-0 { line-height: 0 !important; } - -.lh-default { line-height: 1.4; } - -.lh-tight { line-height: 1.25; } - -.ls-5 { letter-spacing: 0.05em !important; } - -.ls-10 { letter-spacing: 0.1em !important; } - -.ls-0 { letter-spacing: 0 !important; } - -.text-uppercase { text-transform: uppercase !important; } - -.list-style-none { padding: 0 !important; margin: 0 !important; list-style: none !important; } -.list-style-none li::before { display: none !important; } - -.mx-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-0 { margin: 0 !important; } - -.mt-0 { margin-top: 0 !important; } - -.mr-0 { margin-right: 0 !important; } - -.mb-0 { margin-bottom: 0 !important; } - -.ml-0 { margin-left: 0 !important; } - -.mx-0 { margin-right: 0 !important; margin-left: 0 !important; } - -.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - -.mxn-0 { margin-right: -0 !important; margin-left: -0 !important; } - -.mx-0-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-1 { margin: 0.25rem !important; } - -.mt-1 { margin-top: 0.25rem !important; } - -.mr-1 { margin-right: 0.25rem !important; } - -.mb-1 { margin-bottom: 0.25rem !important; } - -.ml-1 { margin-left: 0.25rem !important; } - -.mx-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - -.my-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - -.mxn-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } - -.mx-1-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-2 { margin: 0.5rem !important; } - -.mt-2 { margin-top: 0.5rem !important; } - -.mr-2 { margin-right: 0.5rem !important; } - -.mb-2 { margin-bottom: 0.5rem !important; } - -.ml-2 { margin-left: 0.5rem !important; } - -.mx-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - -.my-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - -.mxn-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } - -.mx-2-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-3 { margin: 0.75rem !important; } - -.mt-3 { margin-top: 0.75rem !important; } - -.mr-3 { margin-right: 0.75rem !important; } - -.mb-3 { margin-bottom: 0.75rem !important; } - -.ml-3 { margin-left: 0.75rem !important; } - -.mx-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - -.my-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - -.mxn-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } - -.mx-3-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-4 { margin: 1rem !important; } - -.mt-4 { margin-top: 1rem !important; } - -.mr-4 { margin-right: 1rem !important; } - -.mb-4 { margin-bottom: 1rem !important; } - -.ml-4 { margin-left: 1rem !important; } - -.mx-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - -.my-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - -.mxn-4 { margin-right: -1rem !important; margin-left: -1rem !important; } - -.mx-4-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-5 { margin: 1.5rem !important; } - -.mt-5 { margin-top: 1.5rem !important; } - -.mr-5 { margin-right: 1.5rem !important; } - -.mb-5 { margin-bottom: 1.5rem !important; } - -.ml-5 { margin-left: 1.5rem !important; } - -.mx-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - -.my-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - -.mxn-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } - -.mx-5-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-6 { margin: 2rem !important; } - -.mt-6 { margin-top: 2rem !important; } - -.mr-6 { margin-right: 2rem !important; } - -.mb-6 { margin-bottom: 2rem !important; } - -.ml-6 { margin-left: 2rem !important; } - -.mx-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - -.my-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - -.mxn-6 { margin-right: -2rem !important; margin-left: -2rem !important; } - -.mx-6-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-7 { margin: 2.5rem !important; } - -.mt-7 { margin-top: 2.5rem !important; } - -.mr-7 { margin-right: 2.5rem !important; } - -.mb-7 { margin-bottom: 2.5rem !important; } - -.ml-7 { margin-left: 2.5rem !important; } - -.mx-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - -.my-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - -.mxn-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } - -.mx-7-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-8 { margin: 3rem !important; } - -.mt-8 { margin-top: 3rem !important; } - -.mr-8 { margin-right: 3rem !important; } - -.mb-8 { margin-bottom: 3rem !important; } - -.ml-8 { margin-left: 3rem !important; } - -.mx-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - -.my-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - -.mxn-8 { margin-right: -3rem !important; margin-left: -3rem !important; } - -.mx-8-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-9 { margin: 3.5rem !important; } - -.mt-9 { margin-top: 3.5rem !important; } - -.mr-9 { margin-right: 3.5rem !important; } - -.mb-9 { margin-bottom: 3.5rem !important; } - -.ml-9 { margin-left: 3.5rem !important; } - -.mx-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - -.my-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - -.mxn-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } - -.mx-9-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-10 { margin: 4rem !important; } - -.mt-10 { margin-top: 4rem !important; } - -.mr-10 { margin-right: 4rem !important; } - -.mb-10 { margin-bottom: 4rem !important; } - -.ml-10 { margin-left: 4rem !important; } - -.mx-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - -.my-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - -.mxn-10 { margin-right: -4rem !important; margin-left: -4rem !important; } - -.mx-10-auto { margin-right: auto !important; margin-left: auto !important; } - -@media (min-width: 20rem) { .m-xs-0 { margin: 0 !important; } - .mt-xs-0 { margin-top: 0 !important; } - .mr-xs-0 { margin-right: 0 !important; } - .mb-xs-0 { margin-bottom: 0 !important; } - .ml-xs-0 { margin-left: 0 !important; } - .mx-xs-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-xs-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-xs-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 20rem) { .m-xs-1 { margin: 0.25rem !important; } - .mt-xs-1 { margin-top: 0.25rem !important; } - .mr-xs-1 { margin-right: 0.25rem !important; } - .mb-xs-1 { margin-bottom: 0.25rem !important; } - .ml-xs-1 { margin-left: 0.25rem !important; } - .mx-xs-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-xs-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-xs-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 20rem) { .m-xs-2 { margin: 0.5rem !important; } - .mt-xs-2 { margin-top: 0.5rem !important; } - .mr-xs-2 { margin-right: 0.5rem !important; } - .mb-xs-2 { margin-bottom: 0.5rem !important; } - .ml-xs-2 { margin-left: 0.5rem !important; } - .mx-xs-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-xs-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-xs-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 20rem) { .m-xs-3 { margin: 0.75rem !important; } - .mt-xs-3 { margin-top: 0.75rem !important; } - .mr-xs-3 { margin-right: 0.75rem !important; } - .mb-xs-3 { margin-bottom: 0.75rem !important; } - .ml-xs-3 { margin-left: 0.75rem !important; } - .mx-xs-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-xs-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-xs-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 20rem) { .m-xs-4 { margin: 1rem !important; } - .mt-xs-4 { margin-top: 1rem !important; } - .mr-xs-4 { margin-right: 1rem !important; } - .mb-xs-4 { margin-bottom: 1rem !important; } - .ml-xs-4 { margin-left: 1rem !important; } - .mx-xs-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-xs-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-xs-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 20rem) { .m-xs-5 { margin: 1.5rem !important; } - .mt-xs-5 { margin-top: 1.5rem !important; } - .mr-xs-5 { margin-right: 1.5rem !important; } - .mb-xs-5 { margin-bottom: 1.5rem !important; } - .ml-xs-5 { margin-left: 1.5rem !important; } - .mx-xs-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-xs-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-xs-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 20rem) { .m-xs-6 { margin: 2rem !important; } - .mt-xs-6 { margin-top: 2rem !important; } - .mr-xs-6 { margin-right: 2rem !important; } - .mb-xs-6 { margin-bottom: 2rem !important; } - .ml-xs-6 { margin-left: 2rem !important; } - .mx-xs-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-xs-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-xs-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 20rem) { .m-xs-7 { margin: 2.5rem !important; } - .mt-xs-7 { margin-top: 2.5rem !important; } - .mr-xs-7 { margin-right: 2.5rem !important; } - .mb-xs-7 { margin-bottom: 2.5rem !important; } - .ml-xs-7 { margin-left: 2.5rem !important; } - .mx-xs-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-xs-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-xs-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 20rem) { .m-xs-8 { margin: 3rem !important; } - .mt-xs-8 { margin-top: 3rem !important; } - .mr-xs-8 { margin-right: 3rem !important; } - .mb-xs-8 { margin-bottom: 3rem !important; } - .ml-xs-8 { margin-left: 3rem !important; } - .mx-xs-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-xs-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-xs-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 20rem) { .m-xs-9 { margin: 3.5rem !important; } - .mt-xs-9 { margin-top: 3.5rem !important; } - .mr-xs-9 { margin-right: 3.5rem !important; } - .mb-xs-9 { margin-bottom: 3.5rem !important; } - .ml-xs-9 { margin-left: 3.5rem !important; } - .mx-xs-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-xs-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-xs-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 20rem) { .m-xs-10 { margin: 4rem !important; } - .mt-xs-10 { margin-top: 4rem !important; } - .mr-xs-10 { margin-right: 4rem !important; } - .mb-xs-10 { margin-bottom: 4rem !important; } - .ml-xs-10 { margin-left: 4rem !important; } - .mx-xs-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-xs-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-xs-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 31.25rem) { .m-sm-0 { margin: 0 !important; } - .mt-sm-0 { margin-top: 0 !important; } - .mr-sm-0 { margin-right: 0 !important; } - .mb-sm-0 { margin-bottom: 0 !important; } - .ml-sm-0 { margin-left: 0 !important; } - .mx-sm-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-sm-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-sm-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 31.25rem) { .m-sm-1 { margin: 0.25rem !important; } - .mt-sm-1 { margin-top: 0.25rem !important; } - .mr-sm-1 { margin-right: 0.25rem !important; } - .mb-sm-1 { margin-bottom: 0.25rem !important; } - .ml-sm-1 { margin-left: 0.25rem !important; } - .mx-sm-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-sm-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-sm-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 31.25rem) { .m-sm-2 { margin: 0.5rem !important; } - .mt-sm-2 { margin-top: 0.5rem !important; } - .mr-sm-2 { margin-right: 0.5rem !important; } - .mb-sm-2 { margin-bottom: 0.5rem !important; } - .ml-sm-2 { margin-left: 0.5rem !important; } - .mx-sm-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-sm-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-sm-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-3 { margin: 0.75rem !important; } - .mt-sm-3 { margin-top: 0.75rem !important; } - .mr-sm-3 { margin-right: 0.75rem !important; } - .mb-sm-3 { margin-bottom: 0.75rem !important; } - .ml-sm-3 { margin-left: 0.75rem !important; } - .mx-sm-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-sm-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-sm-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 31.25rem) { .m-sm-4 { margin: 1rem !important; } - .mt-sm-4 { margin-top: 1rem !important; } - .mr-sm-4 { margin-right: 1rem !important; } - .mb-sm-4 { margin-bottom: 1rem !important; } - .ml-sm-4 { margin-left: 1rem !important; } - .mx-sm-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-sm-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-sm-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 31.25rem) { .m-sm-5 { margin: 1.5rem !important; } - .mt-sm-5 { margin-top: 1.5rem !important; } - .mr-sm-5 { margin-right: 1.5rem !important; } - .mb-sm-5 { margin-bottom: 1.5rem !important; } - .ml-sm-5 { margin-left: 1.5rem !important; } - .mx-sm-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-sm-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-sm-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-6 { margin: 2rem !important; } - .mt-sm-6 { margin-top: 2rem !important; } - .mr-sm-6 { margin-right: 2rem !important; } - .mb-sm-6 { margin-bottom: 2rem !important; } - .ml-sm-6 { margin-left: 2rem !important; } - .mx-sm-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-sm-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-sm-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 31.25rem) { .m-sm-7 { margin: 2.5rem !important; } - .mt-sm-7 { margin-top: 2.5rem !important; } - .mr-sm-7 { margin-right: 2.5rem !important; } - .mb-sm-7 { margin-bottom: 2.5rem !important; } - .ml-sm-7 { margin-left: 2.5rem !important; } - .mx-sm-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-sm-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-sm-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-8 { margin: 3rem !important; } - .mt-sm-8 { margin-top: 3rem !important; } - .mr-sm-8 { margin-right: 3rem !important; } - .mb-sm-8 { margin-bottom: 3rem !important; } - .ml-sm-8 { margin-left: 3rem !important; } - .mx-sm-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-sm-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-sm-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 31.25rem) { .m-sm-9 { margin: 3.5rem !important; } - .mt-sm-9 { margin-top: 3.5rem !important; } - .mr-sm-9 { margin-right: 3.5rem !important; } - .mb-sm-9 { margin-bottom: 3.5rem !important; } - .ml-sm-9 { margin-left: 3.5rem !important; } - .mx-sm-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-sm-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-sm-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-10 { margin: 4rem !important; } - .mt-sm-10 { margin-top: 4rem !important; } - .mr-sm-10 { margin-right: 4rem !important; } - .mb-sm-10 { margin-bottom: 4rem !important; } - .ml-sm-10 { margin-left: 4rem !important; } - .mx-sm-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-sm-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-sm-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 50rem) { .m-md-0 { margin: 0 !important; } - .mt-md-0 { margin-top: 0 !important; } - .mr-md-0 { margin-right: 0 !important; } - .mb-md-0 { margin-bottom: 0 !important; } - .ml-md-0 { margin-left: 0 !important; } - .mx-md-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-md-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-md-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 50rem) { .m-md-1 { margin: 0.25rem !important; } - .mt-md-1 { margin-top: 0.25rem !important; } - .mr-md-1 { margin-right: 0.25rem !important; } - .mb-md-1 { margin-bottom: 0.25rem !important; } - .ml-md-1 { margin-left: 0.25rem !important; } - .mx-md-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-md-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-md-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 50rem) { .m-md-2 { margin: 0.5rem !important; } - .mt-md-2 { margin-top: 0.5rem !important; } - .mr-md-2 { margin-right: 0.5rem !important; } - .mb-md-2 { margin-bottom: 0.5rem !important; } - .ml-md-2 { margin-left: 0.5rem !important; } - .mx-md-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-md-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-md-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 50rem) { .m-md-3 { margin: 0.75rem !important; } - .mt-md-3 { margin-top: 0.75rem !important; } - .mr-md-3 { margin-right: 0.75rem !important; } - .mb-md-3 { margin-bottom: 0.75rem !important; } - .ml-md-3 { margin-left: 0.75rem !important; } - .mx-md-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-md-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-md-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 50rem) { .m-md-4 { margin: 1rem !important; } - .mt-md-4 { margin-top: 1rem !important; } - .mr-md-4 { margin-right: 1rem !important; } - .mb-md-4 { margin-bottom: 1rem !important; } - .ml-md-4 { margin-left: 1rem !important; } - .mx-md-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-md-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-md-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 50rem) { .m-md-5 { margin: 1.5rem !important; } - .mt-md-5 { margin-top: 1.5rem !important; } - .mr-md-5 { margin-right: 1.5rem !important; } - .mb-md-5 { margin-bottom: 1.5rem !important; } - .ml-md-5 { margin-left: 1.5rem !important; } - .mx-md-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-md-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-md-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 50rem) { .m-md-6 { margin: 2rem !important; } - .mt-md-6 { margin-top: 2rem !important; } - .mr-md-6 { margin-right: 2rem !important; } - .mb-md-6 { margin-bottom: 2rem !important; } - .ml-md-6 { margin-left: 2rem !important; } - .mx-md-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-md-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-md-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 50rem) { .m-md-7 { margin: 2.5rem !important; } - .mt-md-7 { margin-top: 2.5rem !important; } - .mr-md-7 { margin-right: 2.5rem !important; } - .mb-md-7 { margin-bottom: 2.5rem !important; } - .ml-md-7 { margin-left: 2.5rem !important; } - .mx-md-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-md-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-md-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 50rem) { .m-md-8 { margin: 3rem !important; } - .mt-md-8 { margin-top: 3rem !important; } - .mr-md-8 { margin-right: 3rem !important; } - .mb-md-8 { margin-bottom: 3rem !important; } - .ml-md-8 { margin-left: 3rem !important; } - .mx-md-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-md-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-md-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 50rem) { .m-md-9 { margin: 3.5rem !important; } - .mt-md-9 { margin-top: 3.5rem !important; } - .mr-md-9 { margin-right: 3.5rem !important; } - .mb-md-9 { margin-bottom: 3.5rem !important; } - .ml-md-9 { margin-left: 3.5rem !important; } - .mx-md-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-md-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-md-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 50rem) { .m-md-10 { margin: 4rem !important; } - .mt-md-10 { margin-top: 4rem !important; } - .mr-md-10 { margin-right: 4rem !important; } - .mb-md-10 { margin-bottom: 4rem !important; } - .ml-md-10 { margin-left: 4rem !important; } - .mx-md-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-md-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-md-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 66.5rem) { .m-lg-0 { margin: 0 !important; } - .mt-lg-0 { margin-top: 0 !important; } - .mr-lg-0 { margin-right: 0 !important; } - .mb-lg-0 { margin-bottom: 0 !important; } - .ml-lg-0 { margin-left: 0 !important; } - .mx-lg-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-lg-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-lg-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 66.5rem) { .m-lg-1 { margin: 0.25rem !important; } - .mt-lg-1 { margin-top: 0.25rem !important; } - .mr-lg-1 { margin-right: 0.25rem !important; } - .mb-lg-1 { margin-bottom: 0.25rem !important; } - .ml-lg-1 { margin-left: 0.25rem !important; } - .mx-lg-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-lg-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-lg-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 66.5rem) { .m-lg-2 { margin: 0.5rem !important; } - .mt-lg-2 { margin-top: 0.5rem !important; } - .mr-lg-2 { margin-right: 0.5rem !important; } - .mb-lg-2 { margin-bottom: 0.5rem !important; } - .ml-lg-2 { margin-left: 0.5rem !important; } - .mx-lg-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-lg-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-lg-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-3 { margin: 0.75rem !important; } - .mt-lg-3 { margin-top: 0.75rem !important; } - .mr-lg-3 { margin-right: 0.75rem !important; } - .mb-lg-3 { margin-bottom: 0.75rem !important; } - .ml-lg-3 { margin-left: 0.75rem !important; } - .mx-lg-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-lg-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-lg-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 66.5rem) { .m-lg-4 { margin: 1rem !important; } - .mt-lg-4 { margin-top: 1rem !important; } - .mr-lg-4 { margin-right: 1rem !important; } - .mb-lg-4 { margin-bottom: 1rem !important; } - .ml-lg-4 { margin-left: 1rem !important; } - .mx-lg-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-lg-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-lg-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 66.5rem) { .m-lg-5 { margin: 1.5rem !important; } - .mt-lg-5 { margin-top: 1.5rem !important; } - .mr-lg-5 { margin-right: 1.5rem !important; } - .mb-lg-5 { margin-bottom: 1.5rem !important; } - .ml-lg-5 { margin-left: 1.5rem !important; } - .mx-lg-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-lg-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-lg-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-6 { margin: 2rem !important; } - .mt-lg-6 { margin-top: 2rem !important; } - .mr-lg-6 { margin-right: 2rem !important; } - .mb-lg-6 { margin-bottom: 2rem !important; } - .ml-lg-6 { margin-left: 2rem !important; } - .mx-lg-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-lg-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-lg-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 66.5rem) { .m-lg-7 { margin: 2.5rem !important; } - .mt-lg-7 { margin-top: 2.5rem !important; } - .mr-lg-7 { margin-right: 2.5rem !important; } - .mb-lg-7 { margin-bottom: 2.5rem !important; } - .ml-lg-7 { margin-left: 2.5rem !important; } - .mx-lg-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-lg-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-lg-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-8 { margin: 3rem !important; } - .mt-lg-8 { margin-top: 3rem !important; } - .mr-lg-8 { margin-right: 3rem !important; } - .mb-lg-8 { margin-bottom: 3rem !important; } - .ml-lg-8 { margin-left: 3rem !important; } - .mx-lg-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-lg-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-lg-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 66.5rem) { .m-lg-9 { margin: 3.5rem !important; } - .mt-lg-9 { margin-top: 3.5rem !important; } - .mr-lg-9 { margin-right: 3.5rem !important; } - .mb-lg-9 { margin-bottom: 3.5rem !important; } - .ml-lg-9 { margin-left: 3.5rem !important; } - .mx-lg-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-lg-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-lg-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-10 { margin: 4rem !important; } - .mt-lg-10 { margin-top: 4rem !important; } - .mr-lg-10 { margin-right: 4rem !important; } - .mb-lg-10 { margin-bottom: 4rem !important; } - .ml-lg-10 { margin-left: 4rem !important; } - .mx-lg-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-lg-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-lg-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 87.5rem) { .m-xl-0 { margin: 0 !important; } - .mt-xl-0 { margin-top: 0 !important; } - .mr-xl-0 { margin-right: 0 !important; } - .mb-xl-0 { margin-bottom: 0 !important; } - .ml-xl-0 { margin-left: 0 !important; } - .mx-xl-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-xl-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-xl-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 87.5rem) { .m-xl-1 { margin: 0.25rem !important; } - .mt-xl-1 { margin-top: 0.25rem !important; } - .mr-xl-1 { margin-right: 0.25rem !important; } - .mb-xl-1 { margin-bottom: 0.25rem !important; } - .ml-xl-1 { margin-left: 0.25rem !important; } - .mx-xl-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-xl-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-xl-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 87.5rem) { .m-xl-2 { margin: 0.5rem !important; } - .mt-xl-2 { margin-top: 0.5rem !important; } - .mr-xl-2 { margin-right: 0.5rem !important; } - .mb-xl-2 { margin-bottom: 0.5rem !important; } - .ml-xl-2 { margin-left: 0.5rem !important; } - .mx-xl-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-xl-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-xl-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-3 { margin: 0.75rem !important; } - .mt-xl-3 { margin-top: 0.75rem !important; } - .mr-xl-3 { margin-right: 0.75rem !important; } - .mb-xl-3 { margin-bottom: 0.75rem !important; } - .ml-xl-3 { margin-left: 0.75rem !important; } - .mx-xl-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-xl-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-xl-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 87.5rem) { .m-xl-4 { margin: 1rem !important; } - .mt-xl-4 { margin-top: 1rem !important; } - .mr-xl-4 { margin-right: 1rem !important; } - .mb-xl-4 { margin-bottom: 1rem !important; } - .ml-xl-4 { margin-left: 1rem !important; } - .mx-xl-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-xl-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-xl-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 87.5rem) { .m-xl-5 { margin: 1.5rem !important; } - .mt-xl-5 { margin-top: 1.5rem !important; } - .mr-xl-5 { margin-right: 1.5rem !important; } - .mb-xl-5 { margin-bottom: 1.5rem !important; } - .ml-xl-5 { margin-left: 1.5rem !important; } - .mx-xl-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-xl-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-xl-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-6 { margin: 2rem !important; } - .mt-xl-6 { margin-top: 2rem !important; } - .mr-xl-6 { margin-right: 2rem !important; } - .mb-xl-6 { margin-bottom: 2rem !important; } - .ml-xl-6 { margin-left: 2rem !important; } - .mx-xl-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-xl-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-xl-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 87.5rem) { .m-xl-7 { margin: 2.5rem !important; } - .mt-xl-7 { margin-top: 2.5rem !important; } - .mr-xl-7 { margin-right: 2.5rem !important; } - .mb-xl-7 { margin-bottom: 2.5rem !important; } - .ml-xl-7 { margin-left: 2.5rem !important; } - .mx-xl-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-xl-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-xl-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-8 { margin: 3rem !important; } - .mt-xl-8 { margin-top: 3rem !important; } - .mr-xl-8 { margin-right: 3rem !important; } - .mb-xl-8 { margin-bottom: 3rem !important; } - .ml-xl-8 { margin-left: 3rem !important; } - .mx-xl-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-xl-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-xl-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 87.5rem) { .m-xl-9 { margin: 3.5rem !important; } - .mt-xl-9 { margin-top: 3.5rem !important; } - .mr-xl-9 { margin-right: 3.5rem !important; } - .mb-xl-9 { margin-bottom: 3.5rem !important; } - .ml-xl-9 { margin-left: 3.5rem !important; } - .mx-xl-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-xl-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-xl-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-10 { margin: 4rem !important; } - .mt-xl-10 { margin-top: 4rem !important; } - .mr-xl-10 { margin-right: 4rem !important; } - .mb-xl-10 { margin-bottom: 4rem !important; } - .ml-xl-10 { margin-left: 4rem !important; } - .mx-xl-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-xl-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-xl-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -.p-0 { padding: 0 !important; } - -.pt-0 { padding-top: 0 !important; } - -.pr-0 { padding-right: 0 !important; } - -.pb-0 { padding-bottom: 0 !important; } - -.pl-0 { padding-left: 0 !important; } - -.px-0 { padding-right: 0 !important; padding-left: 0 !important; } - -.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - -.p-1 { padding: 0.25rem !important; } - -.pt-1 { padding-top: 0.25rem !important; } - -.pr-1 { padding-right: 0.25rem !important; } - -.pb-1 { padding-bottom: 0.25rem !important; } - -.pl-1 { padding-left: 0.25rem !important; } - -.px-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - -.py-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - -.p-2 { padding: 0.5rem !important; } - -.pt-2 { padding-top: 0.5rem !important; } - -.pr-2 { padding-right: 0.5rem !important; } - -.pb-2 { padding-bottom: 0.5rem !important; } - -.pl-2 { padding-left: 0.5rem !important; } - -.px-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - -.py-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - -.p-3 { padding: 0.75rem !important; } - -.pt-3 { padding-top: 0.75rem !important; } - -.pr-3 { padding-right: 0.75rem !important; } - -.pb-3 { padding-bottom: 0.75rem !important; } - -.pl-3 { padding-left: 0.75rem !important; } - -.px-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - -.py-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - -.p-4 { padding: 1rem !important; } - -.pt-4 { padding-top: 1rem !important; } - -.pr-4 { padding-right: 1rem !important; } - -.pb-4 { padding-bottom: 1rem !important; } - -.pl-4 { padding-left: 1rem !important; } - -.px-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - -.py-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - -.p-5 { padding: 1.5rem !important; } - -.pt-5 { padding-top: 1.5rem !important; } - -.pr-5 { padding-right: 1.5rem !important; } - -.pb-5 { padding-bottom: 1.5rem !important; } - -.pl-5 { padding-left: 1.5rem !important; } - -.px-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - -.py-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - -.p-6 { padding: 2rem !important; } - -.pt-6 { padding-top: 2rem !important; } - -.pr-6 { padding-right: 2rem !important; } - -.pb-6 { padding-bottom: 2rem !important; } - -.pl-6 { padding-left: 2rem !important; } - -.px-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - -.py-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - -.p-7 { padding: 2.5rem !important; } - -.pt-7 { padding-top: 2.5rem !important; } - -.pr-7 { padding-right: 2.5rem !important; } - -.pb-7 { padding-bottom: 2.5rem !important; } - -.pl-7 { padding-left: 2.5rem !important; } - -.px-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - -.py-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - -.p-8 { padding: 3rem !important; } - -.pt-8 { padding-top: 3rem !important; } - -.pr-8 { padding-right: 3rem !important; } - -.pb-8 { padding-bottom: 3rem !important; } - -.pl-8 { padding-left: 3rem !important; } - -.px-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - -.py-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - -.p-9 { padding: 3.5rem !important; } - -.pt-9 { padding-top: 3.5rem !important; } - -.pr-9 { padding-right: 3.5rem !important; } - -.pb-9 { padding-bottom: 3.5rem !important; } - -.pl-9 { padding-left: 3.5rem !important; } - -.px-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - -.py-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - -.p-10 { padding: 4rem !important; } - -.pt-10 { padding-top: 4rem !important; } - -.pr-10 { padding-right: 4rem !important; } - -.pb-10 { padding-bottom: 4rem !important; } - -.pl-10 { padding-left: 4rem !important; } - -.px-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - -.py-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } - -@media (min-width: 20rem) { .p-xs-0 { padding: 0 !important; } - .pt-xs-0 { padding-top: 0 !important; } - .pr-xs-0 { padding-right: 0 !important; } - .pb-xs-0 { padding-bottom: 0 !important; } - .pl-xs-0 { padding-left: 0 !important; } - .px-xs-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-xs-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-xs-1 { padding: 0.25rem !important; } - .pt-xs-1 { padding-top: 0.25rem !important; } - .pr-xs-1 { padding-right: 0.25rem !important; } - .pb-xs-1 { padding-bottom: 0.25rem !important; } - .pl-xs-1 { padding-left: 0.25rem !important; } - .px-xs-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-xs-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-xs-2 { padding: 0.5rem !important; } - .pt-xs-2 { padding-top: 0.5rem !important; } - .pr-xs-2 { padding-right: 0.5rem !important; } - .pb-xs-2 { padding-bottom: 0.5rem !important; } - .pl-xs-2 { padding-left: 0.5rem !important; } - .px-xs-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-xs-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-xs-3 { padding: 0.75rem !important; } - .pt-xs-3 { padding-top: 0.75rem !important; } - .pr-xs-3 { padding-right: 0.75rem !important; } - .pb-xs-3 { padding-bottom: 0.75rem !important; } - .pl-xs-3 { padding-left: 0.75rem !important; } - .px-xs-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-xs-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-xs-4 { padding: 1rem !important; } - .pt-xs-4 { padding-top: 1rem !important; } - .pr-xs-4 { padding-right: 1rem !important; } - .pb-xs-4 { padding-bottom: 1rem !important; } - .pl-xs-4 { padding-left: 1rem !important; } - .px-xs-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-xs-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-xs-5 { padding: 1.5rem !important; } - .pt-xs-5 { padding-top: 1.5rem !important; } - .pr-xs-5 { padding-right: 1.5rem !important; } - .pb-xs-5 { padding-bottom: 1.5rem !important; } - .pl-xs-5 { padding-left: 1.5rem !important; } - .px-xs-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-xs-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-xs-6 { padding: 2rem !important; } - .pt-xs-6 { padding-top: 2rem !important; } - .pr-xs-6 { padding-right: 2rem !important; } - .pb-xs-6 { padding-bottom: 2rem !important; } - .pl-xs-6 { padding-left: 2rem !important; } - .px-xs-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-xs-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-xs-7 { padding: 2.5rem !important; } - .pt-xs-7 { padding-top: 2.5rem !important; } - .pr-xs-7 { padding-right: 2.5rem !important; } - .pb-xs-7 { padding-bottom: 2.5rem !important; } - .pl-xs-7 { padding-left: 2.5rem !important; } - .px-xs-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-xs-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-xs-8 { padding: 3rem !important; } - .pt-xs-8 { padding-top: 3rem !important; } - .pr-xs-8 { padding-right: 3rem !important; } - .pb-xs-8 { padding-bottom: 3rem !important; } - .pl-xs-8 { padding-left: 3rem !important; } - .px-xs-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-xs-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-xs-9 { padding: 3.5rem !important; } - .pt-xs-9 { padding-top: 3.5rem !important; } - .pr-xs-9 { padding-right: 3.5rem !important; } - .pb-xs-9 { padding-bottom: 3.5rem !important; } - .pl-xs-9 { padding-left: 3.5rem !important; } - .px-xs-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-xs-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-xs-10 { padding: 4rem !important; } - .pt-xs-10 { padding-top: 4rem !important; } - .pr-xs-10 { padding-right: 4rem !important; } - .pb-xs-10 { padding-bottom: 4rem !important; } - .pl-xs-10 { padding-left: 4rem !important; } - .px-xs-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-xs-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 31.25rem) { .p-sm-0 { padding: 0 !important; } - .pt-sm-0 { padding-top: 0 !important; } - .pr-sm-0 { padding-right: 0 !important; } - .pb-sm-0 { padding-bottom: 0 !important; } - .pl-sm-0 { padding-left: 0 !important; } - .px-sm-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-sm-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-sm-1 { padding: 0.25rem !important; } - .pt-sm-1 { padding-top: 0.25rem !important; } - .pr-sm-1 { padding-right: 0.25rem !important; } - .pb-sm-1 { padding-bottom: 0.25rem !important; } - .pl-sm-1 { padding-left: 0.25rem !important; } - .px-sm-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-sm-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-sm-2 { padding: 0.5rem !important; } - .pt-sm-2 { padding-top: 0.5rem !important; } - .pr-sm-2 { padding-right: 0.5rem !important; } - .pb-sm-2 { padding-bottom: 0.5rem !important; } - .pl-sm-2 { padding-left: 0.5rem !important; } - .px-sm-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-sm-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-sm-3 { padding: 0.75rem !important; } - .pt-sm-3 { padding-top: 0.75rem !important; } - .pr-sm-3 { padding-right: 0.75rem !important; } - .pb-sm-3 { padding-bottom: 0.75rem !important; } - .pl-sm-3 { padding-left: 0.75rem !important; } - .px-sm-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-sm-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-sm-4 { padding: 1rem !important; } - .pt-sm-4 { padding-top: 1rem !important; } - .pr-sm-4 { padding-right: 1rem !important; } - .pb-sm-4 { padding-bottom: 1rem !important; } - .pl-sm-4 { padding-left: 1rem !important; } - .px-sm-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-sm-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-sm-5 { padding: 1.5rem !important; } - .pt-sm-5 { padding-top: 1.5rem !important; } - .pr-sm-5 { padding-right: 1.5rem !important; } - .pb-sm-5 { padding-bottom: 1.5rem !important; } - .pl-sm-5 { padding-left: 1.5rem !important; } - .px-sm-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-sm-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-sm-6 { padding: 2rem !important; } - .pt-sm-6 { padding-top: 2rem !important; } - .pr-sm-6 { padding-right: 2rem !important; } - .pb-sm-6 { padding-bottom: 2rem !important; } - .pl-sm-6 { padding-left: 2rem !important; } - .px-sm-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-sm-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-sm-7 { padding: 2.5rem !important; } - .pt-sm-7 { padding-top: 2.5rem !important; } - .pr-sm-7 { padding-right: 2.5rem !important; } - .pb-sm-7 { padding-bottom: 2.5rem !important; } - .pl-sm-7 { padding-left: 2.5rem !important; } - .px-sm-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-sm-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-sm-8 { padding: 3rem !important; } - .pt-sm-8 { padding-top: 3rem !important; } - .pr-sm-8 { padding-right: 3rem !important; } - .pb-sm-8 { padding-bottom: 3rem !important; } - .pl-sm-8 { padding-left: 3rem !important; } - .px-sm-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-sm-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-sm-9 { padding: 3.5rem !important; } - .pt-sm-9 { padding-top: 3.5rem !important; } - .pr-sm-9 { padding-right: 3.5rem !important; } - .pb-sm-9 { padding-bottom: 3.5rem !important; } - .pl-sm-9 { padding-left: 3.5rem !important; } - .px-sm-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-sm-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-sm-10 { padding: 4rem !important; } - .pt-sm-10 { padding-top: 4rem !important; } - .pr-sm-10 { padding-right: 4rem !important; } - .pb-sm-10 { padding-bottom: 4rem !important; } - .pl-sm-10 { padding-left: 4rem !important; } - .px-sm-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-sm-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 50rem) { .p-md-0 { padding: 0 !important; } - .pt-md-0 { padding-top: 0 !important; } - .pr-md-0 { padding-right: 0 !important; } - .pb-md-0 { padding-bottom: 0 !important; } - .pl-md-0 { padding-left: 0 !important; } - .px-md-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-md-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-md-1 { padding: 0.25rem !important; } - .pt-md-1 { padding-top: 0.25rem !important; } - .pr-md-1 { padding-right: 0.25rem !important; } - .pb-md-1 { padding-bottom: 0.25rem !important; } - .pl-md-1 { padding-left: 0.25rem !important; } - .px-md-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-md-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-md-2 { padding: 0.5rem !important; } - .pt-md-2 { padding-top: 0.5rem !important; } - .pr-md-2 { padding-right: 0.5rem !important; } - .pb-md-2 { padding-bottom: 0.5rem !important; } - .pl-md-2 { padding-left: 0.5rem !important; } - .px-md-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-md-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-md-3 { padding: 0.75rem !important; } - .pt-md-3 { padding-top: 0.75rem !important; } - .pr-md-3 { padding-right: 0.75rem !important; } - .pb-md-3 { padding-bottom: 0.75rem !important; } - .pl-md-3 { padding-left: 0.75rem !important; } - .px-md-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-md-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-md-4 { padding: 1rem !important; } - .pt-md-4 { padding-top: 1rem !important; } - .pr-md-4 { padding-right: 1rem !important; } - .pb-md-4 { padding-bottom: 1rem !important; } - .pl-md-4 { padding-left: 1rem !important; } - .px-md-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-md-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-md-5 { padding: 1.5rem !important; } - .pt-md-5 { padding-top: 1.5rem !important; } - .pr-md-5 { padding-right: 1.5rem !important; } - .pb-md-5 { padding-bottom: 1.5rem !important; } - .pl-md-5 { padding-left: 1.5rem !important; } - .px-md-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-md-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-md-6 { padding: 2rem !important; } - .pt-md-6 { padding-top: 2rem !important; } - .pr-md-6 { padding-right: 2rem !important; } - .pb-md-6 { padding-bottom: 2rem !important; } - .pl-md-6 { padding-left: 2rem !important; } - .px-md-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-md-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-md-7 { padding: 2.5rem !important; } - .pt-md-7 { padding-top: 2.5rem !important; } - .pr-md-7 { padding-right: 2.5rem !important; } - .pb-md-7 { padding-bottom: 2.5rem !important; } - .pl-md-7 { padding-left: 2.5rem !important; } - .px-md-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-md-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-md-8 { padding: 3rem !important; } - .pt-md-8 { padding-top: 3rem !important; } - .pr-md-8 { padding-right: 3rem !important; } - .pb-md-8 { padding-bottom: 3rem !important; } - .pl-md-8 { padding-left: 3rem !important; } - .px-md-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-md-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-md-9 { padding: 3.5rem !important; } - .pt-md-9 { padding-top: 3.5rem !important; } - .pr-md-9 { padding-right: 3.5rem !important; } - .pb-md-9 { padding-bottom: 3.5rem !important; } - .pl-md-9 { padding-left: 3.5rem !important; } - .px-md-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-md-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-md-10 { padding: 4rem !important; } - .pt-md-10 { padding-top: 4rem !important; } - .pr-md-10 { padding-right: 4rem !important; } - .pb-md-10 { padding-bottom: 4rem !important; } - .pl-md-10 { padding-left: 4rem !important; } - .px-md-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-md-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 66.5rem) { .p-lg-0 { padding: 0 !important; } - .pt-lg-0 { padding-top: 0 !important; } - .pr-lg-0 { padding-right: 0 !important; } - .pb-lg-0 { padding-bottom: 0 !important; } - .pl-lg-0 { padding-left: 0 !important; } - .px-lg-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-lg-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-lg-1 { padding: 0.25rem !important; } - .pt-lg-1 { padding-top: 0.25rem !important; } - .pr-lg-1 { padding-right: 0.25rem !important; } - .pb-lg-1 { padding-bottom: 0.25rem !important; } - .pl-lg-1 { padding-left: 0.25rem !important; } - .px-lg-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-lg-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-lg-2 { padding: 0.5rem !important; } - .pt-lg-2 { padding-top: 0.5rem !important; } - .pr-lg-2 { padding-right: 0.5rem !important; } - .pb-lg-2 { padding-bottom: 0.5rem !important; } - .pl-lg-2 { padding-left: 0.5rem !important; } - .px-lg-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-lg-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-lg-3 { padding: 0.75rem !important; } - .pt-lg-3 { padding-top: 0.75rem !important; } - .pr-lg-3 { padding-right: 0.75rem !important; } - .pb-lg-3 { padding-bottom: 0.75rem !important; } - .pl-lg-3 { padding-left: 0.75rem !important; } - .px-lg-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-lg-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-lg-4 { padding: 1rem !important; } - .pt-lg-4 { padding-top: 1rem !important; } - .pr-lg-4 { padding-right: 1rem !important; } - .pb-lg-4 { padding-bottom: 1rem !important; } - .pl-lg-4 { padding-left: 1rem !important; } - .px-lg-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-lg-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-lg-5 { padding: 1.5rem !important; } - .pt-lg-5 { padding-top: 1.5rem !important; } - .pr-lg-5 { padding-right: 1.5rem !important; } - .pb-lg-5 { padding-bottom: 1.5rem !important; } - .pl-lg-5 { padding-left: 1.5rem !important; } - .px-lg-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-lg-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-lg-6 { padding: 2rem !important; } - .pt-lg-6 { padding-top: 2rem !important; } - .pr-lg-6 { padding-right: 2rem !important; } - .pb-lg-6 { padding-bottom: 2rem !important; } - .pl-lg-6 { padding-left: 2rem !important; } - .px-lg-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-lg-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-lg-7 { padding: 2.5rem !important; } - .pt-lg-7 { padding-top: 2.5rem !important; } - .pr-lg-7 { padding-right: 2.5rem !important; } - .pb-lg-7 { padding-bottom: 2.5rem !important; } - .pl-lg-7 { padding-left: 2.5rem !important; } - .px-lg-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-lg-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-lg-8 { padding: 3rem !important; } - .pt-lg-8 { padding-top: 3rem !important; } - .pr-lg-8 { padding-right: 3rem !important; } - .pb-lg-8 { padding-bottom: 3rem !important; } - .pl-lg-8 { padding-left: 3rem !important; } - .px-lg-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-lg-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-lg-9 { padding: 3.5rem !important; } - .pt-lg-9 { padding-top: 3.5rem !important; } - .pr-lg-9 { padding-right: 3.5rem !important; } - .pb-lg-9 { padding-bottom: 3.5rem !important; } - .pl-lg-9 { padding-left: 3.5rem !important; } - .px-lg-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-lg-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-lg-10 { padding: 4rem !important; } - .pt-lg-10 { padding-top: 4rem !important; } - .pr-lg-10 { padding-right: 4rem !important; } - .pb-lg-10 { padding-bottom: 4rem !important; } - .pl-lg-10 { padding-left: 4rem !important; } - .px-lg-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-lg-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 87.5rem) { .p-xl-0 { padding: 0 !important; } - .pt-xl-0 { padding-top: 0 !important; } - .pr-xl-0 { padding-right: 0 !important; } - .pb-xl-0 { padding-bottom: 0 !important; } - .pl-xl-0 { padding-left: 0 !important; } - .px-xl-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-xl-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-xl-1 { padding: 0.25rem !important; } - .pt-xl-1 { padding-top: 0.25rem !important; } - .pr-xl-1 { padding-right: 0.25rem !important; } - .pb-xl-1 { padding-bottom: 0.25rem !important; } - .pl-xl-1 { padding-left: 0.25rem !important; } - .px-xl-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-xl-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-xl-2 { padding: 0.5rem !important; } - .pt-xl-2 { padding-top: 0.5rem !important; } - .pr-xl-2 { padding-right: 0.5rem !important; } - .pb-xl-2 { padding-bottom: 0.5rem !important; } - .pl-xl-2 { padding-left: 0.5rem !important; } - .px-xl-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-xl-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-xl-3 { padding: 0.75rem !important; } - .pt-xl-3 { padding-top: 0.75rem !important; } - .pr-xl-3 { padding-right: 0.75rem !important; } - .pb-xl-3 { padding-bottom: 0.75rem !important; } - .pl-xl-3 { padding-left: 0.75rem !important; } - .px-xl-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-xl-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-xl-4 { padding: 1rem !important; } - .pt-xl-4 { padding-top: 1rem !important; } - .pr-xl-4 { padding-right: 1rem !important; } - .pb-xl-4 { padding-bottom: 1rem !important; } - .pl-xl-4 { padding-left: 1rem !important; } - .px-xl-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-xl-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-xl-5 { padding: 1.5rem !important; } - .pt-xl-5 { padding-top: 1.5rem !important; } - .pr-xl-5 { padding-right: 1.5rem !important; } - .pb-xl-5 { padding-bottom: 1.5rem !important; } - .pl-xl-5 { padding-left: 1.5rem !important; } - .px-xl-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-xl-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-xl-6 { padding: 2rem !important; } - .pt-xl-6 { padding-top: 2rem !important; } - .pr-xl-6 { padding-right: 2rem !important; } - .pb-xl-6 { padding-bottom: 2rem !important; } - .pl-xl-6 { padding-left: 2rem !important; } - .px-xl-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-xl-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-xl-7 { padding: 2.5rem !important; } - .pt-xl-7 { padding-top: 2.5rem !important; } - .pr-xl-7 { padding-right: 2.5rem !important; } - .pb-xl-7 { padding-bottom: 2.5rem !important; } - .pl-xl-7 { padding-left: 2.5rem !important; } - .px-xl-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-xl-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-xl-8 { padding: 3rem !important; } - .pt-xl-8 { padding-top: 3rem !important; } - .pr-xl-8 { padding-right: 3rem !important; } - .pb-xl-8 { padding-bottom: 3rem !important; } - .pl-xl-8 { padding-left: 3rem !important; } - .px-xl-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-xl-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-xl-9 { padding: 3.5rem !important; } - .pt-xl-9 { padding-top: 3.5rem !important; } - .pr-xl-9 { padding-right: 3.5rem !important; } - .pb-xl-9 { padding-bottom: 3.5rem !important; } - .pl-xl-9 { padding-left: 3.5rem !important; } - .px-xl-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-xl-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-xl-10 { padding: 4rem !important; } - .pt-xl-10 { padding-top: 4rem !important; } - .pr-xl-10 { padding-right: 4rem !important; } - .pb-xl-10 { padding-bottom: 4rem !important; } - .pl-xl-10 { padding-left: 4rem !important; } - .px-xl-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-xl-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media print { .site-footer, .site-button, #edit-this-page, #back-to-top, .site-nav, .main-header { display: none !important; } - .side-bar { width: 100%; height: auto; border-right: 0 !important; } - .site-header { border-bottom: 1px solid #44434d; } - .site-title { font-size: 16px !important; font-weight: 700 !important; } - .text-small { font-size: 8pt !important; } - pre.highlight { border: 1px solid #44434d; } - .main { max-width: none; margin-left: 0; } } diff --git a/docs/assets/css/just-the-docs-default.css b/docs/assets/css/just-the-docs-default.css deleted file mode 100644 index f972967..0000000 --- a/docs/assets/css/just-the-docs-default.css +++ /dev/null @@ -1,2250 +0,0 @@ -@charset "UTF-8"; -/*! normalize.scss v0.1.0 | MIT License | based on git.io/normalize */ -/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */ -html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } - -/** Remove default margin. */ -body { margin: 0; } - -/* HTML5 display definitions ========================================================================== */ -/** Correct `block` display not defined for any HTML5 element in IE 8/9. Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. Correct `block` display not defined for `main` in IE 11. */ -article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; } - -/** 1. Correct `inline-block` display not defined in IE 8/9. 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. */ -audio, canvas, progress, video { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ } - -/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */ -audio:not([controls]) { display: none; height: 0; } - -/** Address `[hidden]` styling not present in IE 8/9/10. Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. */ -[hidden], template { display: none; } - -/* Links ========================================================================== */ -/** Remove the gray background color from active links in IE 10. */ -a { background-color: transparent; } - -/** Improve readability when focused and also mouse hovered in all browsers. */ -a:active, a:hover { outline: 0; } - -/* Text-level semantics ========================================================================== */ -/** Address styling not present in IE 8/9/10/11, Safari, and Chrome. */ -abbr[title] { border-bottom: 1px dotted; } - -/** Address style set to `bolder` in Firefox 4+, Safari, and Chrome. */ -b, strong { font-weight: bold; } - -/** Address styling not present in Safari and Chrome. */ -dfn { font-style: italic; } - -/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari, and Chrome. */ -h1 { font-size: 2em; margin: 0.67em 0; } - -/** Address styling not present in IE 8/9. */ -mark { background: #ff0; color: #000; } - -/** Address inconsistent and variable font size in all browsers. */ -small { font-size: 80%; } - -/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */ -sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } - -sup { top: -0.5em; } - -sub { bottom: -0.25em; } - -/* Embedded content ========================================================================== */ -/** Remove border when inside `a` element in IE 8/9/10. */ -img { border: 0; } - -/** Correct overflow not hidden in IE 9/10/11. */ -svg:not(:root) { overflow: hidden; } - -/* Grouping content ========================================================================== */ -/** Address margin not present in IE 8/9 and Safari. */ -figure { margin: 1em 40px; } - -/** Address differences between Firefox and other browsers. */ -hr { -moz-box-sizing: content-box; box-sizing: content-box; height: 0; } - -/** Contain overflow in all browsers. */ -pre { overflow: auto; } - -/** Address odd `em`-unit font size rendering in all browsers. */ -code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; } - -/* Forms ========================================================================== */ -/** Known limitation: by default, Chrome and Safari on OS X allow very limited styling of `select`, unless a `border` property is set. */ -/** 1. Correct color not being inherited. Known issue: affects color of disabled elements. 2. Correct font properties not being inherited. 3. Address margins set differently in Firefox 4+, Safari, and Chrome. */ -button, input, optgroup, select, textarea { color: inherit; /* 1 */ font: inherit; /* 2 */ margin: 0; /* 3 */ } - -/** Address `overflow` set to `hidden` in IE 8/9/10/11. */ -button { overflow: visible; } - -/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. Correct `select` style inheritance in Firefox. */ -button, select { text-transform: none; } - -/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */ -button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ } - -/** Re-set default cursor for disabled elements. */ -button[disabled], html input[disabled] { cursor: default; } - -/** Remove inner padding and border in Firefox 4+. */ -button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } - -/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */ -input { line-height: normal; } - -/** It's recommended that you don't attempt to style these elements. Firefox's implementation doesn't respect box-sizing, padding, or width. 1. Address box sizing set to `content-box` in IE 8/9/10. 2. Remove excess padding in IE 8/9/10. */ -input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } - -/** Fix the cursor style for Chrome's increment/decrement buttons. For certain `font-size` values of the `input`, it causes the cursor style of the decrement button to change from `default` to `text`. */ -input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; } - -/** 1. Address `appearance` set to `searchfield` in Safari and Chrome. 2. Address `box-sizing` set to `border-box` in Safari and Chrome (include `-moz` to future-proof). */ -input[type="search"] { -webkit-appearance: textfield; /* 1 */ -moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */ box-sizing: content-box; } - -/** Remove inner padding and search cancel button in Safari and Chrome on OS X. Safari (but not Chrome) clips the cancel button when the search input has padding (and `textfield` appearance). */ -input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } - -/** Define consistent border, margin, and padding. */ -fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } - -/** 1. Correct `color` not being inherited in IE 8/9/10/11. 2. Remove padding so people aren't caught out if they zero out fieldsets. */ -legend { border: 0; /* 1 */ padding: 0; /* 2 */ } - -/** Remove default vertical scrollbar in IE 8/9/10/11. */ -textarea { overflow: auto; } - -/** Don't inherit the `font-weight` (applied by a rule above). NOTE: the default cannot safely be changed in Chrome and Safari on OS X. */ -optgroup { font-weight: bold; } - -/* Tables ========================================================================== */ -/** Remove most spacing between table cells. */ -table { border-collapse: collapse; border-spacing: 0; } - -td, th { padding: 0; } - -* { box-sizing: border-box; } - -::selection { color: #fff; background: #2c84fa; } - -html { font-size: 15px !important; scroll-behavior: smooth; } -@media (min-width: 31.25rem) { html { font-size: 16px !important; } } - -body { font-family: -apple-system, BlinkMacSystemFont, "helvetica neue", helvetica, roboto, noto, "segoe ui", arial, sans-serif; font-size: inherit; line-height: 1.4; color: #5c5962; background-color: #fff; } - -ol, ul, dl, pre, address, blockquote, table, div, hr, form, fieldset, noscript .table-wrapper { margin-top: 0; } - -h1, h2, h3, h4, h5, h6 { margin-top: 0; margin-bottom: 1em; font-weight: 500; line-height: 1.25; color: #2869e6; } - -p { margin-top: 1em; margin-bottom: 1em; } - -a { color: #2c84fa; text-decoration: none; } - -a:not([class]) { text-decoration: none; background-image: linear-gradient(#eeebee 0%, #eeebee 100%); background-repeat: repeat-x; background-position: 0 100%; background-size: 1px 1px; } -a:not([class]):hover { background-image: linear-gradient(rgba(44, 132, 250, 0.45) 0%, rgba(44, 132, 250, 0.45) 100%); background-size: 1px 1px; } - -code { font-family: "SFMono-Regular", Menlo, Consolas, Monospace; font-size: 0.75em; line-height: 1.4; } - -figure, pre { margin: 0; } - -li { margin: 0.25em 0; } - -img { max-width: 100%; height: auto; } - -hr { height: 1px; padding: 0; margin: 2rem 0; background-color: #eeebee; border: 0; } - -.side-bar { z-index: 0; display: flex; flex-wrap: wrap; background-color: #003a48; } -@media (min-width: 50rem) { .side-bar { flex-wrap: nowrap; position: fixed; width: 248px; height: 100%; flex-direction: column; border-right: 1px solid #eeebee; align-items: flex-end; } } -@media (min-width: 66.5rem) { .side-bar { width: calc((100% - 1064px) / 2 + 264px); min-width: 264px; } } - -@media (min-width: 50rem) { .main { position: relative; max-width: 800px; margin-left: 248px; } } -@media (min-width: 66.5rem) { .main { margin-left: calc( (100% - 1064px) / 2 + 264px ); } } - -.main-content-wrap { padding-right: 1rem; padding-left: 1rem; padding-top: 1rem; padding-bottom: 1rem; } -@media (min-width: 50rem) { .main-content-wrap { padding-right: 2rem; padding-left: 2rem; } } -@media (min-width: 50rem) { .main-content-wrap { padding-top: 2rem; padding-bottom: 2rem; } } - -.main-header { z-index: 0; display: none; background-color: #003a48; } -@media (min-width: 50rem) { .main-header { display: flex; justify-content: space-between; height: 150px; background-color: #fff; border-bottom: 1px solid #eeebee; } } -.main-header.nav-open { display: block; } -@media (min-width: 50rem) { .main-header.nav-open { display: flex; } } - -.site-nav, .site-header, .site-footer { width: 100%; } -@media (min-width: 66.5rem) { .site-nav, .site-header, .site-footer { width: 264px; } } - -.site-nav { display: none; } -.site-nav.nav-open { display: block; } -@media (min-width: 50rem) { .site-nav { display: block; padding-top: 3rem; padding-bottom: 1rem; overflow-y: auto; flex: 1 1 auto; } } - -.site-header { display: flex; min-height: 150px; align-items: center; } -@media (min-width: 50rem) { .site-header { height: 150px; max-height: 150px; border-bottom: 1px solid #eeebee; } } - -.site-title { padding-right: 1rem; padding-left: 1rem; flex-grow: 1; display: flex; height: 100%; align-items: center; padding-top: 0.75rem; padding-bottom: 0.75rem; color: #2869e6; font-size: 18px !important; } -@media (min-width: 50rem) { .site-title { padding-right: 2rem; padding-left: 2rem; } } -@media (min-width: 31.25rem) { .site-title { font-size: 24px !important; line-height: 1.25; } } -@media (min-width: 50rem) { .site-title { padding-top: 0.5rem; padding-bottom: 0.5rem; } } - -.site-logo { width: 100%; height: 100%; background-image: url("../../assets/images/vendor/microchip_mplab_harmony_logo_150_transparent.png"); background-repeat: no-repeat; background-position: left center; background-size: contain; } - -.site-button { display: flex; height: 100%; padding: 1rem; align-items: center; } - -@media (min-width: 50rem) { .site-header .site-button { display: none; } } -.site-title:hover { background-image: linear-gradient(-90deg, #002e39 0%, rgba(0, 46, 57, 0.8) 80%, rgba(0, 46, 57, 0) 100%); } - -.site-button:hover { background-image: linear-gradient(-90deg, #002e39 0%, rgba(0, 46, 57, 0.8) 100%); } - -body { position: relative; padding-bottom: 4rem; overflow-y: scroll; } -@media (min-width: 50rem) { body { position: static; padding-bottom: 0; } } - -.site-footer { padding-right: 1rem; padding-left: 1rem; position: absolute; bottom: 0; left: 0; padding-top: 1rem; padding-bottom: 1rem; color: #959396; font-size: 11px !important; } -@media (min-width: 50rem) { .site-footer { padding-right: 2rem; padding-left: 2rem; } } -@media (min-width: 31.25rem) { .site-footer { font-size: 12px !important; } } -@media (min-width: 50rem) { .site-footer { position: static; justify-self: end; } } - -.icon { width: 1.5rem; height: 1.5rem; color: #2c84fa; } - -.main-content { line-height: 1.6; } -.main-content ol, .main-content ul, .main-content dl, .main-content pre, .main-content address, .main-content blockquote, .main-content .table-wrapper { margin-top: 0.5em; } -.main-content a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } -.main-content ul, .main-content ol { padding-left: 1.5em; } -.main-content li .highlight { margin-top: 0.25rem; } -.main-content ol { list-style-type: none; counter-reset: step-counter; } -.main-content ol > li { position: relative; } -.main-content ol > li::before { position: absolute; top: 0.2em; left: -1.6em; color: #959396; content: counter(step-counter); counter-increment: step-counter; font-size: 12px !important; } -@media (min-width: 31.25rem) { .main-content ol > li::before { font-size: 14px !important; } } -@media (min-width: 31.25rem) { .main-content ol > li::before { top: 0.11em; } } -.main-content ol > li ol { counter-reset: sub-counter; } -.main-content ol > li ol li::before { content: counter(sub-counter,lower-alpha); counter-increment: sub-counter; } -.main-content ul { list-style: none; } -.main-content ul > li::before { position: absolute; margin-left: -1.4em; color: #959396; content: "•"; } -.main-content .task-list { padding-left: 0; } -.main-content .task-list-item { display: flex; align-items: center; } -.main-content .task-list-item::before { content: ""; } -.main-content .task-list-item-checkbox { margin-right: 0.6em; } -.main-content hr + * { margin-top: 0; } -.main-content h1:first-of-type { margin-top: 0.5em; } -.main-content dl { display: grid; grid-template-columns: max-content 1fr; } -.main-content dt, .main-content dd { margin: 0.25em 0; } -.main-content dt { text-align: right; } -.main-content dt::after { content: ":"; } -.main-content dd { margin-left: 1em; font-weight: 500; } -.main-content .anchor-heading { position: absolute; right: -1rem; width: 1.5rem; height: 100%; padding-right: 0.25rem; padding-left: 0.25rem; overflow: visible; } -@media (min-width: 50rem) { .main-content .anchor-heading { right: auto; left: -1.5rem; } } -.main-content .anchor-heading svg { display: inline-block; width: 100%; height: 100%; color: #2c84fa; visibility: hidden; } -.main-content .anchor-heading:hover svg, .main-content h1:hover > .anchor-heading svg, .main-content h2:hover > .anchor-heading svg, .main-content h3:hover > .anchor-heading svg, .main-content h4:hover > .anchor-heading svg, .main-content h5:hover > .anchor-heading svg, .main-content h6:hover > .anchor-heading svg { visibility: visible; } -.main-content summary { cursor: pointer; } -.main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6 { position: relative; margin-top: 1.5em; margin-bottom: 0.25em; } -.main-content h1:first-child, .main-content h2:first-child, .main-content h3:first-child, .main-content h4:first-child, .main-content h5:first-child, .main-content h6:first-child { margin-top: 0.5rem; } -.main-content h1 + table, .main-content h1 + .table-wrapper, .main-content h1 + .code-example, .main-content h1 + .highlighter-rouge, .main-content h2 + table, .main-content h2 + .table-wrapper, .main-content h2 + .code-example, .main-content h2 + .highlighter-rouge, .main-content h3 + table, .main-content h3 + .table-wrapper, .main-content h3 + .code-example, .main-content h3 + .highlighter-rouge, .main-content h4 + table, .main-content h4 + .table-wrapper, .main-content h4 + .code-example, .main-content h4 + .highlighter-rouge, .main-content h5 + table, .main-content h5 + .table-wrapper, .main-content h5 + .code-example, .main-content h5 + .highlighter-rouge, .main-content h6 + table, .main-content h6 + .table-wrapper, .main-content h6 + .code-example, .main-content h6 + .highlighter-rouge { margin-top: 1em; } -.main-content h1 + p, .main-content h2 + p, .main-content h3 + p, .main-content h4 + p, .main-content h5 + p, .main-content h6 + p { margin-top: 0; } - -.nav-list { padding: 0; margin-top: 0; margin-bottom: 0; list-style: none; } -.nav-list .nav-list-item { font-size: 15px !important; position: relative; margin: 0; } -@media (min-width: 31.25rem) { .nav-list .nav-list-item { font-size: 16px !important; } } -@media (min-width: 50rem) { .nav-list .nav-list-item { font-size: 12px !important; } } -@media (min-width: 50rem) and (min-width: 31.25rem) { .nav-list .nav-list-item { font-size: 14px !important; } } - -.nav-list .nav-list-item .nav-list-link { display: block; min-height: 3rem; padding-top: 0.25rem; padding-bottom: 0.25rem; line-height: 2.5rem; padding-right: 3rem; padding-left: 1rem; } -@media (min-width: 50rem) { .nav-list .nav-list-item .nav-list-link { min-height: 2rem; line-height: 1.5rem; padding-right: 2rem; padding-left: 2rem; } } -.nav-list .nav-list-item .nav-list-link.active { font-weight: 600; text-decoration: none; } -.nav-list .nav-list-item .nav-list-link:hover, .nav-list .nav-list-item .nav-list-link.active { background-image: linear-gradient(-90deg, #002e39 0%, rgba(0, 46, 57, 0.8) 80%, rgba(0, 46, 57, 0) 100%); } -.nav-list .nav-list-item .nav-list-expander { position: absolute; right: 0; width: 3rem; height: 3rem; padding-top: 0.75rem; padding-right: 0.75rem; padding-bottom: 0.75rem; padding-left: 0.75rem; color: #2c84fa; } -@media (min-width: 50rem) { .nav-list .nav-list-item .nav-list-expander { width: 2rem; height: 2rem; padding-top: 0.5rem; padding-right: 0.5rem; padding-bottom: 0.5rem; padding-left: 0.5rem; } } -.nav-list .nav-list-item .nav-list-expander:hover { background-image: linear-gradient(-90deg, #002e39 0%, rgba(0, 46, 57, 0.8) 100%); } -.nav-list .nav-list-item .nav-list-expander svg { transform: rotate(90deg); } -.nav-list .nav-list-item > .nav-list { display: none; padding-left: 0.75rem; list-style: none; } -.nav-list .nav-list-item > .nav-list .nav-list-item { position: relative; } -.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-link { color: #2869e6; } -.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-expander { color: #2869e6; } -.nav-list .nav-list-item.active > .nav-list-expander svg { transform: rotate(-90deg); } -.nav-list .nav-list-item.active > .nav-list { display: block; } - -.aux-nav { height: 100%; overflow-x: auto; font-size: 11px !important; } -@media (min-width: 31.25rem) { .aux-nav { font-size: 12px !important; } } -.aux-nav .aux-nav-list { display: flex; height: 100%; padding: 0; margin: 0; list-style: none; } -.aux-nav .aux-nav-list-item { display: inline-block; height: 100%; padding: 0; margin: 0; } -@media (min-width: 50rem) { .aux-nav { padding-right: 1rem; } } - -@media (min-width: 50rem) { .breadcrumb-nav { margin-top: -1rem; } } - -.breadcrumb-nav-list { padding-left: 0; margin-bottom: 0.75rem; list-style: none; } - -.breadcrumb-nav-list-item { display: table-cell; font-size: 11px !important; } -@media (min-width: 31.25rem) { .breadcrumb-nav-list-item { font-size: 12px !important; } } -.breadcrumb-nav-list-item::before { display: none; } -.breadcrumb-nav-list-item::after { display: inline-block; margin-right: 0.5rem; margin-left: 0.5rem; color: #959396; content: "/"; } -.breadcrumb-nav-list-item:last-child::after { content: ""; } - -h1, .text-alpha { font-size: 32px !important; line-height: 1.25; font-weight: 300; } -@media (min-width: 31.25rem) { h1, .text-alpha { font-size: 36px !important; } } - -h2, .text-beta { font-size: 18px !important; } -@media (min-width: 31.25rem) { h2, .text-beta { font-size: 24px !important; line-height: 1.25; } } - -h3, .text-gamma { font-size: 16px !important; } -@media (min-width: 31.25rem) { h3, .text-gamma { font-size: 18px !important; } } - -h4, .text-delta { font-size: 11px !important; font-weight: 400; text-transform: uppercase; letter-spacing: 0.1em; } -@media (min-width: 31.25rem) { h4, .text-delta { font-size: 12px !important; } } - -h5, .text-epsilon { font-size: 12px !important; color: #44434d; } -@media (min-width: 31.25rem) { h5, .text-epsilon { font-size: 14px !important; } } - -h6, .text-zeta { font-size: 11px !important; color: #44434d; } -@media (min-width: 31.25rem) { h6, .text-zeta { font-size: 12px !important; } } - -.text-small { font-size: 11px !important; } -@media (min-width: 31.25rem) { .text-small { font-size: 12px !important; } } - -.text-mono { font-family: "SFMono-Regular", Menlo, Consolas, Monospace !important; } - -.text-left { text-align: left !important; } - -.text-center { text-align: center !important; } - -.text-right { text-align: right !important; } - -.label, .label-blue { display: inline-block; padding-top: 0.16em; padding-right: 0.56em; padding-bottom: 0.16em; padding-left: 0.56em; margin-right: 0.5rem; margin-left: 0.5rem; color: #fff; text-transform: uppercase; vertical-align: middle; background-color: #2869e6; font-size: 11px !important; border-radius: 12px; } -@media (min-width: 31.25rem) { .label, .label-blue { font-size: 12px !important; } } - -.label-green { background-color: #009c7b; } - -.label-purple { background-color: #5e41d0; } - -.label-red { background-color: #e94c4c; } - -.label-yellow { color: #44434d; background-color: #f7d12e; } - -.btn { display: inline-block; box-sizing: border-box; padding-top: 0.3em; padding-right: 1em; padding-bottom: 0.3em; padding-left: 1em; margin: 0; font-family: inherit; font-size: inherit; font-weight: 500; line-height: 1.5; color: #2c84fa; text-decoration: none; vertical-align: baseline; cursor: pointer; background-color: #f7f7f7; border-width: 0; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); appearance: none; } -.btn:focus { text-decoration: none; outline: none; box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); } -.btn:focus:hover, .btn.selected:focus { box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); } -.btn:hover, .btn.zeroclipboard-is-hover { color: #227efa; } -.btn:hover, .btn:active, .btn.zeroclipboard-is-hover, .btn.zeroclipboard-is-active { text-decoration: none; background-color: #f4f4f4; } -.btn:active, .btn.selected, .btn.zeroclipboard-is-active { background-color: #efefef; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn.selected:hover { background-color: #cfcfcf; } -.btn:disabled, .btn:disabled:hover, .btn.disabled, .btn.disabled:hover { color: rgba(102, 102, 102, 0.5); cursor: default; background-color: rgba(229, 229, 229, 0.5); background-image: none; box-shadow: none; } - -.btn-outline { color: #2c84fa; background: transparent; box-shadow: inset 0 0 0 2px #e6e1e8; } -.btn-outline:hover, .btn-outline:active, .btn-outline.zeroclipboard-is-hover, .btn-outline.zeroclipboard-is-active { color: #1878fa; text-decoration: none; background-color: transparent; box-shadow: inset 0 0 0 3px #e6e1e8; } -.btn-outline:focus { text-decoration: none; outline: none; box-shadow: inset 0 0 0 2px #5c5962, 0 0 0 3px rgba(0, 0, 255, 0.25); } -.btn-outline:focus:hover, .btn-outline.selected:focus { box-shadow: inset 0 0 0 2px #5c5962; } - -.btn-primary { color: #fff; background-color: #5739ce; background-image: linear-gradient(#6f55d5, #5739ce); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-primary:hover, .btn-primary.zeroclipboard-is-hover { color: #fff; background-color: #5132cb; background-image: linear-gradient(#6549d2, #5132cb); } -.btn-primary:active, .btn-primary.selected, .btn-primary.zeroclipboard-is-active { background-color: #4f31c6; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-primary.selected:hover { background-color: #472cb2; } - -.btn-purple { color: #fff; background-color: #5739ce; background-image: linear-gradient(#6f55d5, #5739ce); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-purple:hover, .btn-purple.zeroclipboard-is-hover { color: #fff; background-color: #5132cb; background-image: linear-gradient(#6549d2, #5132cb); } -.btn-purple:active, .btn-purple.selected, .btn-purple.zeroclipboard-is-active { background-color: #4f31c6; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-purple.selected:hover { background-color: #472cb2; } - -.btn-blue { color: #fff; background-color: #227efa; background-image: linear-gradient(#4593fb, #227efa); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-blue:hover, .btn-blue.zeroclipboard-is-hover { color: #fff; background-color: #1878fa; background-image: linear-gradient(#368afa, #1878fa); } -.btn-blue:active, .btn-blue.selected, .btn-blue.zeroclipboard-is-active { background-color: #1375f9; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-blue.selected:hover { background-color: #0669ed; } - -.btn-green { color: #fff; background-color: #10ac7d; background-image: linear-gradient(#13cc95, #10ac7d); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-green:hover, .btn-green.zeroclipboard-is-hover { color: #fff; background-color: #0fa276; background-image: linear-gradient(#12be8b, #0fa276); } -.btn-green:active, .btn-green.selected, .btn-green.zeroclipboard-is-active { background-color: #0f9e73; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-green.selected:hover { background-color: #0d8662; } - -.search { position: relative; z-index: 2; flex-grow: 1; height: 4rem; padding: 0.5rem; transition: padding linear 200ms; } -@media (min-width: 50rem) { .search { position: relative !important; width: auto !important; height: 100% !important; padding: 0; transition: none; } } - -.search-input-wrap { position: relative; z-index: 1; height: 3rem; overflow: hidden; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); transition: height linear 200ms; } -@media (min-width: 50rem) { .search-input-wrap { position: absolute; width: 100%; max-width: 536px; height: 100% !important; border-radius: 0; box-shadow: none; transition: width ease 400ms; } } - -.search-input { position: absolute; width: 100%; height: 100%; padding-top: 0.5rem; padding-right: 1rem; padding-bottom: 0.5rem; padding-left: 2.5rem; font-size: 16px; background-color: #fff; border-top: 0; border-right: 0; border-bottom: 0; border-left: 0; border-radius: 0; } -@media (min-width: 50rem) { .search-input { padding-top: 1rem; padding-bottom: 1rem; padding-left: 3.5rem; font-size: 14px; background-color: #fff; transition: padding-left linear 200ms; } } -.search-input:focus { outline: 0; } -.search-input:focus + .search-label .search-icon { color: #2c84fa; } - -.search-label { position: absolute; display: flex; height: 100%; padding-left: 1rem; } -@media (min-width: 50rem) { .search-label { padding-left: 2rem; transition: padding-left linear 200ms; } } -.search-label .search-icon { width: 1.2rem; height: 1.2rem; align-self: center; color: #959396; } - -.search-results { position: absolute; left: 0; display: none; width: 100%; max-height: calc(100% - 4rem); overflow-y: auto; background-color: #fff; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } -@media (min-width: 50rem) { .search-results { top: 100%; width: 536px; max-height: calc(100vh - 200%) !important; } } - -.search-results-list { padding-left: 0; margin-bottom: 0.25rem; list-style: none; font-size: 15px !important; } -@media (min-width: 31.25rem) { .search-results-list { font-size: 16px !important; } } -@media (min-width: 50rem) { .search-results-list { font-size: 12px !important; } } -@media (min-width: 50rem) and (min-width: 31.25rem) { .search-results-list { font-size: 14px !important; } } - -.search-results-list-item { padding: 0; margin: 0; } - -.search-result { display: block; padding-top: 0.25rem; padding-right: 0.75rem; padding-bottom: 0.25rem; padding-left: 0.75rem; } -.search-result:hover, .search-result.active { background-color: #002e39; } - -.search-result-title { display: block; padding-top: 0.5rem; padding-bottom: 0.5rem; } -@media (min-width: 31.25rem) { .search-result-title { display: inline-block; width: 40%; padding-right: 0.5rem; vertical-align: top; } } - -.search-result-doc { display: flex; align-items: center; word-wrap: break-word; } -.search-result-doc.search-result-doc-parent { opacity: 0.5; font-size: 12px !important; } -@media (min-width: 31.25rem) { .search-result-doc.search-result-doc-parent { font-size: 14px !important; } } -@media (min-width: 50rem) { .search-result-doc.search-result-doc-parent { font-size: 11px !important; } } -@media (min-width: 50rem) and (min-width: 31.25rem) { .search-result-doc.search-result-doc-parent { font-size: 12px !important; } } - -.search-result-doc .search-result-icon { width: 1rem; height: 1rem; margin-right: 0.5rem; color: #2c84fa; flex-shrink: 0; } -.search-result-doc .search-result-doc-title { overflow: auto; } - -.search-result-section { margin-left: 1.5rem; word-wrap: break-word; } - -.search-result-rel-url { display: block; margin-left: 1.5rem; overflow: hidden; color: #959396; text-overflow: ellipsis; white-space: nowrap; font-size: 9px !important; } -@media (min-width: 31.25rem) { .search-result-rel-url { font-size: 10px !important; } } - -.search-result-previews { display: block; padding-top: 0.5rem; padding-bottom: 0.5rem; padding-left: 1rem; margin-left: 0.5rem; color: #959396; word-wrap: break-word; border-left: 1px solid; border-left-color: #eeebee; font-size: 11px !important; } -@media (min-width: 31.25rem) { .search-result-previews { font-size: 12px !important; } } -@media (min-width: 31.25rem) { .search-result-previews { display: inline-block; width: 60%; padding-left: 0.5rem; margin-left: 0; vertical-align: top; } } - -.search-result-preview + .search-result-preview { margin-top: 0.25rem; } - -.search-result-highlight { font-weight: bold; } - -.search-no-result { padding-top: 0.5rem; padding-right: 0.75rem; padding-bottom: 0.5rem; padding-left: 0.75rem; font-size: 12px !important; } -@media (min-width: 31.25rem) { .search-no-result { font-size: 14px !important; } } - -.search-button { position: fixed; right: 1rem; bottom: 1rem; display: flex; width: 3.5rem; height: 3.5rem; background-color: #fff; border: 1px solid rgba(44, 132, 250, 0.3); border-radius: 1.75rem; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); align-items: center; justify-content: center; } - -.search-overlay { position: fixed; top: 0; left: 0; z-index: 1; width: 0; height: 0; background-color: rgba(0, 0, 0, 0.3); opacity: 0; transition: opacity ease 400ms, width 0s 400ms, height 0s 400ms; } - -.search-active .search { position: fixed; top: 0; left: 0; width: 100%; height: 100%; padding: 0; } -.search-active .search-input-wrap { height: 4rem; border-radius: 0; } -@media (min-width: 50rem) { .search-active .search-input-wrap { width: 536px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } } -.search-active .search-input { background-color: #fff; } -@media (min-width: 50rem) { .search-active .search-input { padding-left: 2.75rem; } } -@media (min-width: 50rem) { .search-active .search-label { padding-left: 1.25rem; } } -.search-active .search-results { display: block; } -.search-active .search-overlay { width: 100%; height: 100%; opacity: 1; transition: opacity ease 400ms, width 0s, height 0s; } -@media (min-width: 50rem) { .search-active .main { position: fixed; right: 0; left: 0; } } -.search-active .main-header { padding-top: 4rem; } -@media (min-width: 50rem) { .search-active .main-header { padding-top: 0; } } - -.table-wrapper { display: block; width: 100%; max-width: 100%; margin-bottom: 1.5rem; overflow-x: auto; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } - -table { display: table; min-width: 100%; border-collapse: separate; } - -th, td { font-size: 12px !important; min-width: 120px; padding-top: 0.5rem; padding-right: 0.75rem; padding-bottom: 0.5rem; padding-left: 0.75rem; background-color: #fff; border-bottom: 1px solid rgba(238, 235, 238, 0.5); border-left: 1px solid #eeebee; } -@media (min-width: 31.25rem) { th, td { font-size: 14px !important; } } -th:first-of-type, td:first-of-type { border-left: 0; } - -tbody tr:last-of-type th, tbody tr:last-of-type td { border-bottom: 0; } -tbody tr:last-of-type td { padding-bottom: 0.75rem; } - -thead th { border-bottom: 1px solid #eeebee; } - -code { padding: 0.2em 0.15em; font-weight: 400; background-color: #f5f6fa; border: 1px solid #eeebee; border-radius: 4px; } - -pre.highlight, figure.highlight { padding: 0.75rem; margin-top: 0; margin-bottom: 0; background-color: #f5f6fa; border-radius: 4px; -webkit-overflow-scrolling: touch; } -pre.highlight code, figure.highlight code { padding: 0; border: 0; } - -.highlighter-rouge { margin-bottom: 0.75rem; } - -.highlight .c { color: #586e75; } - -.highlight .err { color: #93a1a1; } - -.highlight .g { color: #93a1a1; } - -.highlight .k { color: #859900; } - -.highlight .l { color: #93a1a1; } - -.highlight .n { color: #93a1a1; } - -.highlight .o { color: #859900; } - -.highlight .x { color: #cb4b16; } - -.highlight .p { color: #93a1a1; } - -.highlight .cm { color: #586e75; } - -.highlight .cp { color: #859900; } - -.highlight .c1 { color: #586e75; } - -.highlight .cs { color: #859900; } - -.highlight .gd { color: #2aa198; } - -.highlight .ge { font-style: italic; color: #93a1a1; } - -.highlight .gr { color: #dc322f; } - -.highlight .gh { color: #cb4b16; } - -.highlight .gi { color: #859900; } - -.highlight .go { color: #93a1a1; } - -.highlight .gp { color: #93a1a1; } - -.highlight .gs { font-weight: bold; color: #93a1a1; } - -.highlight .gu { color: #cb4b16; } - -.highlight .gt { color: #93a1a1; } - -.highlight .kc { color: #cb4b16; } - -.highlight .kd { color: #268bd2; } - -.highlight .kn { color: #859900; } - -.highlight .kp { color: #859900; } - -.highlight .kr { color: #268bd2; } - -.highlight .kt { color: #dc322f; } - -.highlight .ld { color: #93a1a1; } - -.highlight .m { color: #2aa198; } - -.highlight .s { color: #2aa198; } - -.highlight .na { color: #555; } - -.highlight .nb { color: #b58900; } - -.highlight .nc { color: #268bd2; } - -.highlight .no { color: #cb4b16; } - -.highlight .nd { color: #268bd2; } - -.highlight .ni { color: #cb4b16; } - -.highlight .ne { color: #cb4b16; } - -.highlight .nf { color: #268bd2; } - -.highlight .nl { color: #555; } - -.highlight .nn { color: #93a1a1; } - -.highlight .nx { color: #555; } - -.highlight .py { color: #93a1a1; } - -.highlight .nt { color: #268bd2; } - -.highlight .nv { color: #268bd2; } - -.highlight .ow { color: #859900; } - -.highlight .w { color: #93a1a1; } - -.highlight .mf { color: #2aa198; } - -.highlight .mh { color: #2aa198; } - -.highlight .mi { color: #2aa198; } - -.highlight .mo { color: #2aa198; } - -.highlight .sb { color: #586e75; } - -.highlight .sc { color: #2aa198; } - -.highlight .sd { color: #93a1a1; } - -.highlight .s2 { color: #2aa198; } - -.highlight .se { color: #cb4b16; } - -.highlight .sh { color: #93a1a1; } - -.highlight .si { color: #2aa198; } - -.highlight .sx { color: #2aa198; } - -.highlight .sr { color: #dc322f; } - -.highlight .s1 { color: #2aa198; } - -.highlight .ss { color: #2aa198; } - -.highlight .bp { color: #268bd2; } - -.highlight .vc { color: #268bd2; } - -.highlight .vg { color: #268bd2; } - -.highlight .vi { color: #268bd2; } - -.highlight .il { color: #2aa198; } - -.code-example { padding: 0.75rem; margin-bottom: 0.75rem; overflow: auto; border: 1px solid #eeebee; border-radius: 4px; } -.code-example + .highlighter-rouge, .code-example + figure.highlight { position: relative; margin-top: -1rem; border-right: 1px solid #eeebee; border-bottom: 1px solid #eeebee; border-left: 1px solid #eeebee; border-top-left-radius: 0; border-top-right-radius: 0; } - -.text-grey-dk-000 { color: #959396 !important; } - -.text-grey-dk-100 { color: #5c5962 !important; } - -.text-grey-dk-200 { color: #44434d !important; } - -.text-grey-dk-250 { color: #302d36 !important; } - -.text-grey-dk-300 { color: #27262b !important; } - -.text-grey-lt-000 { color: #f5f6fa !important; } - -.text-grey-lt-100 { color: #eeebee !important; } - -.text-grey-lt-200 { color: #ecebed !important; } - -.text-grey-lt-300 { color: #e6e1e8 !important; } - -.text-blue-000 { color: #2c84fa !important; } - -.text-blue-100 { color: #2869e6 !important; } - -.text-blue-200 { color: #264caf !important; } - -.text-blue-300 { color: #183385 !important; } - -.text-green-000 { color: #41d693 !important; } - -.text-green-100 { color: #11b584 !important; } - -.text-green-200 { color: #009c7b !important; } - -.text-green-300 { color: #026e57 !important; } - -.text-purple-000 { color: #7253ed !important; } - -.text-purple-100 { color: #5e41d0 !important; } - -.text-purple-200 { color: #4e26af !important; } - -.text-purple-300 { color: #381885 !important; } - -.text-yellow-000 { color: #ffeb82 !important; } - -.text-yellow-100 { color: #fadf50 !important; } - -.text-yellow-200 { color: #f7d12e !important; } - -.text-yellow-300 { color: #e7af06 !important; } - -.text-red-000 { color: #f77e7e !important; } - -.text-red-100 { color: #f96e65 !important; } - -.text-red-200 { color: #e94c4c !important; } - -.text-red-300 { color: #dd2e2e !important; } - -.bg-grey-dk-000 { background-color: #959396 !important; } - -.bg-grey-dk-100 { background-color: #5c5962 !important; } - -.bg-grey-dk-200 { background-color: #44434d !important; } - -.bg-grey-dk-250 { background-color: #302d36 !important; } - -.bg-grey-dk-300 { background-color: #27262b !important; } - -.bg-grey-lt-000 { background-color: #f5f6fa !important; } - -.bg-grey-lt-100 { background-color: #eeebee !important; } - -.bg-grey-lt-200 { background-color: #ecebed !important; } - -.bg-grey-lt-300 { background-color: #e6e1e8 !important; } - -.bg-blue-000 { background-color: #2c84fa !important; } - -.bg-blue-100 { background-color: #2869e6 !important; } - -.bg-blue-200 { background-color: #264caf !important; } - -.bg-blue-300 { background-color: #183385 !important; } - -.bg-green-000 { background-color: #41d693 !important; } - -.bg-green-100 { background-color: #11b584 !important; } - -.bg-green-200 { background-color: #009c7b !important; } - -.bg-green-300 { background-color: #026e57 !important; } - -.bg-purple-000 { background-color: #7253ed !important; } - -.bg-purple-100 { background-color: #5e41d0 !important; } - -.bg-purple-200 { background-color: #4e26af !important; } - -.bg-purple-300 { background-color: #381885 !important; } - -.bg-yellow-000 { background-color: #ffeb82 !important; } - -.bg-yellow-100 { background-color: #fadf50 !important; } - -.bg-yellow-200 { background-color: #f7d12e !important; } - -.bg-yellow-300 { background-color: #e7af06 !important; } - -.bg-red-000 { background-color: #f77e7e !important; } - -.bg-red-100 { background-color: #f96e65 !important; } - -.bg-red-200 { background-color: #e94c4c !important; } - -.bg-red-300 { background-color: #dd2e2e !important; } - -.d-block { display: block !important; } - -.d-flex { display: flex !important; } - -.d-inline { display: inline !important; } - -.d-inline-block { display: inline-block !important; } - -.d-none { display: none !important; } - -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -.float-left { float: left !important; } - -.float-right { float: right !important; } - -.flex-justify-start { justify-content: flex-start !important; } - -.flex-justify-end { justify-content: flex-end !important; } - -.flex-justify-between { justify-content: space-between !important; } - -.flex-justify-around { justify-content: space-around !important; } - -.v-align-baseline { vertical-align: baseline !important; } - -.v-align-bottom { vertical-align: bottom !important; } - -.v-align-middle { vertical-align: middle !important; } - -.v-align-text-bottom { vertical-align: text-bottom !important; } - -.v-align-text-top { vertical-align: text-top !important; } - -.v-align-top { vertical-align: top !important; } - -.fs-1 { font-size: 9px !important; } -@media (min-width: 31.25rem) { .fs-1 { font-size: 10px !important; } } - -.fs-2 { font-size: 11px !important; } -@media (min-width: 31.25rem) { .fs-2 { font-size: 12px !important; } } - -.fs-3 { font-size: 12px !important; } -@media (min-width: 31.25rem) { .fs-3 { font-size: 14px !important; } } - -.fs-4 { font-size: 15px !important; } -@media (min-width: 31.25rem) { .fs-4 { font-size: 16px !important; } } - -.fs-5 { font-size: 16px !important; } -@media (min-width: 31.25rem) { .fs-5 { font-size: 18px !important; } } - -.fs-6 { font-size: 18px !important; } -@media (min-width: 31.25rem) { .fs-6 { font-size: 24px !important; line-height: 1.25; } } - -.fs-7 { font-size: 24px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-7 { font-size: 32px !important; } } - -.fs-8 { font-size: 32px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-8 { font-size: 36px !important; } } - -.fs-9 { font-size: 36px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-9 { font-size: 42px !important; } } - -.fs-10 { font-size: 42px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-10 { font-size: 48px !important; } } - -.fw-300 { font-weight: 300 !important; } - -.fw-400 { font-weight: 400 !important; } - -.fw-500 { font-weight: 500 !important; } - -.fw-700 { font-weight: 700 !important; } - -.lh-0 { line-height: 0 !important; } - -.lh-default { line-height: 1.4; } - -.lh-tight { line-height: 1.25; } - -.ls-5 { letter-spacing: 0.05em !important; } - -.ls-10 { letter-spacing: 0.1em !important; } - -.ls-0 { letter-spacing: 0 !important; } - -.text-uppercase { text-transform: uppercase !important; } - -.list-style-none { padding: 0 !important; margin: 0 !important; list-style: none !important; } -.list-style-none li::before { display: none !important; } - -.mx-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-0 { margin: 0 !important; } - -.mt-0 { margin-top: 0 !important; } - -.mr-0 { margin-right: 0 !important; } - -.mb-0 { margin-bottom: 0 !important; } - -.ml-0 { margin-left: 0 !important; } - -.mx-0 { margin-right: 0 !important; margin-left: 0 !important; } - -.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - -.mxn-0 { margin-right: -0 !important; margin-left: -0 !important; } - -.mx-0-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-1 { margin: 0.25rem !important; } - -.mt-1 { margin-top: 0.25rem !important; } - -.mr-1 { margin-right: 0.25rem !important; } - -.mb-1 { margin-bottom: 0.25rem !important; } - -.ml-1 { margin-left: 0.25rem !important; } - -.mx-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - -.my-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - -.mxn-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } - -.mx-1-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-2 { margin: 0.5rem !important; } - -.mt-2 { margin-top: 0.5rem !important; } - -.mr-2 { margin-right: 0.5rem !important; } - -.mb-2 { margin-bottom: 0.5rem !important; } - -.ml-2 { margin-left: 0.5rem !important; } - -.mx-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - -.my-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - -.mxn-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } - -.mx-2-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-3 { margin: 0.75rem !important; } - -.mt-3 { margin-top: 0.75rem !important; } - -.mr-3 { margin-right: 0.75rem !important; } - -.mb-3 { margin-bottom: 0.75rem !important; } - -.ml-3 { margin-left: 0.75rem !important; } - -.mx-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - -.my-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - -.mxn-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } - -.mx-3-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-4 { margin: 1rem !important; } - -.mt-4 { margin-top: 1rem !important; } - -.mr-4 { margin-right: 1rem !important; } - -.mb-4 { margin-bottom: 1rem !important; } - -.ml-4 { margin-left: 1rem !important; } - -.mx-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - -.my-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - -.mxn-4 { margin-right: -1rem !important; margin-left: -1rem !important; } - -.mx-4-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-5 { margin: 1.5rem !important; } - -.mt-5 { margin-top: 1.5rem !important; } - -.mr-5 { margin-right: 1.5rem !important; } - -.mb-5 { margin-bottom: 1.5rem !important; } - -.ml-5 { margin-left: 1.5rem !important; } - -.mx-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - -.my-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - -.mxn-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } - -.mx-5-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-6 { margin: 2rem !important; } - -.mt-6 { margin-top: 2rem !important; } - -.mr-6 { margin-right: 2rem !important; } - -.mb-6 { margin-bottom: 2rem !important; } - -.ml-6 { margin-left: 2rem !important; } - -.mx-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - -.my-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - -.mxn-6 { margin-right: -2rem !important; margin-left: -2rem !important; } - -.mx-6-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-7 { margin: 2.5rem !important; } - -.mt-7 { margin-top: 2.5rem !important; } - -.mr-7 { margin-right: 2.5rem !important; } - -.mb-7 { margin-bottom: 2.5rem !important; } - -.ml-7 { margin-left: 2.5rem !important; } - -.mx-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - -.my-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - -.mxn-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } - -.mx-7-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-8 { margin: 3rem !important; } - -.mt-8 { margin-top: 3rem !important; } - -.mr-8 { margin-right: 3rem !important; } - -.mb-8 { margin-bottom: 3rem !important; } - -.ml-8 { margin-left: 3rem !important; } - -.mx-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - -.my-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - -.mxn-8 { margin-right: -3rem !important; margin-left: -3rem !important; } - -.mx-8-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-9 { margin: 3.5rem !important; } - -.mt-9 { margin-top: 3.5rem !important; } - -.mr-9 { margin-right: 3.5rem !important; } - -.mb-9 { margin-bottom: 3.5rem !important; } - -.ml-9 { margin-left: 3.5rem !important; } - -.mx-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - -.my-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - -.mxn-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } - -.mx-9-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-10 { margin: 4rem !important; } - -.mt-10 { margin-top: 4rem !important; } - -.mr-10 { margin-right: 4rem !important; } - -.mb-10 { margin-bottom: 4rem !important; } - -.ml-10 { margin-left: 4rem !important; } - -.mx-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - -.my-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - -.mxn-10 { margin-right: -4rem !important; margin-left: -4rem !important; } - -.mx-10-auto { margin-right: auto !important; margin-left: auto !important; } - -@media (min-width: 20rem) { .m-xs-0 { margin: 0 !important; } - .mt-xs-0 { margin-top: 0 !important; } - .mr-xs-0 { margin-right: 0 !important; } - .mb-xs-0 { margin-bottom: 0 !important; } - .ml-xs-0 { margin-left: 0 !important; } - .mx-xs-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-xs-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-xs-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 20rem) { .m-xs-1 { margin: 0.25rem !important; } - .mt-xs-1 { margin-top: 0.25rem !important; } - .mr-xs-1 { margin-right: 0.25rem !important; } - .mb-xs-1 { margin-bottom: 0.25rem !important; } - .ml-xs-1 { margin-left: 0.25rem !important; } - .mx-xs-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-xs-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-xs-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 20rem) { .m-xs-2 { margin: 0.5rem !important; } - .mt-xs-2 { margin-top: 0.5rem !important; } - .mr-xs-2 { margin-right: 0.5rem !important; } - .mb-xs-2 { margin-bottom: 0.5rem !important; } - .ml-xs-2 { margin-left: 0.5rem !important; } - .mx-xs-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-xs-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-xs-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 20rem) { .m-xs-3 { margin: 0.75rem !important; } - .mt-xs-3 { margin-top: 0.75rem !important; } - .mr-xs-3 { margin-right: 0.75rem !important; } - .mb-xs-3 { margin-bottom: 0.75rem !important; } - .ml-xs-3 { margin-left: 0.75rem !important; } - .mx-xs-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-xs-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-xs-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 20rem) { .m-xs-4 { margin: 1rem !important; } - .mt-xs-4 { margin-top: 1rem !important; } - .mr-xs-4 { margin-right: 1rem !important; } - .mb-xs-4 { margin-bottom: 1rem !important; } - .ml-xs-4 { margin-left: 1rem !important; } - .mx-xs-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-xs-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-xs-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 20rem) { .m-xs-5 { margin: 1.5rem !important; } - .mt-xs-5 { margin-top: 1.5rem !important; } - .mr-xs-5 { margin-right: 1.5rem !important; } - .mb-xs-5 { margin-bottom: 1.5rem !important; } - .ml-xs-5 { margin-left: 1.5rem !important; } - .mx-xs-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-xs-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-xs-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 20rem) { .m-xs-6 { margin: 2rem !important; } - .mt-xs-6 { margin-top: 2rem !important; } - .mr-xs-6 { margin-right: 2rem !important; } - .mb-xs-6 { margin-bottom: 2rem !important; } - .ml-xs-6 { margin-left: 2rem !important; } - .mx-xs-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-xs-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-xs-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 20rem) { .m-xs-7 { margin: 2.5rem !important; } - .mt-xs-7 { margin-top: 2.5rem !important; } - .mr-xs-7 { margin-right: 2.5rem !important; } - .mb-xs-7 { margin-bottom: 2.5rem !important; } - .ml-xs-7 { margin-left: 2.5rem !important; } - .mx-xs-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-xs-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-xs-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 20rem) { .m-xs-8 { margin: 3rem !important; } - .mt-xs-8 { margin-top: 3rem !important; } - .mr-xs-8 { margin-right: 3rem !important; } - .mb-xs-8 { margin-bottom: 3rem !important; } - .ml-xs-8 { margin-left: 3rem !important; } - .mx-xs-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-xs-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-xs-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 20rem) { .m-xs-9 { margin: 3.5rem !important; } - .mt-xs-9 { margin-top: 3.5rem !important; } - .mr-xs-9 { margin-right: 3.5rem !important; } - .mb-xs-9 { margin-bottom: 3.5rem !important; } - .ml-xs-9 { margin-left: 3.5rem !important; } - .mx-xs-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-xs-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-xs-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 20rem) { .m-xs-10 { margin: 4rem !important; } - .mt-xs-10 { margin-top: 4rem !important; } - .mr-xs-10 { margin-right: 4rem !important; } - .mb-xs-10 { margin-bottom: 4rem !important; } - .ml-xs-10 { margin-left: 4rem !important; } - .mx-xs-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-xs-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-xs-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 31.25rem) { .m-sm-0 { margin: 0 !important; } - .mt-sm-0 { margin-top: 0 !important; } - .mr-sm-0 { margin-right: 0 !important; } - .mb-sm-0 { margin-bottom: 0 !important; } - .ml-sm-0 { margin-left: 0 !important; } - .mx-sm-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-sm-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-sm-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 31.25rem) { .m-sm-1 { margin: 0.25rem !important; } - .mt-sm-1 { margin-top: 0.25rem !important; } - .mr-sm-1 { margin-right: 0.25rem !important; } - .mb-sm-1 { margin-bottom: 0.25rem !important; } - .ml-sm-1 { margin-left: 0.25rem !important; } - .mx-sm-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-sm-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-sm-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 31.25rem) { .m-sm-2 { margin: 0.5rem !important; } - .mt-sm-2 { margin-top: 0.5rem !important; } - .mr-sm-2 { margin-right: 0.5rem !important; } - .mb-sm-2 { margin-bottom: 0.5rem !important; } - .ml-sm-2 { margin-left: 0.5rem !important; } - .mx-sm-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-sm-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-sm-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-3 { margin: 0.75rem !important; } - .mt-sm-3 { margin-top: 0.75rem !important; } - .mr-sm-3 { margin-right: 0.75rem !important; } - .mb-sm-3 { margin-bottom: 0.75rem !important; } - .ml-sm-3 { margin-left: 0.75rem !important; } - .mx-sm-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-sm-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-sm-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 31.25rem) { .m-sm-4 { margin: 1rem !important; } - .mt-sm-4 { margin-top: 1rem !important; } - .mr-sm-4 { margin-right: 1rem !important; } - .mb-sm-4 { margin-bottom: 1rem !important; } - .ml-sm-4 { margin-left: 1rem !important; } - .mx-sm-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-sm-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-sm-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 31.25rem) { .m-sm-5 { margin: 1.5rem !important; } - .mt-sm-5 { margin-top: 1.5rem !important; } - .mr-sm-5 { margin-right: 1.5rem !important; } - .mb-sm-5 { margin-bottom: 1.5rem !important; } - .ml-sm-5 { margin-left: 1.5rem !important; } - .mx-sm-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-sm-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-sm-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-6 { margin: 2rem !important; } - .mt-sm-6 { margin-top: 2rem !important; } - .mr-sm-6 { margin-right: 2rem !important; } - .mb-sm-6 { margin-bottom: 2rem !important; } - .ml-sm-6 { margin-left: 2rem !important; } - .mx-sm-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-sm-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-sm-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 31.25rem) { .m-sm-7 { margin: 2.5rem !important; } - .mt-sm-7 { margin-top: 2.5rem !important; } - .mr-sm-7 { margin-right: 2.5rem !important; } - .mb-sm-7 { margin-bottom: 2.5rem !important; } - .ml-sm-7 { margin-left: 2.5rem !important; } - .mx-sm-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-sm-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-sm-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-8 { margin: 3rem !important; } - .mt-sm-8 { margin-top: 3rem !important; } - .mr-sm-8 { margin-right: 3rem !important; } - .mb-sm-8 { margin-bottom: 3rem !important; } - .ml-sm-8 { margin-left: 3rem !important; } - .mx-sm-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-sm-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-sm-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 31.25rem) { .m-sm-9 { margin: 3.5rem !important; } - .mt-sm-9 { margin-top: 3.5rem !important; } - .mr-sm-9 { margin-right: 3.5rem !important; } - .mb-sm-9 { margin-bottom: 3.5rem !important; } - .ml-sm-9 { margin-left: 3.5rem !important; } - .mx-sm-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-sm-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-sm-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-10 { margin: 4rem !important; } - .mt-sm-10 { margin-top: 4rem !important; } - .mr-sm-10 { margin-right: 4rem !important; } - .mb-sm-10 { margin-bottom: 4rem !important; } - .ml-sm-10 { margin-left: 4rem !important; } - .mx-sm-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-sm-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-sm-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 50rem) { .m-md-0 { margin: 0 !important; } - .mt-md-0 { margin-top: 0 !important; } - .mr-md-0 { margin-right: 0 !important; } - .mb-md-0 { margin-bottom: 0 !important; } - .ml-md-0 { margin-left: 0 !important; } - .mx-md-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-md-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-md-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 50rem) { .m-md-1 { margin: 0.25rem !important; } - .mt-md-1 { margin-top: 0.25rem !important; } - .mr-md-1 { margin-right: 0.25rem !important; } - .mb-md-1 { margin-bottom: 0.25rem !important; } - .ml-md-1 { margin-left: 0.25rem !important; } - .mx-md-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-md-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-md-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 50rem) { .m-md-2 { margin: 0.5rem !important; } - .mt-md-2 { margin-top: 0.5rem !important; } - .mr-md-2 { margin-right: 0.5rem !important; } - .mb-md-2 { margin-bottom: 0.5rem !important; } - .ml-md-2 { margin-left: 0.5rem !important; } - .mx-md-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-md-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-md-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 50rem) { .m-md-3 { margin: 0.75rem !important; } - .mt-md-3 { margin-top: 0.75rem !important; } - .mr-md-3 { margin-right: 0.75rem !important; } - .mb-md-3 { margin-bottom: 0.75rem !important; } - .ml-md-3 { margin-left: 0.75rem !important; } - .mx-md-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-md-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-md-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 50rem) { .m-md-4 { margin: 1rem !important; } - .mt-md-4 { margin-top: 1rem !important; } - .mr-md-4 { margin-right: 1rem !important; } - .mb-md-4 { margin-bottom: 1rem !important; } - .ml-md-4 { margin-left: 1rem !important; } - .mx-md-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-md-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-md-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 50rem) { .m-md-5 { margin: 1.5rem !important; } - .mt-md-5 { margin-top: 1.5rem !important; } - .mr-md-5 { margin-right: 1.5rem !important; } - .mb-md-5 { margin-bottom: 1.5rem !important; } - .ml-md-5 { margin-left: 1.5rem !important; } - .mx-md-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-md-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-md-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 50rem) { .m-md-6 { margin: 2rem !important; } - .mt-md-6 { margin-top: 2rem !important; } - .mr-md-6 { margin-right: 2rem !important; } - .mb-md-6 { margin-bottom: 2rem !important; } - .ml-md-6 { margin-left: 2rem !important; } - .mx-md-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-md-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-md-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 50rem) { .m-md-7 { margin: 2.5rem !important; } - .mt-md-7 { margin-top: 2.5rem !important; } - .mr-md-7 { margin-right: 2.5rem !important; } - .mb-md-7 { margin-bottom: 2.5rem !important; } - .ml-md-7 { margin-left: 2.5rem !important; } - .mx-md-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-md-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-md-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 50rem) { .m-md-8 { margin: 3rem !important; } - .mt-md-8 { margin-top: 3rem !important; } - .mr-md-8 { margin-right: 3rem !important; } - .mb-md-8 { margin-bottom: 3rem !important; } - .ml-md-8 { margin-left: 3rem !important; } - .mx-md-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-md-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-md-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 50rem) { .m-md-9 { margin: 3.5rem !important; } - .mt-md-9 { margin-top: 3.5rem !important; } - .mr-md-9 { margin-right: 3.5rem !important; } - .mb-md-9 { margin-bottom: 3.5rem !important; } - .ml-md-9 { margin-left: 3.5rem !important; } - .mx-md-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-md-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-md-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 50rem) { .m-md-10 { margin: 4rem !important; } - .mt-md-10 { margin-top: 4rem !important; } - .mr-md-10 { margin-right: 4rem !important; } - .mb-md-10 { margin-bottom: 4rem !important; } - .ml-md-10 { margin-left: 4rem !important; } - .mx-md-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-md-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-md-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 66.5rem) { .m-lg-0 { margin: 0 !important; } - .mt-lg-0 { margin-top: 0 !important; } - .mr-lg-0 { margin-right: 0 !important; } - .mb-lg-0 { margin-bottom: 0 !important; } - .ml-lg-0 { margin-left: 0 !important; } - .mx-lg-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-lg-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-lg-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 66.5rem) { .m-lg-1 { margin: 0.25rem !important; } - .mt-lg-1 { margin-top: 0.25rem !important; } - .mr-lg-1 { margin-right: 0.25rem !important; } - .mb-lg-1 { margin-bottom: 0.25rem !important; } - .ml-lg-1 { margin-left: 0.25rem !important; } - .mx-lg-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-lg-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-lg-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 66.5rem) { .m-lg-2 { margin: 0.5rem !important; } - .mt-lg-2 { margin-top: 0.5rem !important; } - .mr-lg-2 { margin-right: 0.5rem !important; } - .mb-lg-2 { margin-bottom: 0.5rem !important; } - .ml-lg-2 { margin-left: 0.5rem !important; } - .mx-lg-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-lg-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-lg-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-3 { margin: 0.75rem !important; } - .mt-lg-3 { margin-top: 0.75rem !important; } - .mr-lg-3 { margin-right: 0.75rem !important; } - .mb-lg-3 { margin-bottom: 0.75rem !important; } - .ml-lg-3 { margin-left: 0.75rem !important; } - .mx-lg-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-lg-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-lg-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 66.5rem) { .m-lg-4 { margin: 1rem !important; } - .mt-lg-4 { margin-top: 1rem !important; } - .mr-lg-4 { margin-right: 1rem !important; } - .mb-lg-4 { margin-bottom: 1rem !important; } - .ml-lg-4 { margin-left: 1rem !important; } - .mx-lg-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-lg-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-lg-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 66.5rem) { .m-lg-5 { margin: 1.5rem !important; } - .mt-lg-5 { margin-top: 1.5rem !important; } - .mr-lg-5 { margin-right: 1.5rem !important; } - .mb-lg-5 { margin-bottom: 1.5rem !important; } - .ml-lg-5 { margin-left: 1.5rem !important; } - .mx-lg-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-lg-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-lg-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-6 { margin: 2rem !important; } - .mt-lg-6 { margin-top: 2rem !important; } - .mr-lg-6 { margin-right: 2rem !important; } - .mb-lg-6 { margin-bottom: 2rem !important; } - .ml-lg-6 { margin-left: 2rem !important; } - .mx-lg-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-lg-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-lg-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 66.5rem) { .m-lg-7 { margin: 2.5rem !important; } - .mt-lg-7 { margin-top: 2.5rem !important; } - .mr-lg-7 { margin-right: 2.5rem !important; } - .mb-lg-7 { margin-bottom: 2.5rem !important; } - .ml-lg-7 { margin-left: 2.5rem !important; } - .mx-lg-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-lg-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-lg-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-8 { margin: 3rem !important; } - .mt-lg-8 { margin-top: 3rem !important; } - .mr-lg-8 { margin-right: 3rem !important; } - .mb-lg-8 { margin-bottom: 3rem !important; } - .ml-lg-8 { margin-left: 3rem !important; } - .mx-lg-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-lg-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-lg-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 66.5rem) { .m-lg-9 { margin: 3.5rem !important; } - .mt-lg-9 { margin-top: 3.5rem !important; } - .mr-lg-9 { margin-right: 3.5rem !important; } - .mb-lg-9 { margin-bottom: 3.5rem !important; } - .ml-lg-9 { margin-left: 3.5rem !important; } - .mx-lg-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-lg-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-lg-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-10 { margin: 4rem !important; } - .mt-lg-10 { margin-top: 4rem !important; } - .mr-lg-10 { margin-right: 4rem !important; } - .mb-lg-10 { margin-bottom: 4rem !important; } - .ml-lg-10 { margin-left: 4rem !important; } - .mx-lg-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-lg-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-lg-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 87.5rem) { .m-xl-0 { margin: 0 !important; } - .mt-xl-0 { margin-top: 0 !important; } - .mr-xl-0 { margin-right: 0 !important; } - .mb-xl-0 { margin-bottom: 0 !important; } - .ml-xl-0 { margin-left: 0 !important; } - .mx-xl-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-xl-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-xl-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 87.5rem) { .m-xl-1 { margin: 0.25rem !important; } - .mt-xl-1 { margin-top: 0.25rem !important; } - .mr-xl-1 { margin-right: 0.25rem !important; } - .mb-xl-1 { margin-bottom: 0.25rem !important; } - .ml-xl-1 { margin-left: 0.25rem !important; } - .mx-xl-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-xl-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-xl-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 87.5rem) { .m-xl-2 { margin: 0.5rem !important; } - .mt-xl-2 { margin-top: 0.5rem !important; } - .mr-xl-2 { margin-right: 0.5rem !important; } - .mb-xl-2 { margin-bottom: 0.5rem !important; } - .ml-xl-2 { margin-left: 0.5rem !important; } - .mx-xl-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-xl-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-xl-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-3 { margin: 0.75rem !important; } - .mt-xl-3 { margin-top: 0.75rem !important; } - .mr-xl-3 { margin-right: 0.75rem !important; } - .mb-xl-3 { margin-bottom: 0.75rem !important; } - .ml-xl-3 { margin-left: 0.75rem !important; } - .mx-xl-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-xl-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-xl-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 87.5rem) { .m-xl-4 { margin: 1rem !important; } - .mt-xl-4 { margin-top: 1rem !important; } - .mr-xl-4 { margin-right: 1rem !important; } - .mb-xl-4 { margin-bottom: 1rem !important; } - .ml-xl-4 { margin-left: 1rem !important; } - .mx-xl-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-xl-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-xl-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 87.5rem) { .m-xl-5 { margin: 1.5rem !important; } - .mt-xl-5 { margin-top: 1.5rem !important; } - .mr-xl-5 { margin-right: 1.5rem !important; } - .mb-xl-5 { margin-bottom: 1.5rem !important; } - .ml-xl-5 { margin-left: 1.5rem !important; } - .mx-xl-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-xl-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-xl-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-6 { margin: 2rem !important; } - .mt-xl-6 { margin-top: 2rem !important; } - .mr-xl-6 { margin-right: 2rem !important; } - .mb-xl-6 { margin-bottom: 2rem !important; } - .ml-xl-6 { margin-left: 2rem !important; } - .mx-xl-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-xl-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-xl-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 87.5rem) { .m-xl-7 { margin: 2.5rem !important; } - .mt-xl-7 { margin-top: 2.5rem !important; } - .mr-xl-7 { margin-right: 2.5rem !important; } - .mb-xl-7 { margin-bottom: 2.5rem !important; } - .ml-xl-7 { margin-left: 2.5rem !important; } - .mx-xl-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-xl-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-xl-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-8 { margin: 3rem !important; } - .mt-xl-8 { margin-top: 3rem !important; } - .mr-xl-8 { margin-right: 3rem !important; } - .mb-xl-8 { margin-bottom: 3rem !important; } - .ml-xl-8 { margin-left: 3rem !important; } - .mx-xl-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-xl-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-xl-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 87.5rem) { .m-xl-9 { margin: 3.5rem !important; } - .mt-xl-9 { margin-top: 3.5rem !important; } - .mr-xl-9 { margin-right: 3.5rem !important; } - .mb-xl-9 { margin-bottom: 3.5rem !important; } - .ml-xl-9 { margin-left: 3.5rem !important; } - .mx-xl-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-xl-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-xl-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-10 { margin: 4rem !important; } - .mt-xl-10 { margin-top: 4rem !important; } - .mr-xl-10 { margin-right: 4rem !important; } - .mb-xl-10 { margin-bottom: 4rem !important; } - .ml-xl-10 { margin-left: 4rem !important; } - .mx-xl-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-xl-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-xl-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -.p-0 { padding: 0 !important; } - -.pt-0 { padding-top: 0 !important; } - -.pr-0 { padding-right: 0 !important; } - -.pb-0 { padding-bottom: 0 !important; } - -.pl-0 { padding-left: 0 !important; } - -.px-0 { padding-right: 0 !important; padding-left: 0 !important; } - -.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - -.p-1 { padding: 0.25rem !important; } - -.pt-1 { padding-top: 0.25rem !important; } - -.pr-1 { padding-right: 0.25rem !important; } - -.pb-1 { padding-bottom: 0.25rem !important; } - -.pl-1 { padding-left: 0.25rem !important; } - -.px-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - -.py-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - -.p-2 { padding: 0.5rem !important; } - -.pt-2 { padding-top: 0.5rem !important; } - -.pr-2 { padding-right: 0.5rem !important; } - -.pb-2 { padding-bottom: 0.5rem !important; } - -.pl-2 { padding-left: 0.5rem !important; } - -.px-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - -.py-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - -.p-3 { padding: 0.75rem !important; } - -.pt-3 { padding-top: 0.75rem !important; } - -.pr-3 { padding-right: 0.75rem !important; } - -.pb-3 { padding-bottom: 0.75rem !important; } - -.pl-3 { padding-left: 0.75rem !important; } - -.px-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - -.py-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - -.p-4 { padding: 1rem !important; } - -.pt-4 { padding-top: 1rem !important; } - -.pr-4 { padding-right: 1rem !important; } - -.pb-4 { padding-bottom: 1rem !important; } - -.pl-4 { padding-left: 1rem !important; } - -.px-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - -.py-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - -.p-5 { padding: 1.5rem !important; } - -.pt-5 { padding-top: 1.5rem !important; } - -.pr-5 { padding-right: 1.5rem !important; } - -.pb-5 { padding-bottom: 1.5rem !important; } - -.pl-5 { padding-left: 1.5rem !important; } - -.px-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - -.py-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - -.p-6 { padding: 2rem !important; } - -.pt-6 { padding-top: 2rem !important; } - -.pr-6 { padding-right: 2rem !important; } - -.pb-6 { padding-bottom: 2rem !important; } - -.pl-6 { padding-left: 2rem !important; } - -.px-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - -.py-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - -.p-7 { padding: 2.5rem !important; } - -.pt-7 { padding-top: 2.5rem !important; } - -.pr-7 { padding-right: 2.5rem !important; } - -.pb-7 { padding-bottom: 2.5rem !important; } - -.pl-7 { padding-left: 2.5rem !important; } - -.px-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - -.py-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - -.p-8 { padding: 3rem !important; } - -.pt-8 { padding-top: 3rem !important; } - -.pr-8 { padding-right: 3rem !important; } - -.pb-8 { padding-bottom: 3rem !important; } - -.pl-8 { padding-left: 3rem !important; } - -.px-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - -.py-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - -.p-9 { padding: 3.5rem !important; } - -.pt-9 { padding-top: 3.5rem !important; } - -.pr-9 { padding-right: 3.5rem !important; } - -.pb-9 { padding-bottom: 3.5rem !important; } - -.pl-9 { padding-left: 3.5rem !important; } - -.px-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - -.py-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - -.p-10 { padding: 4rem !important; } - -.pt-10 { padding-top: 4rem !important; } - -.pr-10 { padding-right: 4rem !important; } - -.pb-10 { padding-bottom: 4rem !important; } - -.pl-10 { padding-left: 4rem !important; } - -.px-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - -.py-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } - -@media (min-width: 20rem) { .p-xs-0 { padding: 0 !important; } - .pt-xs-0 { padding-top: 0 !important; } - .pr-xs-0 { padding-right: 0 !important; } - .pb-xs-0 { padding-bottom: 0 !important; } - .pl-xs-0 { padding-left: 0 !important; } - .px-xs-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-xs-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-xs-1 { padding: 0.25rem !important; } - .pt-xs-1 { padding-top: 0.25rem !important; } - .pr-xs-1 { padding-right: 0.25rem !important; } - .pb-xs-1 { padding-bottom: 0.25rem !important; } - .pl-xs-1 { padding-left: 0.25rem !important; } - .px-xs-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-xs-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-xs-2 { padding: 0.5rem !important; } - .pt-xs-2 { padding-top: 0.5rem !important; } - .pr-xs-2 { padding-right: 0.5rem !important; } - .pb-xs-2 { padding-bottom: 0.5rem !important; } - .pl-xs-2 { padding-left: 0.5rem !important; } - .px-xs-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-xs-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-xs-3 { padding: 0.75rem !important; } - .pt-xs-3 { padding-top: 0.75rem !important; } - .pr-xs-3 { padding-right: 0.75rem !important; } - .pb-xs-3 { padding-bottom: 0.75rem !important; } - .pl-xs-3 { padding-left: 0.75rem !important; } - .px-xs-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-xs-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-xs-4 { padding: 1rem !important; } - .pt-xs-4 { padding-top: 1rem !important; } - .pr-xs-4 { padding-right: 1rem !important; } - .pb-xs-4 { padding-bottom: 1rem !important; } - .pl-xs-4 { padding-left: 1rem !important; } - .px-xs-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-xs-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-xs-5 { padding: 1.5rem !important; } - .pt-xs-5 { padding-top: 1.5rem !important; } - .pr-xs-5 { padding-right: 1.5rem !important; } - .pb-xs-5 { padding-bottom: 1.5rem !important; } - .pl-xs-5 { padding-left: 1.5rem !important; } - .px-xs-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-xs-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-xs-6 { padding: 2rem !important; } - .pt-xs-6 { padding-top: 2rem !important; } - .pr-xs-6 { padding-right: 2rem !important; } - .pb-xs-6 { padding-bottom: 2rem !important; } - .pl-xs-6 { padding-left: 2rem !important; } - .px-xs-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-xs-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-xs-7 { padding: 2.5rem !important; } - .pt-xs-7 { padding-top: 2.5rem !important; } - .pr-xs-7 { padding-right: 2.5rem !important; } - .pb-xs-7 { padding-bottom: 2.5rem !important; } - .pl-xs-7 { padding-left: 2.5rem !important; } - .px-xs-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-xs-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-xs-8 { padding: 3rem !important; } - .pt-xs-8 { padding-top: 3rem !important; } - .pr-xs-8 { padding-right: 3rem !important; } - .pb-xs-8 { padding-bottom: 3rem !important; } - .pl-xs-8 { padding-left: 3rem !important; } - .px-xs-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-xs-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-xs-9 { padding: 3.5rem !important; } - .pt-xs-9 { padding-top: 3.5rem !important; } - .pr-xs-9 { padding-right: 3.5rem !important; } - .pb-xs-9 { padding-bottom: 3.5rem !important; } - .pl-xs-9 { padding-left: 3.5rem !important; } - .px-xs-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-xs-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-xs-10 { padding: 4rem !important; } - .pt-xs-10 { padding-top: 4rem !important; } - .pr-xs-10 { padding-right: 4rem !important; } - .pb-xs-10 { padding-bottom: 4rem !important; } - .pl-xs-10 { padding-left: 4rem !important; } - .px-xs-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-xs-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 31.25rem) { .p-sm-0 { padding: 0 !important; } - .pt-sm-0 { padding-top: 0 !important; } - .pr-sm-0 { padding-right: 0 !important; } - .pb-sm-0 { padding-bottom: 0 !important; } - .pl-sm-0 { padding-left: 0 !important; } - .px-sm-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-sm-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-sm-1 { padding: 0.25rem !important; } - .pt-sm-1 { padding-top: 0.25rem !important; } - .pr-sm-1 { padding-right: 0.25rem !important; } - .pb-sm-1 { padding-bottom: 0.25rem !important; } - .pl-sm-1 { padding-left: 0.25rem !important; } - .px-sm-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-sm-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-sm-2 { padding: 0.5rem !important; } - .pt-sm-2 { padding-top: 0.5rem !important; } - .pr-sm-2 { padding-right: 0.5rem !important; } - .pb-sm-2 { padding-bottom: 0.5rem !important; } - .pl-sm-2 { padding-left: 0.5rem !important; } - .px-sm-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-sm-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-sm-3 { padding: 0.75rem !important; } - .pt-sm-3 { padding-top: 0.75rem !important; } - .pr-sm-3 { padding-right: 0.75rem !important; } - .pb-sm-3 { padding-bottom: 0.75rem !important; } - .pl-sm-3 { padding-left: 0.75rem !important; } - .px-sm-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-sm-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-sm-4 { padding: 1rem !important; } - .pt-sm-4 { padding-top: 1rem !important; } - .pr-sm-4 { padding-right: 1rem !important; } - .pb-sm-4 { padding-bottom: 1rem !important; } - .pl-sm-4 { padding-left: 1rem !important; } - .px-sm-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-sm-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-sm-5 { padding: 1.5rem !important; } - .pt-sm-5 { padding-top: 1.5rem !important; } - .pr-sm-5 { padding-right: 1.5rem !important; } - .pb-sm-5 { padding-bottom: 1.5rem !important; } - .pl-sm-5 { padding-left: 1.5rem !important; } - .px-sm-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-sm-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-sm-6 { padding: 2rem !important; } - .pt-sm-6 { padding-top: 2rem !important; } - .pr-sm-6 { padding-right: 2rem !important; } - .pb-sm-6 { padding-bottom: 2rem !important; } - .pl-sm-6 { padding-left: 2rem !important; } - .px-sm-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-sm-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-sm-7 { padding: 2.5rem !important; } - .pt-sm-7 { padding-top: 2.5rem !important; } - .pr-sm-7 { padding-right: 2.5rem !important; } - .pb-sm-7 { padding-bottom: 2.5rem !important; } - .pl-sm-7 { padding-left: 2.5rem !important; } - .px-sm-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-sm-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-sm-8 { padding: 3rem !important; } - .pt-sm-8 { padding-top: 3rem !important; } - .pr-sm-8 { padding-right: 3rem !important; } - .pb-sm-8 { padding-bottom: 3rem !important; } - .pl-sm-8 { padding-left: 3rem !important; } - .px-sm-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-sm-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-sm-9 { padding: 3.5rem !important; } - .pt-sm-9 { padding-top: 3.5rem !important; } - .pr-sm-9 { padding-right: 3.5rem !important; } - .pb-sm-9 { padding-bottom: 3.5rem !important; } - .pl-sm-9 { padding-left: 3.5rem !important; } - .px-sm-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-sm-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-sm-10 { padding: 4rem !important; } - .pt-sm-10 { padding-top: 4rem !important; } - .pr-sm-10 { padding-right: 4rem !important; } - .pb-sm-10 { padding-bottom: 4rem !important; } - .pl-sm-10 { padding-left: 4rem !important; } - .px-sm-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-sm-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 50rem) { .p-md-0 { padding: 0 !important; } - .pt-md-0 { padding-top: 0 !important; } - .pr-md-0 { padding-right: 0 !important; } - .pb-md-0 { padding-bottom: 0 !important; } - .pl-md-0 { padding-left: 0 !important; } - .px-md-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-md-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-md-1 { padding: 0.25rem !important; } - .pt-md-1 { padding-top: 0.25rem !important; } - .pr-md-1 { padding-right: 0.25rem !important; } - .pb-md-1 { padding-bottom: 0.25rem !important; } - .pl-md-1 { padding-left: 0.25rem !important; } - .px-md-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-md-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-md-2 { padding: 0.5rem !important; } - .pt-md-2 { padding-top: 0.5rem !important; } - .pr-md-2 { padding-right: 0.5rem !important; } - .pb-md-2 { padding-bottom: 0.5rem !important; } - .pl-md-2 { padding-left: 0.5rem !important; } - .px-md-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-md-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-md-3 { padding: 0.75rem !important; } - .pt-md-3 { padding-top: 0.75rem !important; } - .pr-md-3 { padding-right: 0.75rem !important; } - .pb-md-3 { padding-bottom: 0.75rem !important; } - .pl-md-3 { padding-left: 0.75rem !important; } - .px-md-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-md-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-md-4 { padding: 1rem !important; } - .pt-md-4 { padding-top: 1rem !important; } - .pr-md-4 { padding-right: 1rem !important; } - .pb-md-4 { padding-bottom: 1rem !important; } - .pl-md-4 { padding-left: 1rem !important; } - .px-md-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-md-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-md-5 { padding: 1.5rem !important; } - .pt-md-5 { padding-top: 1.5rem !important; } - .pr-md-5 { padding-right: 1.5rem !important; } - .pb-md-5 { padding-bottom: 1.5rem !important; } - .pl-md-5 { padding-left: 1.5rem !important; } - .px-md-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-md-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-md-6 { padding: 2rem !important; } - .pt-md-6 { padding-top: 2rem !important; } - .pr-md-6 { padding-right: 2rem !important; } - .pb-md-6 { padding-bottom: 2rem !important; } - .pl-md-6 { padding-left: 2rem !important; } - .px-md-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-md-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-md-7 { padding: 2.5rem !important; } - .pt-md-7 { padding-top: 2.5rem !important; } - .pr-md-7 { padding-right: 2.5rem !important; } - .pb-md-7 { padding-bottom: 2.5rem !important; } - .pl-md-7 { padding-left: 2.5rem !important; } - .px-md-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-md-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-md-8 { padding: 3rem !important; } - .pt-md-8 { padding-top: 3rem !important; } - .pr-md-8 { padding-right: 3rem !important; } - .pb-md-8 { padding-bottom: 3rem !important; } - .pl-md-8 { padding-left: 3rem !important; } - .px-md-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-md-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-md-9 { padding: 3.5rem !important; } - .pt-md-9 { padding-top: 3.5rem !important; } - .pr-md-9 { padding-right: 3.5rem !important; } - .pb-md-9 { padding-bottom: 3.5rem !important; } - .pl-md-9 { padding-left: 3.5rem !important; } - .px-md-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-md-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-md-10 { padding: 4rem !important; } - .pt-md-10 { padding-top: 4rem !important; } - .pr-md-10 { padding-right: 4rem !important; } - .pb-md-10 { padding-bottom: 4rem !important; } - .pl-md-10 { padding-left: 4rem !important; } - .px-md-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-md-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 66.5rem) { .p-lg-0 { padding: 0 !important; } - .pt-lg-0 { padding-top: 0 !important; } - .pr-lg-0 { padding-right: 0 !important; } - .pb-lg-0 { padding-bottom: 0 !important; } - .pl-lg-0 { padding-left: 0 !important; } - .px-lg-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-lg-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-lg-1 { padding: 0.25rem !important; } - .pt-lg-1 { padding-top: 0.25rem !important; } - .pr-lg-1 { padding-right: 0.25rem !important; } - .pb-lg-1 { padding-bottom: 0.25rem !important; } - .pl-lg-1 { padding-left: 0.25rem !important; } - .px-lg-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-lg-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-lg-2 { padding: 0.5rem !important; } - .pt-lg-2 { padding-top: 0.5rem !important; } - .pr-lg-2 { padding-right: 0.5rem !important; } - .pb-lg-2 { padding-bottom: 0.5rem !important; } - .pl-lg-2 { padding-left: 0.5rem !important; } - .px-lg-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-lg-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-lg-3 { padding: 0.75rem !important; } - .pt-lg-3 { padding-top: 0.75rem !important; } - .pr-lg-3 { padding-right: 0.75rem !important; } - .pb-lg-3 { padding-bottom: 0.75rem !important; } - .pl-lg-3 { padding-left: 0.75rem !important; } - .px-lg-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-lg-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-lg-4 { padding: 1rem !important; } - .pt-lg-4 { padding-top: 1rem !important; } - .pr-lg-4 { padding-right: 1rem !important; } - .pb-lg-4 { padding-bottom: 1rem !important; } - .pl-lg-4 { padding-left: 1rem !important; } - .px-lg-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-lg-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-lg-5 { padding: 1.5rem !important; } - .pt-lg-5 { padding-top: 1.5rem !important; } - .pr-lg-5 { padding-right: 1.5rem !important; } - .pb-lg-5 { padding-bottom: 1.5rem !important; } - .pl-lg-5 { padding-left: 1.5rem !important; } - .px-lg-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-lg-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-lg-6 { padding: 2rem !important; } - .pt-lg-6 { padding-top: 2rem !important; } - .pr-lg-6 { padding-right: 2rem !important; } - .pb-lg-6 { padding-bottom: 2rem !important; } - .pl-lg-6 { padding-left: 2rem !important; } - .px-lg-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-lg-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-lg-7 { padding: 2.5rem !important; } - .pt-lg-7 { padding-top: 2.5rem !important; } - .pr-lg-7 { padding-right: 2.5rem !important; } - .pb-lg-7 { padding-bottom: 2.5rem !important; } - .pl-lg-7 { padding-left: 2.5rem !important; } - .px-lg-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-lg-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-lg-8 { padding: 3rem !important; } - .pt-lg-8 { padding-top: 3rem !important; } - .pr-lg-8 { padding-right: 3rem !important; } - .pb-lg-8 { padding-bottom: 3rem !important; } - .pl-lg-8 { padding-left: 3rem !important; } - .px-lg-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-lg-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-lg-9 { padding: 3.5rem !important; } - .pt-lg-9 { padding-top: 3.5rem !important; } - .pr-lg-9 { padding-right: 3.5rem !important; } - .pb-lg-9 { padding-bottom: 3.5rem !important; } - .pl-lg-9 { padding-left: 3.5rem !important; } - .px-lg-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-lg-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-lg-10 { padding: 4rem !important; } - .pt-lg-10 { padding-top: 4rem !important; } - .pr-lg-10 { padding-right: 4rem !important; } - .pb-lg-10 { padding-bottom: 4rem !important; } - .pl-lg-10 { padding-left: 4rem !important; } - .px-lg-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-lg-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 87.5rem) { .p-xl-0 { padding: 0 !important; } - .pt-xl-0 { padding-top: 0 !important; } - .pr-xl-0 { padding-right: 0 !important; } - .pb-xl-0 { padding-bottom: 0 !important; } - .pl-xl-0 { padding-left: 0 !important; } - .px-xl-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-xl-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-xl-1 { padding: 0.25rem !important; } - .pt-xl-1 { padding-top: 0.25rem !important; } - .pr-xl-1 { padding-right: 0.25rem !important; } - .pb-xl-1 { padding-bottom: 0.25rem !important; } - .pl-xl-1 { padding-left: 0.25rem !important; } - .px-xl-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-xl-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-xl-2 { padding: 0.5rem !important; } - .pt-xl-2 { padding-top: 0.5rem !important; } - .pr-xl-2 { padding-right: 0.5rem !important; } - .pb-xl-2 { padding-bottom: 0.5rem !important; } - .pl-xl-2 { padding-left: 0.5rem !important; } - .px-xl-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-xl-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-xl-3 { padding: 0.75rem !important; } - .pt-xl-3 { padding-top: 0.75rem !important; } - .pr-xl-3 { padding-right: 0.75rem !important; } - .pb-xl-3 { padding-bottom: 0.75rem !important; } - .pl-xl-3 { padding-left: 0.75rem !important; } - .px-xl-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-xl-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-xl-4 { padding: 1rem !important; } - .pt-xl-4 { padding-top: 1rem !important; } - .pr-xl-4 { padding-right: 1rem !important; } - .pb-xl-4 { padding-bottom: 1rem !important; } - .pl-xl-4 { padding-left: 1rem !important; } - .px-xl-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-xl-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-xl-5 { padding: 1.5rem !important; } - .pt-xl-5 { padding-top: 1.5rem !important; } - .pr-xl-5 { padding-right: 1.5rem !important; } - .pb-xl-5 { padding-bottom: 1.5rem !important; } - .pl-xl-5 { padding-left: 1.5rem !important; } - .px-xl-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-xl-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-xl-6 { padding: 2rem !important; } - .pt-xl-6 { padding-top: 2rem !important; } - .pr-xl-6 { padding-right: 2rem !important; } - .pb-xl-6 { padding-bottom: 2rem !important; } - .pl-xl-6 { padding-left: 2rem !important; } - .px-xl-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-xl-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-xl-7 { padding: 2.5rem !important; } - .pt-xl-7 { padding-top: 2.5rem !important; } - .pr-xl-7 { padding-right: 2.5rem !important; } - .pb-xl-7 { padding-bottom: 2.5rem !important; } - .pl-xl-7 { padding-left: 2.5rem !important; } - .px-xl-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-xl-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-xl-8 { padding: 3rem !important; } - .pt-xl-8 { padding-top: 3rem !important; } - .pr-xl-8 { padding-right: 3rem !important; } - .pb-xl-8 { padding-bottom: 3rem !important; } - .pl-xl-8 { padding-left: 3rem !important; } - .px-xl-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-xl-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-xl-9 { padding: 3.5rem !important; } - .pt-xl-9 { padding-top: 3.5rem !important; } - .pr-xl-9 { padding-right: 3.5rem !important; } - .pb-xl-9 { padding-bottom: 3.5rem !important; } - .pl-xl-9 { padding-left: 3.5rem !important; } - .px-xl-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-xl-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-xl-10 { padding: 4rem !important; } - .pt-xl-10 { padding-top: 4rem !important; } - .pr-xl-10 { padding-right: 4rem !important; } - .pb-xl-10 { padding-bottom: 4rem !important; } - .pl-xl-10 { padding-left: 4rem !important; } - .px-xl-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-xl-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media print { .site-footer, .site-button, #edit-this-page, #back-to-top, .site-nav, .main-header { display: none !important; } - .side-bar { width: 100%; height: auto; border-right: 0 !important; } - .site-header { border-bottom: 1px solid #eeebee; } - .site-title { font-size: 16px !important; font-weight: 700 !important; } - .text-small { font-size: 8pt !important; } - pre.highlight { border: 1px solid #eeebee; } - .main { max-width: none; margin-left: 0; } } diff --git a/docs/assets/css/just-the-docs-light.css b/docs/assets/css/just-the-docs-light.css deleted file mode 100644 index f972967..0000000 --- a/docs/assets/css/just-the-docs-light.css +++ /dev/null @@ -1,2250 +0,0 @@ -@charset "UTF-8"; -/*! normalize.scss v0.1.0 | MIT License | based on git.io/normalize */ -/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */ -html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } - -/** Remove default margin. */ -body { margin: 0; } - -/* HTML5 display definitions ========================================================================== */ -/** Correct `block` display not defined for any HTML5 element in IE 8/9. Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. Correct `block` display not defined for `main` in IE 11. */ -article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; } - -/** 1. Correct `inline-block` display not defined in IE 8/9. 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. */ -audio, canvas, progress, video { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ } - -/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */ -audio:not([controls]) { display: none; height: 0; } - -/** Address `[hidden]` styling not present in IE 8/9/10. Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. */ -[hidden], template { display: none; } - -/* Links ========================================================================== */ -/** Remove the gray background color from active links in IE 10. */ -a { background-color: transparent; } - -/** Improve readability when focused and also mouse hovered in all browsers. */ -a:active, a:hover { outline: 0; } - -/* Text-level semantics ========================================================================== */ -/** Address styling not present in IE 8/9/10/11, Safari, and Chrome. */ -abbr[title] { border-bottom: 1px dotted; } - -/** Address style set to `bolder` in Firefox 4+, Safari, and Chrome. */ -b, strong { font-weight: bold; } - -/** Address styling not present in Safari and Chrome. */ -dfn { font-style: italic; } - -/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari, and Chrome. */ -h1 { font-size: 2em; margin: 0.67em 0; } - -/** Address styling not present in IE 8/9. */ -mark { background: #ff0; color: #000; } - -/** Address inconsistent and variable font size in all browsers. */ -small { font-size: 80%; } - -/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */ -sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } - -sup { top: -0.5em; } - -sub { bottom: -0.25em; } - -/* Embedded content ========================================================================== */ -/** Remove border when inside `a` element in IE 8/9/10. */ -img { border: 0; } - -/** Correct overflow not hidden in IE 9/10/11. */ -svg:not(:root) { overflow: hidden; } - -/* Grouping content ========================================================================== */ -/** Address margin not present in IE 8/9 and Safari. */ -figure { margin: 1em 40px; } - -/** Address differences between Firefox and other browsers. */ -hr { -moz-box-sizing: content-box; box-sizing: content-box; height: 0; } - -/** Contain overflow in all browsers. */ -pre { overflow: auto; } - -/** Address odd `em`-unit font size rendering in all browsers. */ -code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; } - -/* Forms ========================================================================== */ -/** Known limitation: by default, Chrome and Safari on OS X allow very limited styling of `select`, unless a `border` property is set. */ -/** 1. Correct color not being inherited. Known issue: affects color of disabled elements. 2. Correct font properties not being inherited. 3. Address margins set differently in Firefox 4+, Safari, and Chrome. */ -button, input, optgroup, select, textarea { color: inherit; /* 1 */ font: inherit; /* 2 */ margin: 0; /* 3 */ } - -/** Address `overflow` set to `hidden` in IE 8/9/10/11. */ -button { overflow: visible; } - -/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. Correct `select` style inheritance in Firefox. */ -button, select { text-transform: none; } - -/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */ -button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ } - -/** Re-set default cursor for disabled elements. */ -button[disabled], html input[disabled] { cursor: default; } - -/** Remove inner padding and border in Firefox 4+. */ -button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } - -/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */ -input { line-height: normal; } - -/** It's recommended that you don't attempt to style these elements. Firefox's implementation doesn't respect box-sizing, padding, or width. 1. Address box sizing set to `content-box` in IE 8/9/10. 2. Remove excess padding in IE 8/9/10. */ -input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } - -/** Fix the cursor style for Chrome's increment/decrement buttons. For certain `font-size` values of the `input`, it causes the cursor style of the decrement button to change from `default` to `text`. */ -input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; } - -/** 1. Address `appearance` set to `searchfield` in Safari and Chrome. 2. Address `box-sizing` set to `border-box` in Safari and Chrome (include `-moz` to future-proof). */ -input[type="search"] { -webkit-appearance: textfield; /* 1 */ -moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */ box-sizing: content-box; } - -/** Remove inner padding and search cancel button in Safari and Chrome on OS X. Safari (but not Chrome) clips the cancel button when the search input has padding (and `textfield` appearance). */ -input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } - -/** Define consistent border, margin, and padding. */ -fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } - -/** 1. Correct `color` not being inherited in IE 8/9/10/11. 2. Remove padding so people aren't caught out if they zero out fieldsets. */ -legend { border: 0; /* 1 */ padding: 0; /* 2 */ } - -/** Remove default vertical scrollbar in IE 8/9/10/11. */ -textarea { overflow: auto; } - -/** Don't inherit the `font-weight` (applied by a rule above). NOTE: the default cannot safely be changed in Chrome and Safari on OS X. */ -optgroup { font-weight: bold; } - -/* Tables ========================================================================== */ -/** Remove most spacing between table cells. */ -table { border-collapse: collapse; border-spacing: 0; } - -td, th { padding: 0; } - -* { box-sizing: border-box; } - -::selection { color: #fff; background: #2c84fa; } - -html { font-size: 15px !important; scroll-behavior: smooth; } -@media (min-width: 31.25rem) { html { font-size: 16px !important; } } - -body { font-family: -apple-system, BlinkMacSystemFont, "helvetica neue", helvetica, roboto, noto, "segoe ui", arial, sans-serif; font-size: inherit; line-height: 1.4; color: #5c5962; background-color: #fff; } - -ol, ul, dl, pre, address, blockquote, table, div, hr, form, fieldset, noscript .table-wrapper { margin-top: 0; } - -h1, h2, h3, h4, h5, h6 { margin-top: 0; margin-bottom: 1em; font-weight: 500; line-height: 1.25; color: #2869e6; } - -p { margin-top: 1em; margin-bottom: 1em; } - -a { color: #2c84fa; text-decoration: none; } - -a:not([class]) { text-decoration: none; background-image: linear-gradient(#eeebee 0%, #eeebee 100%); background-repeat: repeat-x; background-position: 0 100%; background-size: 1px 1px; } -a:not([class]):hover { background-image: linear-gradient(rgba(44, 132, 250, 0.45) 0%, rgba(44, 132, 250, 0.45) 100%); background-size: 1px 1px; } - -code { font-family: "SFMono-Regular", Menlo, Consolas, Monospace; font-size: 0.75em; line-height: 1.4; } - -figure, pre { margin: 0; } - -li { margin: 0.25em 0; } - -img { max-width: 100%; height: auto; } - -hr { height: 1px; padding: 0; margin: 2rem 0; background-color: #eeebee; border: 0; } - -.side-bar { z-index: 0; display: flex; flex-wrap: wrap; background-color: #003a48; } -@media (min-width: 50rem) { .side-bar { flex-wrap: nowrap; position: fixed; width: 248px; height: 100%; flex-direction: column; border-right: 1px solid #eeebee; align-items: flex-end; } } -@media (min-width: 66.5rem) { .side-bar { width: calc((100% - 1064px) / 2 + 264px); min-width: 264px; } } - -@media (min-width: 50rem) { .main { position: relative; max-width: 800px; margin-left: 248px; } } -@media (min-width: 66.5rem) { .main { margin-left: calc( (100% - 1064px) / 2 + 264px ); } } - -.main-content-wrap { padding-right: 1rem; padding-left: 1rem; padding-top: 1rem; padding-bottom: 1rem; } -@media (min-width: 50rem) { .main-content-wrap { padding-right: 2rem; padding-left: 2rem; } } -@media (min-width: 50rem) { .main-content-wrap { padding-top: 2rem; padding-bottom: 2rem; } } - -.main-header { z-index: 0; display: none; background-color: #003a48; } -@media (min-width: 50rem) { .main-header { display: flex; justify-content: space-between; height: 150px; background-color: #fff; border-bottom: 1px solid #eeebee; } } -.main-header.nav-open { display: block; } -@media (min-width: 50rem) { .main-header.nav-open { display: flex; } } - -.site-nav, .site-header, .site-footer { width: 100%; } -@media (min-width: 66.5rem) { .site-nav, .site-header, .site-footer { width: 264px; } } - -.site-nav { display: none; } -.site-nav.nav-open { display: block; } -@media (min-width: 50rem) { .site-nav { display: block; padding-top: 3rem; padding-bottom: 1rem; overflow-y: auto; flex: 1 1 auto; } } - -.site-header { display: flex; min-height: 150px; align-items: center; } -@media (min-width: 50rem) { .site-header { height: 150px; max-height: 150px; border-bottom: 1px solid #eeebee; } } - -.site-title { padding-right: 1rem; padding-left: 1rem; flex-grow: 1; display: flex; height: 100%; align-items: center; padding-top: 0.75rem; padding-bottom: 0.75rem; color: #2869e6; font-size: 18px !important; } -@media (min-width: 50rem) { .site-title { padding-right: 2rem; padding-left: 2rem; } } -@media (min-width: 31.25rem) { .site-title { font-size: 24px !important; line-height: 1.25; } } -@media (min-width: 50rem) { .site-title { padding-top: 0.5rem; padding-bottom: 0.5rem; } } - -.site-logo { width: 100%; height: 100%; background-image: url("../../assets/images/vendor/microchip_mplab_harmony_logo_150_transparent.png"); background-repeat: no-repeat; background-position: left center; background-size: contain; } - -.site-button { display: flex; height: 100%; padding: 1rem; align-items: center; } - -@media (min-width: 50rem) { .site-header .site-button { display: none; } } -.site-title:hover { background-image: linear-gradient(-90deg, #002e39 0%, rgba(0, 46, 57, 0.8) 80%, rgba(0, 46, 57, 0) 100%); } - -.site-button:hover { background-image: linear-gradient(-90deg, #002e39 0%, rgba(0, 46, 57, 0.8) 100%); } - -body { position: relative; padding-bottom: 4rem; overflow-y: scroll; } -@media (min-width: 50rem) { body { position: static; padding-bottom: 0; } } - -.site-footer { padding-right: 1rem; padding-left: 1rem; position: absolute; bottom: 0; left: 0; padding-top: 1rem; padding-bottom: 1rem; color: #959396; font-size: 11px !important; } -@media (min-width: 50rem) { .site-footer { padding-right: 2rem; padding-left: 2rem; } } -@media (min-width: 31.25rem) { .site-footer { font-size: 12px !important; } } -@media (min-width: 50rem) { .site-footer { position: static; justify-self: end; } } - -.icon { width: 1.5rem; height: 1.5rem; color: #2c84fa; } - -.main-content { line-height: 1.6; } -.main-content ol, .main-content ul, .main-content dl, .main-content pre, .main-content address, .main-content blockquote, .main-content .table-wrapper { margin-top: 0.5em; } -.main-content a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } -.main-content ul, .main-content ol { padding-left: 1.5em; } -.main-content li .highlight { margin-top: 0.25rem; } -.main-content ol { list-style-type: none; counter-reset: step-counter; } -.main-content ol > li { position: relative; } -.main-content ol > li::before { position: absolute; top: 0.2em; left: -1.6em; color: #959396; content: counter(step-counter); counter-increment: step-counter; font-size: 12px !important; } -@media (min-width: 31.25rem) { .main-content ol > li::before { font-size: 14px !important; } } -@media (min-width: 31.25rem) { .main-content ol > li::before { top: 0.11em; } } -.main-content ol > li ol { counter-reset: sub-counter; } -.main-content ol > li ol li::before { content: counter(sub-counter,lower-alpha); counter-increment: sub-counter; } -.main-content ul { list-style: none; } -.main-content ul > li::before { position: absolute; margin-left: -1.4em; color: #959396; content: "•"; } -.main-content .task-list { padding-left: 0; } -.main-content .task-list-item { display: flex; align-items: center; } -.main-content .task-list-item::before { content: ""; } -.main-content .task-list-item-checkbox { margin-right: 0.6em; } -.main-content hr + * { margin-top: 0; } -.main-content h1:first-of-type { margin-top: 0.5em; } -.main-content dl { display: grid; grid-template-columns: max-content 1fr; } -.main-content dt, .main-content dd { margin: 0.25em 0; } -.main-content dt { text-align: right; } -.main-content dt::after { content: ":"; } -.main-content dd { margin-left: 1em; font-weight: 500; } -.main-content .anchor-heading { position: absolute; right: -1rem; width: 1.5rem; height: 100%; padding-right: 0.25rem; padding-left: 0.25rem; overflow: visible; } -@media (min-width: 50rem) { .main-content .anchor-heading { right: auto; left: -1.5rem; } } -.main-content .anchor-heading svg { display: inline-block; width: 100%; height: 100%; color: #2c84fa; visibility: hidden; } -.main-content .anchor-heading:hover svg, .main-content h1:hover > .anchor-heading svg, .main-content h2:hover > .anchor-heading svg, .main-content h3:hover > .anchor-heading svg, .main-content h4:hover > .anchor-heading svg, .main-content h5:hover > .anchor-heading svg, .main-content h6:hover > .anchor-heading svg { visibility: visible; } -.main-content summary { cursor: pointer; } -.main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6 { position: relative; margin-top: 1.5em; margin-bottom: 0.25em; } -.main-content h1:first-child, .main-content h2:first-child, .main-content h3:first-child, .main-content h4:first-child, .main-content h5:first-child, .main-content h6:first-child { margin-top: 0.5rem; } -.main-content h1 + table, .main-content h1 + .table-wrapper, .main-content h1 + .code-example, .main-content h1 + .highlighter-rouge, .main-content h2 + table, .main-content h2 + .table-wrapper, .main-content h2 + .code-example, .main-content h2 + .highlighter-rouge, .main-content h3 + table, .main-content h3 + .table-wrapper, .main-content h3 + .code-example, .main-content h3 + .highlighter-rouge, .main-content h4 + table, .main-content h4 + .table-wrapper, .main-content h4 + .code-example, .main-content h4 + .highlighter-rouge, .main-content h5 + table, .main-content h5 + .table-wrapper, .main-content h5 + .code-example, .main-content h5 + .highlighter-rouge, .main-content h6 + table, .main-content h6 + .table-wrapper, .main-content h6 + .code-example, .main-content h6 + .highlighter-rouge { margin-top: 1em; } -.main-content h1 + p, .main-content h2 + p, .main-content h3 + p, .main-content h4 + p, .main-content h5 + p, .main-content h6 + p { margin-top: 0; } - -.nav-list { padding: 0; margin-top: 0; margin-bottom: 0; list-style: none; } -.nav-list .nav-list-item { font-size: 15px !important; position: relative; margin: 0; } -@media (min-width: 31.25rem) { .nav-list .nav-list-item { font-size: 16px !important; } } -@media (min-width: 50rem) { .nav-list .nav-list-item { font-size: 12px !important; } } -@media (min-width: 50rem) and (min-width: 31.25rem) { .nav-list .nav-list-item { font-size: 14px !important; } } - -.nav-list .nav-list-item .nav-list-link { display: block; min-height: 3rem; padding-top: 0.25rem; padding-bottom: 0.25rem; line-height: 2.5rem; padding-right: 3rem; padding-left: 1rem; } -@media (min-width: 50rem) { .nav-list .nav-list-item .nav-list-link { min-height: 2rem; line-height: 1.5rem; padding-right: 2rem; padding-left: 2rem; } } -.nav-list .nav-list-item .nav-list-link.active { font-weight: 600; text-decoration: none; } -.nav-list .nav-list-item .nav-list-link:hover, .nav-list .nav-list-item .nav-list-link.active { background-image: linear-gradient(-90deg, #002e39 0%, rgba(0, 46, 57, 0.8) 80%, rgba(0, 46, 57, 0) 100%); } -.nav-list .nav-list-item .nav-list-expander { position: absolute; right: 0; width: 3rem; height: 3rem; padding-top: 0.75rem; padding-right: 0.75rem; padding-bottom: 0.75rem; padding-left: 0.75rem; color: #2c84fa; } -@media (min-width: 50rem) { .nav-list .nav-list-item .nav-list-expander { width: 2rem; height: 2rem; padding-top: 0.5rem; padding-right: 0.5rem; padding-bottom: 0.5rem; padding-left: 0.5rem; } } -.nav-list .nav-list-item .nav-list-expander:hover { background-image: linear-gradient(-90deg, #002e39 0%, rgba(0, 46, 57, 0.8) 100%); } -.nav-list .nav-list-item .nav-list-expander svg { transform: rotate(90deg); } -.nav-list .nav-list-item > .nav-list { display: none; padding-left: 0.75rem; list-style: none; } -.nav-list .nav-list-item > .nav-list .nav-list-item { position: relative; } -.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-link { color: #2869e6; } -.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-expander { color: #2869e6; } -.nav-list .nav-list-item.active > .nav-list-expander svg { transform: rotate(-90deg); } -.nav-list .nav-list-item.active > .nav-list { display: block; } - -.aux-nav { height: 100%; overflow-x: auto; font-size: 11px !important; } -@media (min-width: 31.25rem) { .aux-nav { font-size: 12px !important; } } -.aux-nav .aux-nav-list { display: flex; height: 100%; padding: 0; margin: 0; list-style: none; } -.aux-nav .aux-nav-list-item { display: inline-block; height: 100%; padding: 0; margin: 0; } -@media (min-width: 50rem) { .aux-nav { padding-right: 1rem; } } - -@media (min-width: 50rem) { .breadcrumb-nav { margin-top: -1rem; } } - -.breadcrumb-nav-list { padding-left: 0; margin-bottom: 0.75rem; list-style: none; } - -.breadcrumb-nav-list-item { display: table-cell; font-size: 11px !important; } -@media (min-width: 31.25rem) { .breadcrumb-nav-list-item { font-size: 12px !important; } } -.breadcrumb-nav-list-item::before { display: none; } -.breadcrumb-nav-list-item::after { display: inline-block; margin-right: 0.5rem; margin-left: 0.5rem; color: #959396; content: "/"; } -.breadcrumb-nav-list-item:last-child::after { content: ""; } - -h1, .text-alpha { font-size: 32px !important; line-height: 1.25; font-weight: 300; } -@media (min-width: 31.25rem) { h1, .text-alpha { font-size: 36px !important; } } - -h2, .text-beta { font-size: 18px !important; } -@media (min-width: 31.25rem) { h2, .text-beta { font-size: 24px !important; line-height: 1.25; } } - -h3, .text-gamma { font-size: 16px !important; } -@media (min-width: 31.25rem) { h3, .text-gamma { font-size: 18px !important; } } - -h4, .text-delta { font-size: 11px !important; font-weight: 400; text-transform: uppercase; letter-spacing: 0.1em; } -@media (min-width: 31.25rem) { h4, .text-delta { font-size: 12px !important; } } - -h5, .text-epsilon { font-size: 12px !important; color: #44434d; } -@media (min-width: 31.25rem) { h5, .text-epsilon { font-size: 14px !important; } } - -h6, .text-zeta { font-size: 11px !important; color: #44434d; } -@media (min-width: 31.25rem) { h6, .text-zeta { font-size: 12px !important; } } - -.text-small { font-size: 11px !important; } -@media (min-width: 31.25rem) { .text-small { font-size: 12px !important; } } - -.text-mono { font-family: "SFMono-Regular", Menlo, Consolas, Monospace !important; } - -.text-left { text-align: left !important; } - -.text-center { text-align: center !important; } - -.text-right { text-align: right !important; } - -.label, .label-blue { display: inline-block; padding-top: 0.16em; padding-right: 0.56em; padding-bottom: 0.16em; padding-left: 0.56em; margin-right: 0.5rem; margin-left: 0.5rem; color: #fff; text-transform: uppercase; vertical-align: middle; background-color: #2869e6; font-size: 11px !important; border-radius: 12px; } -@media (min-width: 31.25rem) { .label, .label-blue { font-size: 12px !important; } } - -.label-green { background-color: #009c7b; } - -.label-purple { background-color: #5e41d0; } - -.label-red { background-color: #e94c4c; } - -.label-yellow { color: #44434d; background-color: #f7d12e; } - -.btn { display: inline-block; box-sizing: border-box; padding-top: 0.3em; padding-right: 1em; padding-bottom: 0.3em; padding-left: 1em; margin: 0; font-family: inherit; font-size: inherit; font-weight: 500; line-height: 1.5; color: #2c84fa; text-decoration: none; vertical-align: baseline; cursor: pointer; background-color: #f7f7f7; border-width: 0; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); appearance: none; } -.btn:focus { text-decoration: none; outline: none; box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); } -.btn:focus:hover, .btn.selected:focus { box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); } -.btn:hover, .btn.zeroclipboard-is-hover { color: #227efa; } -.btn:hover, .btn:active, .btn.zeroclipboard-is-hover, .btn.zeroclipboard-is-active { text-decoration: none; background-color: #f4f4f4; } -.btn:active, .btn.selected, .btn.zeroclipboard-is-active { background-color: #efefef; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn.selected:hover { background-color: #cfcfcf; } -.btn:disabled, .btn:disabled:hover, .btn.disabled, .btn.disabled:hover { color: rgba(102, 102, 102, 0.5); cursor: default; background-color: rgba(229, 229, 229, 0.5); background-image: none; box-shadow: none; } - -.btn-outline { color: #2c84fa; background: transparent; box-shadow: inset 0 0 0 2px #e6e1e8; } -.btn-outline:hover, .btn-outline:active, .btn-outline.zeroclipboard-is-hover, .btn-outline.zeroclipboard-is-active { color: #1878fa; text-decoration: none; background-color: transparent; box-shadow: inset 0 0 0 3px #e6e1e8; } -.btn-outline:focus { text-decoration: none; outline: none; box-shadow: inset 0 0 0 2px #5c5962, 0 0 0 3px rgba(0, 0, 255, 0.25); } -.btn-outline:focus:hover, .btn-outline.selected:focus { box-shadow: inset 0 0 0 2px #5c5962; } - -.btn-primary { color: #fff; background-color: #5739ce; background-image: linear-gradient(#6f55d5, #5739ce); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-primary:hover, .btn-primary.zeroclipboard-is-hover { color: #fff; background-color: #5132cb; background-image: linear-gradient(#6549d2, #5132cb); } -.btn-primary:active, .btn-primary.selected, .btn-primary.zeroclipboard-is-active { background-color: #4f31c6; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-primary.selected:hover { background-color: #472cb2; } - -.btn-purple { color: #fff; background-color: #5739ce; background-image: linear-gradient(#6f55d5, #5739ce); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-purple:hover, .btn-purple.zeroclipboard-is-hover { color: #fff; background-color: #5132cb; background-image: linear-gradient(#6549d2, #5132cb); } -.btn-purple:active, .btn-purple.selected, .btn-purple.zeroclipboard-is-active { background-color: #4f31c6; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-purple.selected:hover { background-color: #472cb2; } - -.btn-blue { color: #fff; background-color: #227efa; background-image: linear-gradient(#4593fb, #227efa); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-blue:hover, .btn-blue.zeroclipboard-is-hover { color: #fff; background-color: #1878fa; background-image: linear-gradient(#368afa, #1878fa); } -.btn-blue:active, .btn-blue.selected, .btn-blue.zeroclipboard-is-active { background-color: #1375f9; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-blue.selected:hover { background-color: #0669ed; } - -.btn-green { color: #fff; background-color: #10ac7d; background-image: linear-gradient(#13cc95, #10ac7d); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } -.btn-green:hover, .btn-green.zeroclipboard-is-hover { color: #fff; background-color: #0fa276; background-image: linear-gradient(#12be8b, #0fa276); } -.btn-green:active, .btn-green.selected, .btn-green.zeroclipboard-is-active { background-color: #0f9e73; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } -.btn-green.selected:hover { background-color: #0d8662; } - -.search { position: relative; z-index: 2; flex-grow: 1; height: 4rem; padding: 0.5rem; transition: padding linear 200ms; } -@media (min-width: 50rem) { .search { position: relative !important; width: auto !important; height: 100% !important; padding: 0; transition: none; } } - -.search-input-wrap { position: relative; z-index: 1; height: 3rem; overflow: hidden; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); transition: height linear 200ms; } -@media (min-width: 50rem) { .search-input-wrap { position: absolute; width: 100%; max-width: 536px; height: 100% !important; border-radius: 0; box-shadow: none; transition: width ease 400ms; } } - -.search-input { position: absolute; width: 100%; height: 100%; padding-top: 0.5rem; padding-right: 1rem; padding-bottom: 0.5rem; padding-left: 2.5rem; font-size: 16px; background-color: #fff; border-top: 0; border-right: 0; border-bottom: 0; border-left: 0; border-radius: 0; } -@media (min-width: 50rem) { .search-input { padding-top: 1rem; padding-bottom: 1rem; padding-left: 3.5rem; font-size: 14px; background-color: #fff; transition: padding-left linear 200ms; } } -.search-input:focus { outline: 0; } -.search-input:focus + .search-label .search-icon { color: #2c84fa; } - -.search-label { position: absolute; display: flex; height: 100%; padding-left: 1rem; } -@media (min-width: 50rem) { .search-label { padding-left: 2rem; transition: padding-left linear 200ms; } } -.search-label .search-icon { width: 1.2rem; height: 1.2rem; align-self: center; color: #959396; } - -.search-results { position: absolute; left: 0; display: none; width: 100%; max-height: calc(100% - 4rem); overflow-y: auto; background-color: #fff; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } -@media (min-width: 50rem) { .search-results { top: 100%; width: 536px; max-height: calc(100vh - 200%) !important; } } - -.search-results-list { padding-left: 0; margin-bottom: 0.25rem; list-style: none; font-size: 15px !important; } -@media (min-width: 31.25rem) { .search-results-list { font-size: 16px !important; } } -@media (min-width: 50rem) { .search-results-list { font-size: 12px !important; } } -@media (min-width: 50rem) and (min-width: 31.25rem) { .search-results-list { font-size: 14px !important; } } - -.search-results-list-item { padding: 0; margin: 0; } - -.search-result { display: block; padding-top: 0.25rem; padding-right: 0.75rem; padding-bottom: 0.25rem; padding-left: 0.75rem; } -.search-result:hover, .search-result.active { background-color: #002e39; } - -.search-result-title { display: block; padding-top: 0.5rem; padding-bottom: 0.5rem; } -@media (min-width: 31.25rem) { .search-result-title { display: inline-block; width: 40%; padding-right: 0.5rem; vertical-align: top; } } - -.search-result-doc { display: flex; align-items: center; word-wrap: break-word; } -.search-result-doc.search-result-doc-parent { opacity: 0.5; font-size: 12px !important; } -@media (min-width: 31.25rem) { .search-result-doc.search-result-doc-parent { font-size: 14px !important; } } -@media (min-width: 50rem) { .search-result-doc.search-result-doc-parent { font-size: 11px !important; } } -@media (min-width: 50rem) and (min-width: 31.25rem) { .search-result-doc.search-result-doc-parent { font-size: 12px !important; } } - -.search-result-doc .search-result-icon { width: 1rem; height: 1rem; margin-right: 0.5rem; color: #2c84fa; flex-shrink: 0; } -.search-result-doc .search-result-doc-title { overflow: auto; } - -.search-result-section { margin-left: 1.5rem; word-wrap: break-word; } - -.search-result-rel-url { display: block; margin-left: 1.5rem; overflow: hidden; color: #959396; text-overflow: ellipsis; white-space: nowrap; font-size: 9px !important; } -@media (min-width: 31.25rem) { .search-result-rel-url { font-size: 10px !important; } } - -.search-result-previews { display: block; padding-top: 0.5rem; padding-bottom: 0.5rem; padding-left: 1rem; margin-left: 0.5rem; color: #959396; word-wrap: break-word; border-left: 1px solid; border-left-color: #eeebee; font-size: 11px !important; } -@media (min-width: 31.25rem) { .search-result-previews { font-size: 12px !important; } } -@media (min-width: 31.25rem) { .search-result-previews { display: inline-block; width: 60%; padding-left: 0.5rem; margin-left: 0; vertical-align: top; } } - -.search-result-preview + .search-result-preview { margin-top: 0.25rem; } - -.search-result-highlight { font-weight: bold; } - -.search-no-result { padding-top: 0.5rem; padding-right: 0.75rem; padding-bottom: 0.5rem; padding-left: 0.75rem; font-size: 12px !important; } -@media (min-width: 31.25rem) { .search-no-result { font-size: 14px !important; } } - -.search-button { position: fixed; right: 1rem; bottom: 1rem; display: flex; width: 3.5rem; height: 3.5rem; background-color: #fff; border: 1px solid rgba(44, 132, 250, 0.3); border-radius: 1.75rem; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); align-items: center; justify-content: center; } - -.search-overlay { position: fixed; top: 0; left: 0; z-index: 1; width: 0; height: 0; background-color: rgba(0, 0, 0, 0.3); opacity: 0; transition: opacity ease 400ms, width 0s 400ms, height 0s 400ms; } - -.search-active .search { position: fixed; top: 0; left: 0; width: 100%; height: 100%; padding: 0; } -.search-active .search-input-wrap { height: 4rem; border-radius: 0; } -@media (min-width: 50rem) { .search-active .search-input-wrap { width: 536px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } } -.search-active .search-input { background-color: #fff; } -@media (min-width: 50rem) { .search-active .search-input { padding-left: 2.75rem; } } -@media (min-width: 50rem) { .search-active .search-label { padding-left: 1.25rem; } } -.search-active .search-results { display: block; } -.search-active .search-overlay { width: 100%; height: 100%; opacity: 1; transition: opacity ease 400ms, width 0s, height 0s; } -@media (min-width: 50rem) { .search-active .main { position: fixed; right: 0; left: 0; } } -.search-active .main-header { padding-top: 4rem; } -@media (min-width: 50rem) { .search-active .main-header { padding-top: 0; } } - -.table-wrapper { display: block; width: 100%; max-width: 100%; margin-bottom: 1.5rem; overflow-x: auto; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } - -table { display: table; min-width: 100%; border-collapse: separate; } - -th, td { font-size: 12px !important; min-width: 120px; padding-top: 0.5rem; padding-right: 0.75rem; padding-bottom: 0.5rem; padding-left: 0.75rem; background-color: #fff; border-bottom: 1px solid rgba(238, 235, 238, 0.5); border-left: 1px solid #eeebee; } -@media (min-width: 31.25rem) { th, td { font-size: 14px !important; } } -th:first-of-type, td:first-of-type { border-left: 0; } - -tbody tr:last-of-type th, tbody tr:last-of-type td { border-bottom: 0; } -tbody tr:last-of-type td { padding-bottom: 0.75rem; } - -thead th { border-bottom: 1px solid #eeebee; } - -code { padding: 0.2em 0.15em; font-weight: 400; background-color: #f5f6fa; border: 1px solid #eeebee; border-radius: 4px; } - -pre.highlight, figure.highlight { padding: 0.75rem; margin-top: 0; margin-bottom: 0; background-color: #f5f6fa; border-radius: 4px; -webkit-overflow-scrolling: touch; } -pre.highlight code, figure.highlight code { padding: 0; border: 0; } - -.highlighter-rouge { margin-bottom: 0.75rem; } - -.highlight .c { color: #586e75; } - -.highlight .err { color: #93a1a1; } - -.highlight .g { color: #93a1a1; } - -.highlight .k { color: #859900; } - -.highlight .l { color: #93a1a1; } - -.highlight .n { color: #93a1a1; } - -.highlight .o { color: #859900; } - -.highlight .x { color: #cb4b16; } - -.highlight .p { color: #93a1a1; } - -.highlight .cm { color: #586e75; } - -.highlight .cp { color: #859900; } - -.highlight .c1 { color: #586e75; } - -.highlight .cs { color: #859900; } - -.highlight .gd { color: #2aa198; } - -.highlight .ge { font-style: italic; color: #93a1a1; } - -.highlight .gr { color: #dc322f; } - -.highlight .gh { color: #cb4b16; } - -.highlight .gi { color: #859900; } - -.highlight .go { color: #93a1a1; } - -.highlight .gp { color: #93a1a1; } - -.highlight .gs { font-weight: bold; color: #93a1a1; } - -.highlight .gu { color: #cb4b16; } - -.highlight .gt { color: #93a1a1; } - -.highlight .kc { color: #cb4b16; } - -.highlight .kd { color: #268bd2; } - -.highlight .kn { color: #859900; } - -.highlight .kp { color: #859900; } - -.highlight .kr { color: #268bd2; } - -.highlight .kt { color: #dc322f; } - -.highlight .ld { color: #93a1a1; } - -.highlight .m { color: #2aa198; } - -.highlight .s { color: #2aa198; } - -.highlight .na { color: #555; } - -.highlight .nb { color: #b58900; } - -.highlight .nc { color: #268bd2; } - -.highlight .no { color: #cb4b16; } - -.highlight .nd { color: #268bd2; } - -.highlight .ni { color: #cb4b16; } - -.highlight .ne { color: #cb4b16; } - -.highlight .nf { color: #268bd2; } - -.highlight .nl { color: #555; } - -.highlight .nn { color: #93a1a1; } - -.highlight .nx { color: #555; } - -.highlight .py { color: #93a1a1; } - -.highlight .nt { color: #268bd2; } - -.highlight .nv { color: #268bd2; } - -.highlight .ow { color: #859900; } - -.highlight .w { color: #93a1a1; } - -.highlight .mf { color: #2aa198; } - -.highlight .mh { color: #2aa198; } - -.highlight .mi { color: #2aa198; } - -.highlight .mo { color: #2aa198; } - -.highlight .sb { color: #586e75; } - -.highlight .sc { color: #2aa198; } - -.highlight .sd { color: #93a1a1; } - -.highlight .s2 { color: #2aa198; } - -.highlight .se { color: #cb4b16; } - -.highlight .sh { color: #93a1a1; } - -.highlight .si { color: #2aa198; } - -.highlight .sx { color: #2aa198; } - -.highlight .sr { color: #dc322f; } - -.highlight .s1 { color: #2aa198; } - -.highlight .ss { color: #2aa198; } - -.highlight .bp { color: #268bd2; } - -.highlight .vc { color: #268bd2; } - -.highlight .vg { color: #268bd2; } - -.highlight .vi { color: #268bd2; } - -.highlight .il { color: #2aa198; } - -.code-example { padding: 0.75rem; margin-bottom: 0.75rem; overflow: auto; border: 1px solid #eeebee; border-radius: 4px; } -.code-example + .highlighter-rouge, .code-example + figure.highlight { position: relative; margin-top: -1rem; border-right: 1px solid #eeebee; border-bottom: 1px solid #eeebee; border-left: 1px solid #eeebee; border-top-left-radius: 0; border-top-right-radius: 0; } - -.text-grey-dk-000 { color: #959396 !important; } - -.text-grey-dk-100 { color: #5c5962 !important; } - -.text-grey-dk-200 { color: #44434d !important; } - -.text-grey-dk-250 { color: #302d36 !important; } - -.text-grey-dk-300 { color: #27262b !important; } - -.text-grey-lt-000 { color: #f5f6fa !important; } - -.text-grey-lt-100 { color: #eeebee !important; } - -.text-grey-lt-200 { color: #ecebed !important; } - -.text-grey-lt-300 { color: #e6e1e8 !important; } - -.text-blue-000 { color: #2c84fa !important; } - -.text-blue-100 { color: #2869e6 !important; } - -.text-blue-200 { color: #264caf !important; } - -.text-blue-300 { color: #183385 !important; } - -.text-green-000 { color: #41d693 !important; } - -.text-green-100 { color: #11b584 !important; } - -.text-green-200 { color: #009c7b !important; } - -.text-green-300 { color: #026e57 !important; } - -.text-purple-000 { color: #7253ed !important; } - -.text-purple-100 { color: #5e41d0 !important; } - -.text-purple-200 { color: #4e26af !important; } - -.text-purple-300 { color: #381885 !important; } - -.text-yellow-000 { color: #ffeb82 !important; } - -.text-yellow-100 { color: #fadf50 !important; } - -.text-yellow-200 { color: #f7d12e !important; } - -.text-yellow-300 { color: #e7af06 !important; } - -.text-red-000 { color: #f77e7e !important; } - -.text-red-100 { color: #f96e65 !important; } - -.text-red-200 { color: #e94c4c !important; } - -.text-red-300 { color: #dd2e2e !important; } - -.bg-grey-dk-000 { background-color: #959396 !important; } - -.bg-grey-dk-100 { background-color: #5c5962 !important; } - -.bg-grey-dk-200 { background-color: #44434d !important; } - -.bg-grey-dk-250 { background-color: #302d36 !important; } - -.bg-grey-dk-300 { background-color: #27262b !important; } - -.bg-grey-lt-000 { background-color: #f5f6fa !important; } - -.bg-grey-lt-100 { background-color: #eeebee !important; } - -.bg-grey-lt-200 { background-color: #ecebed !important; } - -.bg-grey-lt-300 { background-color: #e6e1e8 !important; } - -.bg-blue-000 { background-color: #2c84fa !important; } - -.bg-blue-100 { background-color: #2869e6 !important; } - -.bg-blue-200 { background-color: #264caf !important; } - -.bg-blue-300 { background-color: #183385 !important; } - -.bg-green-000 { background-color: #41d693 !important; } - -.bg-green-100 { background-color: #11b584 !important; } - -.bg-green-200 { background-color: #009c7b !important; } - -.bg-green-300 { background-color: #026e57 !important; } - -.bg-purple-000 { background-color: #7253ed !important; } - -.bg-purple-100 { background-color: #5e41d0 !important; } - -.bg-purple-200 { background-color: #4e26af !important; } - -.bg-purple-300 { background-color: #381885 !important; } - -.bg-yellow-000 { background-color: #ffeb82 !important; } - -.bg-yellow-100 { background-color: #fadf50 !important; } - -.bg-yellow-200 { background-color: #f7d12e !important; } - -.bg-yellow-300 { background-color: #e7af06 !important; } - -.bg-red-000 { background-color: #f77e7e !important; } - -.bg-red-100 { background-color: #f96e65 !important; } - -.bg-red-200 { background-color: #e94c4c !important; } - -.bg-red-300 { background-color: #dd2e2e !important; } - -.d-block { display: block !important; } - -.d-flex { display: flex !important; } - -.d-inline { display: inline !important; } - -.d-inline-block { display: inline-block !important; } - -.d-none { display: none !important; } - -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 20rem) { .d-xs-block { display: block !important; } - .d-xs-flex { display: flex !important; } - .d-xs-inline { display: inline !important; } - .d-xs-inline-block { display: inline-block !important; } - .d-xs-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } - .d-sm-flex { display: flex !important; } - .d-sm-inline { display: inline !important; } - .d-sm-inline-block { display: inline-block !important; } - .d-sm-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 50rem) { .d-md-block { display: block !important; } - .d-md-flex { display: flex !important; } - .d-md-inline { display: inline !important; } - .d-md-inline-block { display: inline-block !important; } - .d-md-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } - .d-xl-flex { display: flex !important; } - .d-xl-inline { display: inline !important; } - .d-xl-inline-block { display: inline-block !important; } - .d-xl-none { display: none !important; } } -.float-left { float: left !important; } - -.float-right { float: right !important; } - -.flex-justify-start { justify-content: flex-start !important; } - -.flex-justify-end { justify-content: flex-end !important; } - -.flex-justify-between { justify-content: space-between !important; } - -.flex-justify-around { justify-content: space-around !important; } - -.v-align-baseline { vertical-align: baseline !important; } - -.v-align-bottom { vertical-align: bottom !important; } - -.v-align-middle { vertical-align: middle !important; } - -.v-align-text-bottom { vertical-align: text-bottom !important; } - -.v-align-text-top { vertical-align: text-top !important; } - -.v-align-top { vertical-align: top !important; } - -.fs-1 { font-size: 9px !important; } -@media (min-width: 31.25rem) { .fs-1 { font-size: 10px !important; } } - -.fs-2 { font-size: 11px !important; } -@media (min-width: 31.25rem) { .fs-2 { font-size: 12px !important; } } - -.fs-3 { font-size: 12px !important; } -@media (min-width: 31.25rem) { .fs-3 { font-size: 14px !important; } } - -.fs-4 { font-size: 15px !important; } -@media (min-width: 31.25rem) { .fs-4 { font-size: 16px !important; } } - -.fs-5 { font-size: 16px !important; } -@media (min-width: 31.25rem) { .fs-5 { font-size: 18px !important; } } - -.fs-6 { font-size: 18px !important; } -@media (min-width: 31.25rem) { .fs-6 { font-size: 24px !important; line-height: 1.25; } } - -.fs-7 { font-size: 24px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-7 { font-size: 32px !important; } } - -.fs-8 { font-size: 32px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-8 { font-size: 36px !important; } } - -.fs-9 { font-size: 36px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-9 { font-size: 42px !important; } } - -.fs-10 { font-size: 42px !important; line-height: 1.25; } -@media (min-width: 31.25rem) { .fs-10 { font-size: 48px !important; } } - -.fw-300 { font-weight: 300 !important; } - -.fw-400 { font-weight: 400 !important; } - -.fw-500 { font-weight: 500 !important; } - -.fw-700 { font-weight: 700 !important; } - -.lh-0 { line-height: 0 !important; } - -.lh-default { line-height: 1.4; } - -.lh-tight { line-height: 1.25; } - -.ls-5 { letter-spacing: 0.05em !important; } - -.ls-10 { letter-spacing: 0.1em !important; } - -.ls-0 { letter-spacing: 0 !important; } - -.text-uppercase { text-transform: uppercase !important; } - -.list-style-none { padding: 0 !important; margin: 0 !important; list-style: none !important; } -.list-style-none li::before { display: none !important; } - -.mx-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-0 { margin: 0 !important; } - -.mt-0 { margin-top: 0 !important; } - -.mr-0 { margin-right: 0 !important; } - -.mb-0 { margin-bottom: 0 !important; } - -.ml-0 { margin-left: 0 !important; } - -.mx-0 { margin-right: 0 !important; margin-left: 0 !important; } - -.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - -.mxn-0 { margin-right: -0 !important; margin-left: -0 !important; } - -.mx-0-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-1 { margin: 0.25rem !important; } - -.mt-1 { margin-top: 0.25rem !important; } - -.mr-1 { margin-right: 0.25rem !important; } - -.mb-1 { margin-bottom: 0.25rem !important; } - -.ml-1 { margin-left: 0.25rem !important; } - -.mx-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - -.my-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - -.mxn-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } - -.mx-1-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-2 { margin: 0.5rem !important; } - -.mt-2 { margin-top: 0.5rem !important; } - -.mr-2 { margin-right: 0.5rem !important; } - -.mb-2 { margin-bottom: 0.5rem !important; } - -.ml-2 { margin-left: 0.5rem !important; } - -.mx-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - -.my-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - -.mxn-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } - -.mx-2-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-3 { margin: 0.75rem !important; } - -.mt-3 { margin-top: 0.75rem !important; } - -.mr-3 { margin-right: 0.75rem !important; } - -.mb-3 { margin-bottom: 0.75rem !important; } - -.ml-3 { margin-left: 0.75rem !important; } - -.mx-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - -.my-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - -.mxn-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } - -.mx-3-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-4 { margin: 1rem !important; } - -.mt-4 { margin-top: 1rem !important; } - -.mr-4 { margin-right: 1rem !important; } - -.mb-4 { margin-bottom: 1rem !important; } - -.ml-4 { margin-left: 1rem !important; } - -.mx-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - -.my-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - -.mxn-4 { margin-right: -1rem !important; margin-left: -1rem !important; } - -.mx-4-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-5 { margin: 1.5rem !important; } - -.mt-5 { margin-top: 1.5rem !important; } - -.mr-5 { margin-right: 1.5rem !important; } - -.mb-5 { margin-bottom: 1.5rem !important; } - -.ml-5 { margin-left: 1.5rem !important; } - -.mx-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - -.my-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - -.mxn-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } - -.mx-5-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-6 { margin: 2rem !important; } - -.mt-6 { margin-top: 2rem !important; } - -.mr-6 { margin-right: 2rem !important; } - -.mb-6 { margin-bottom: 2rem !important; } - -.ml-6 { margin-left: 2rem !important; } - -.mx-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - -.my-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - -.mxn-6 { margin-right: -2rem !important; margin-left: -2rem !important; } - -.mx-6-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-7 { margin: 2.5rem !important; } - -.mt-7 { margin-top: 2.5rem !important; } - -.mr-7 { margin-right: 2.5rem !important; } - -.mb-7 { margin-bottom: 2.5rem !important; } - -.ml-7 { margin-left: 2.5rem !important; } - -.mx-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - -.my-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - -.mxn-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } - -.mx-7-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-8 { margin: 3rem !important; } - -.mt-8 { margin-top: 3rem !important; } - -.mr-8 { margin-right: 3rem !important; } - -.mb-8 { margin-bottom: 3rem !important; } - -.ml-8 { margin-left: 3rem !important; } - -.mx-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - -.my-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - -.mxn-8 { margin-right: -3rem !important; margin-left: -3rem !important; } - -.mx-8-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-9 { margin: 3.5rem !important; } - -.mt-9 { margin-top: 3.5rem !important; } - -.mr-9 { margin-right: 3.5rem !important; } - -.mb-9 { margin-bottom: 3.5rem !important; } - -.ml-9 { margin-left: 3.5rem !important; } - -.mx-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - -.my-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - -.mxn-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } - -.mx-9-auto { margin-right: auto !important; margin-left: auto !important; } - -.m-10 { margin: 4rem !important; } - -.mt-10 { margin-top: 4rem !important; } - -.mr-10 { margin-right: 4rem !important; } - -.mb-10 { margin-bottom: 4rem !important; } - -.ml-10 { margin-left: 4rem !important; } - -.mx-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - -.my-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - -.mxn-10 { margin-right: -4rem !important; margin-left: -4rem !important; } - -.mx-10-auto { margin-right: auto !important; margin-left: auto !important; } - -@media (min-width: 20rem) { .m-xs-0 { margin: 0 !important; } - .mt-xs-0 { margin-top: 0 !important; } - .mr-xs-0 { margin-right: 0 !important; } - .mb-xs-0 { margin-bottom: 0 !important; } - .ml-xs-0 { margin-left: 0 !important; } - .mx-xs-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-xs-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-xs-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 20rem) { .m-xs-1 { margin: 0.25rem !important; } - .mt-xs-1 { margin-top: 0.25rem !important; } - .mr-xs-1 { margin-right: 0.25rem !important; } - .mb-xs-1 { margin-bottom: 0.25rem !important; } - .ml-xs-1 { margin-left: 0.25rem !important; } - .mx-xs-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-xs-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-xs-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 20rem) { .m-xs-2 { margin: 0.5rem !important; } - .mt-xs-2 { margin-top: 0.5rem !important; } - .mr-xs-2 { margin-right: 0.5rem !important; } - .mb-xs-2 { margin-bottom: 0.5rem !important; } - .ml-xs-2 { margin-left: 0.5rem !important; } - .mx-xs-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-xs-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-xs-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 20rem) { .m-xs-3 { margin: 0.75rem !important; } - .mt-xs-3 { margin-top: 0.75rem !important; } - .mr-xs-3 { margin-right: 0.75rem !important; } - .mb-xs-3 { margin-bottom: 0.75rem !important; } - .ml-xs-3 { margin-left: 0.75rem !important; } - .mx-xs-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-xs-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-xs-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 20rem) { .m-xs-4 { margin: 1rem !important; } - .mt-xs-4 { margin-top: 1rem !important; } - .mr-xs-4 { margin-right: 1rem !important; } - .mb-xs-4 { margin-bottom: 1rem !important; } - .ml-xs-4 { margin-left: 1rem !important; } - .mx-xs-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-xs-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-xs-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 20rem) { .m-xs-5 { margin: 1.5rem !important; } - .mt-xs-5 { margin-top: 1.5rem !important; } - .mr-xs-5 { margin-right: 1.5rem !important; } - .mb-xs-5 { margin-bottom: 1.5rem !important; } - .ml-xs-5 { margin-left: 1.5rem !important; } - .mx-xs-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-xs-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-xs-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 20rem) { .m-xs-6 { margin: 2rem !important; } - .mt-xs-6 { margin-top: 2rem !important; } - .mr-xs-6 { margin-right: 2rem !important; } - .mb-xs-6 { margin-bottom: 2rem !important; } - .ml-xs-6 { margin-left: 2rem !important; } - .mx-xs-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-xs-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-xs-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 20rem) { .m-xs-7 { margin: 2.5rem !important; } - .mt-xs-7 { margin-top: 2.5rem !important; } - .mr-xs-7 { margin-right: 2.5rem !important; } - .mb-xs-7 { margin-bottom: 2.5rem !important; } - .ml-xs-7 { margin-left: 2.5rem !important; } - .mx-xs-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-xs-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-xs-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 20rem) { .m-xs-8 { margin: 3rem !important; } - .mt-xs-8 { margin-top: 3rem !important; } - .mr-xs-8 { margin-right: 3rem !important; } - .mb-xs-8 { margin-bottom: 3rem !important; } - .ml-xs-8 { margin-left: 3rem !important; } - .mx-xs-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-xs-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-xs-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 20rem) { .m-xs-9 { margin: 3.5rem !important; } - .mt-xs-9 { margin-top: 3.5rem !important; } - .mr-xs-9 { margin-right: 3.5rem !important; } - .mb-xs-9 { margin-bottom: 3.5rem !important; } - .ml-xs-9 { margin-left: 3.5rem !important; } - .mx-xs-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-xs-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-xs-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 20rem) { .m-xs-10 { margin: 4rem !important; } - .mt-xs-10 { margin-top: 4rem !important; } - .mr-xs-10 { margin-right: 4rem !important; } - .mb-xs-10 { margin-bottom: 4rem !important; } - .ml-xs-10 { margin-left: 4rem !important; } - .mx-xs-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-xs-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-xs-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 31.25rem) { .m-sm-0 { margin: 0 !important; } - .mt-sm-0 { margin-top: 0 !important; } - .mr-sm-0 { margin-right: 0 !important; } - .mb-sm-0 { margin-bottom: 0 !important; } - .ml-sm-0 { margin-left: 0 !important; } - .mx-sm-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-sm-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-sm-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 31.25rem) { .m-sm-1 { margin: 0.25rem !important; } - .mt-sm-1 { margin-top: 0.25rem !important; } - .mr-sm-1 { margin-right: 0.25rem !important; } - .mb-sm-1 { margin-bottom: 0.25rem !important; } - .ml-sm-1 { margin-left: 0.25rem !important; } - .mx-sm-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-sm-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-sm-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 31.25rem) { .m-sm-2 { margin: 0.5rem !important; } - .mt-sm-2 { margin-top: 0.5rem !important; } - .mr-sm-2 { margin-right: 0.5rem !important; } - .mb-sm-2 { margin-bottom: 0.5rem !important; } - .ml-sm-2 { margin-left: 0.5rem !important; } - .mx-sm-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-sm-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-sm-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-3 { margin: 0.75rem !important; } - .mt-sm-3 { margin-top: 0.75rem !important; } - .mr-sm-3 { margin-right: 0.75rem !important; } - .mb-sm-3 { margin-bottom: 0.75rem !important; } - .ml-sm-3 { margin-left: 0.75rem !important; } - .mx-sm-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-sm-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-sm-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 31.25rem) { .m-sm-4 { margin: 1rem !important; } - .mt-sm-4 { margin-top: 1rem !important; } - .mr-sm-4 { margin-right: 1rem !important; } - .mb-sm-4 { margin-bottom: 1rem !important; } - .ml-sm-4 { margin-left: 1rem !important; } - .mx-sm-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-sm-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-sm-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 31.25rem) { .m-sm-5 { margin: 1.5rem !important; } - .mt-sm-5 { margin-top: 1.5rem !important; } - .mr-sm-5 { margin-right: 1.5rem !important; } - .mb-sm-5 { margin-bottom: 1.5rem !important; } - .ml-sm-5 { margin-left: 1.5rem !important; } - .mx-sm-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-sm-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-sm-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-6 { margin: 2rem !important; } - .mt-sm-6 { margin-top: 2rem !important; } - .mr-sm-6 { margin-right: 2rem !important; } - .mb-sm-6 { margin-bottom: 2rem !important; } - .ml-sm-6 { margin-left: 2rem !important; } - .mx-sm-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-sm-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-sm-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 31.25rem) { .m-sm-7 { margin: 2.5rem !important; } - .mt-sm-7 { margin-top: 2.5rem !important; } - .mr-sm-7 { margin-right: 2.5rem !important; } - .mb-sm-7 { margin-bottom: 2.5rem !important; } - .ml-sm-7 { margin-left: 2.5rem !important; } - .mx-sm-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-sm-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-sm-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-8 { margin: 3rem !important; } - .mt-sm-8 { margin-top: 3rem !important; } - .mr-sm-8 { margin-right: 3rem !important; } - .mb-sm-8 { margin-bottom: 3rem !important; } - .ml-sm-8 { margin-left: 3rem !important; } - .mx-sm-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-sm-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-sm-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 31.25rem) { .m-sm-9 { margin: 3.5rem !important; } - .mt-sm-9 { margin-top: 3.5rem !important; } - .mr-sm-9 { margin-right: 3.5rem !important; } - .mb-sm-9 { margin-bottom: 3.5rem !important; } - .ml-sm-9 { margin-left: 3.5rem !important; } - .mx-sm-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-sm-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-sm-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 31.25rem) { .m-sm-10 { margin: 4rem !important; } - .mt-sm-10 { margin-top: 4rem !important; } - .mr-sm-10 { margin-right: 4rem !important; } - .mb-sm-10 { margin-bottom: 4rem !important; } - .ml-sm-10 { margin-left: 4rem !important; } - .mx-sm-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-sm-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-sm-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 50rem) { .m-md-0 { margin: 0 !important; } - .mt-md-0 { margin-top: 0 !important; } - .mr-md-0 { margin-right: 0 !important; } - .mb-md-0 { margin-bottom: 0 !important; } - .ml-md-0 { margin-left: 0 !important; } - .mx-md-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-md-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-md-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 50rem) { .m-md-1 { margin: 0.25rem !important; } - .mt-md-1 { margin-top: 0.25rem !important; } - .mr-md-1 { margin-right: 0.25rem !important; } - .mb-md-1 { margin-bottom: 0.25rem !important; } - .ml-md-1 { margin-left: 0.25rem !important; } - .mx-md-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-md-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-md-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 50rem) { .m-md-2 { margin: 0.5rem !important; } - .mt-md-2 { margin-top: 0.5rem !important; } - .mr-md-2 { margin-right: 0.5rem !important; } - .mb-md-2 { margin-bottom: 0.5rem !important; } - .ml-md-2 { margin-left: 0.5rem !important; } - .mx-md-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-md-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-md-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 50rem) { .m-md-3 { margin: 0.75rem !important; } - .mt-md-3 { margin-top: 0.75rem !important; } - .mr-md-3 { margin-right: 0.75rem !important; } - .mb-md-3 { margin-bottom: 0.75rem !important; } - .ml-md-3 { margin-left: 0.75rem !important; } - .mx-md-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-md-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-md-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 50rem) { .m-md-4 { margin: 1rem !important; } - .mt-md-4 { margin-top: 1rem !important; } - .mr-md-4 { margin-right: 1rem !important; } - .mb-md-4 { margin-bottom: 1rem !important; } - .ml-md-4 { margin-left: 1rem !important; } - .mx-md-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-md-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-md-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 50rem) { .m-md-5 { margin: 1.5rem !important; } - .mt-md-5 { margin-top: 1.5rem !important; } - .mr-md-5 { margin-right: 1.5rem !important; } - .mb-md-5 { margin-bottom: 1.5rem !important; } - .ml-md-5 { margin-left: 1.5rem !important; } - .mx-md-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-md-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-md-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 50rem) { .m-md-6 { margin: 2rem !important; } - .mt-md-6 { margin-top: 2rem !important; } - .mr-md-6 { margin-right: 2rem !important; } - .mb-md-6 { margin-bottom: 2rem !important; } - .ml-md-6 { margin-left: 2rem !important; } - .mx-md-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-md-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-md-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 50rem) { .m-md-7 { margin: 2.5rem !important; } - .mt-md-7 { margin-top: 2.5rem !important; } - .mr-md-7 { margin-right: 2.5rem !important; } - .mb-md-7 { margin-bottom: 2.5rem !important; } - .ml-md-7 { margin-left: 2.5rem !important; } - .mx-md-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-md-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-md-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 50rem) { .m-md-8 { margin: 3rem !important; } - .mt-md-8 { margin-top: 3rem !important; } - .mr-md-8 { margin-right: 3rem !important; } - .mb-md-8 { margin-bottom: 3rem !important; } - .ml-md-8 { margin-left: 3rem !important; } - .mx-md-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-md-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-md-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 50rem) { .m-md-9 { margin: 3.5rem !important; } - .mt-md-9 { margin-top: 3.5rem !important; } - .mr-md-9 { margin-right: 3.5rem !important; } - .mb-md-9 { margin-bottom: 3.5rem !important; } - .ml-md-9 { margin-left: 3.5rem !important; } - .mx-md-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-md-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-md-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 50rem) { .m-md-10 { margin: 4rem !important; } - .mt-md-10 { margin-top: 4rem !important; } - .mr-md-10 { margin-right: 4rem !important; } - .mb-md-10 { margin-bottom: 4rem !important; } - .ml-md-10 { margin-left: 4rem !important; } - .mx-md-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-md-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-md-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 66.5rem) { .m-lg-0 { margin: 0 !important; } - .mt-lg-0 { margin-top: 0 !important; } - .mr-lg-0 { margin-right: 0 !important; } - .mb-lg-0 { margin-bottom: 0 !important; } - .ml-lg-0 { margin-left: 0 !important; } - .mx-lg-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-lg-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-lg-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 66.5rem) { .m-lg-1 { margin: 0.25rem !important; } - .mt-lg-1 { margin-top: 0.25rem !important; } - .mr-lg-1 { margin-right: 0.25rem !important; } - .mb-lg-1 { margin-bottom: 0.25rem !important; } - .ml-lg-1 { margin-left: 0.25rem !important; } - .mx-lg-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-lg-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-lg-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 66.5rem) { .m-lg-2 { margin: 0.5rem !important; } - .mt-lg-2 { margin-top: 0.5rem !important; } - .mr-lg-2 { margin-right: 0.5rem !important; } - .mb-lg-2 { margin-bottom: 0.5rem !important; } - .ml-lg-2 { margin-left: 0.5rem !important; } - .mx-lg-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-lg-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-lg-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-3 { margin: 0.75rem !important; } - .mt-lg-3 { margin-top: 0.75rem !important; } - .mr-lg-3 { margin-right: 0.75rem !important; } - .mb-lg-3 { margin-bottom: 0.75rem !important; } - .ml-lg-3 { margin-left: 0.75rem !important; } - .mx-lg-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-lg-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-lg-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 66.5rem) { .m-lg-4 { margin: 1rem !important; } - .mt-lg-4 { margin-top: 1rem !important; } - .mr-lg-4 { margin-right: 1rem !important; } - .mb-lg-4 { margin-bottom: 1rem !important; } - .ml-lg-4 { margin-left: 1rem !important; } - .mx-lg-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-lg-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-lg-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 66.5rem) { .m-lg-5 { margin: 1.5rem !important; } - .mt-lg-5 { margin-top: 1.5rem !important; } - .mr-lg-5 { margin-right: 1.5rem !important; } - .mb-lg-5 { margin-bottom: 1.5rem !important; } - .ml-lg-5 { margin-left: 1.5rem !important; } - .mx-lg-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-lg-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-lg-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-6 { margin: 2rem !important; } - .mt-lg-6 { margin-top: 2rem !important; } - .mr-lg-6 { margin-right: 2rem !important; } - .mb-lg-6 { margin-bottom: 2rem !important; } - .ml-lg-6 { margin-left: 2rem !important; } - .mx-lg-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-lg-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-lg-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 66.5rem) { .m-lg-7 { margin: 2.5rem !important; } - .mt-lg-7 { margin-top: 2.5rem !important; } - .mr-lg-7 { margin-right: 2.5rem !important; } - .mb-lg-7 { margin-bottom: 2.5rem !important; } - .ml-lg-7 { margin-left: 2.5rem !important; } - .mx-lg-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-lg-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-lg-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-8 { margin: 3rem !important; } - .mt-lg-8 { margin-top: 3rem !important; } - .mr-lg-8 { margin-right: 3rem !important; } - .mb-lg-8 { margin-bottom: 3rem !important; } - .ml-lg-8 { margin-left: 3rem !important; } - .mx-lg-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-lg-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-lg-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 66.5rem) { .m-lg-9 { margin: 3.5rem !important; } - .mt-lg-9 { margin-top: 3.5rem !important; } - .mr-lg-9 { margin-right: 3.5rem !important; } - .mb-lg-9 { margin-bottom: 3.5rem !important; } - .ml-lg-9 { margin-left: 3.5rem !important; } - .mx-lg-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-lg-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-lg-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 66.5rem) { .m-lg-10 { margin: 4rem !important; } - .mt-lg-10 { margin-top: 4rem !important; } - .mr-lg-10 { margin-right: 4rem !important; } - .mb-lg-10 { margin-bottom: 4rem !important; } - .ml-lg-10 { margin-left: 4rem !important; } - .mx-lg-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-lg-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-lg-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -@media (min-width: 87.5rem) { .m-xl-0 { margin: 0 !important; } - .mt-xl-0 { margin-top: 0 !important; } - .mr-xl-0 { margin-right: 0 !important; } - .mb-xl-0 { margin-bottom: 0 !important; } - .ml-xl-0 { margin-left: 0 !important; } - .mx-xl-0 { margin-right: 0 !important; margin-left: 0 !important; } - .my-xl-0 { margin-top: 0 !important; margin-bottom: 0 !important; } - .mxn-xl-0 { margin-right: -0 !important; margin-left: -0 !important; } } -@media (min-width: 87.5rem) { .m-xl-1 { margin: 0.25rem !important; } - .mt-xl-1 { margin-top: 0.25rem !important; } - .mr-xl-1 { margin-right: 0.25rem !important; } - .mb-xl-1 { margin-bottom: 0.25rem !important; } - .ml-xl-1 { margin-left: 0.25rem !important; } - .mx-xl-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } - .my-xl-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } - .mxn-xl-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } -@media (min-width: 87.5rem) { .m-xl-2 { margin: 0.5rem !important; } - .mt-xl-2 { margin-top: 0.5rem !important; } - .mr-xl-2 { margin-right: 0.5rem !important; } - .mb-xl-2 { margin-bottom: 0.5rem !important; } - .ml-xl-2 { margin-left: 0.5rem !important; } - .mx-xl-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } - .my-xl-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } - .mxn-xl-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-3 { margin: 0.75rem !important; } - .mt-xl-3 { margin-top: 0.75rem !important; } - .mr-xl-3 { margin-right: 0.75rem !important; } - .mb-xl-3 { margin-bottom: 0.75rem !important; } - .ml-xl-3 { margin-left: 0.75rem !important; } - .mx-xl-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } - .my-xl-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } - .mxn-xl-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } -@media (min-width: 87.5rem) { .m-xl-4 { margin: 1rem !important; } - .mt-xl-4 { margin-top: 1rem !important; } - .mr-xl-4 { margin-right: 1rem !important; } - .mb-xl-4 { margin-bottom: 1rem !important; } - .ml-xl-4 { margin-left: 1rem !important; } - .mx-xl-4 { margin-right: 1rem !important; margin-left: 1rem !important; } - .my-xl-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } - .mxn-xl-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } -@media (min-width: 87.5rem) { .m-xl-5 { margin: 1.5rem !important; } - .mt-xl-5 { margin-top: 1.5rem !important; } - .mr-xl-5 { margin-right: 1.5rem !important; } - .mb-xl-5 { margin-bottom: 1.5rem !important; } - .ml-xl-5 { margin-left: 1.5rem !important; } - .mx-xl-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } - .my-xl-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } - .mxn-xl-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-6 { margin: 2rem !important; } - .mt-xl-6 { margin-top: 2rem !important; } - .mr-xl-6 { margin-right: 2rem !important; } - .mb-xl-6 { margin-bottom: 2rem !important; } - .ml-xl-6 { margin-left: 2rem !important; } - .mx-xl-6 { margin-right: 2rem !important; margin-left: 2rem !important; } - .my-xl-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } - .mxn-xl-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } -@media (min-width: 87.5rem) { .m-xl-7 { margin: 2.5rem !important; } - .mt-xl-7 { margin-top: 2.5rem !important; } - .mr-xl-7 { margin-right: 2.5rem !important; } - .mb-xl-7 { margin-bottom: 2.5rem !important; } - .ml-xl-7 { margin-left: 2.5rem !important; } - .mx-xl-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } - .my-xl-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } - .mxn-xl-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-8 { margin: 3rem !important; } - .mt-xl-8 { margin-top: 3rem !important; } - .mr-xl-8 { margin-right: 3rem !important; } - .mb-xl-8 { margin-bottom: 3rem !important; } - .ml-xl-8 { margin-left: 3rem !important; } - .mx-xl-8 { margin-right: 3rem !important; margin-left: 3rem !important; } - .my-xl-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } - .mxn-xl-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } -@media (min-width: 87.5rem) { .m-xl-9 { margin: 3.5rem !important; } - .mt-xl-9 { margin-top: 3.5rem !important; } - .mr-xl-9 { margin-right: 3.5rem !important; } - .mb-xl-9 { margin-bottom: 3.5rem !important; } - .ml-xl-9 { margin-left: 3.5rem !important; } - .mx-xl-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } - .my-xl-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } - .mxn-xl-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } -@media (min-width: 87.5rem) { .m-xl-10 { margin: 4rem !important; } - .mt-xl-10 { margin-top: 4rem !important; } - .mr-xl-10 { margin-right: 4rem !important; } - .mb-xl-10 { margin-bottom: 4rem !important; } - .ml-xl-10 { margin-left: 4rem !important; } - .mx-xl-10 { margin-right: 4rem !important; margin-left: 4rem !important; } - .my-xl-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } - .mxn-xl-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } -.p-0 { padding: 0 !important; } - -.pt-0 { padding-top: 0 !important; } - -.pr-0 { padding-right: 0 !important; } - -.pb-0 { padding-bottom: 0 !important; } - -.pl-0 { padding-left: 0 !important; } - -.px-0 { padding-right: 0 !important; padding-left: 0 !important; } - -.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - -.p-1 { padding: 0.25rem !important; } - -.pt-1 { padding-top: 0.25rem !important; } - -.pr-1 { padding-right: 0.25rem !important; } - -.pb-1 { padding-bottom: 0.25rem !important; } - -.pl-1 { padding-left: 0.25rem !important; } - -.px-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - -.py-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - -.p-2 { padding: 0.5rem !important; } - -.pt-2 { padding-top: 0.5rem !important; } - -.pr-2 { padding-right: 0.5rem !important; } - -.pb-2 { padding-bottom: 0.5rem !important; } - -.pl-2 { padding-left: 0.5rem !important; } - -.px-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - -.py-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - -.p-3 { padding: 0.75rem !important; } - -.pt-3 { padding-top: 0.75rem !important; } - -.pr-3 { padding-right: 0.75rem !important; } - -.pb-3 { padding-bottom: 0.75rem !important; } - -.pl-3 { padding-left: 0.75rem !important; } - -.px-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - -.py-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - -.p-4 { padding: 1rem !important; } - -.pt-4 { padding-top: 1rem !important; } - -.pr-4 { padding-right: 1rem !important; } - -.pb-4 { padding-bottom: 1rem !important; } - -.pl-4 { padding-left: 1rem !important; } - -.px-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - -.py-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - -.p-5 { padding: 1.5rem !important; } - -.pt-5 { padding-top: 1.5rem !important; } - -.pr-5 { padding-right: 1.5rem !important; } - -.pb-5 { padding-bottom: 1.5rem !important; } - -.pl-5 { padding-left: 1.5rem !important; } - -.px-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - -.py-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - -.p-6 { padding: 2rem !important; } - -.pt-6 { padding-top: 2rem !important; } - -.pr-6 { padding-right: 2rem !important; } - -.pb-6 { padding-bottom: 2rem !important; } - -.pl-6 { padding-left: 2rem !important; } - -.px-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - -.py-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - -.p-7 { padding: 2.5rem !important; } - -.pt-7 { padding-top: 2.5rem !important; } - -.pr-7 { padding-right: 2.5rem !important; } - -.pb-7 { padding-bottom: 2.5rem !important; } - -.pl-7 { padding-left: 2.5rem !important; } - -.px-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - -.py-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - -.p-8 { padding: 3rem !important; } - -.pt-8 { padding-top: 3rem !important; } - -.pr-8 { padding-right: 3rem !important; } - -.pb-8 { padding-bottom: 3rem !important; } - -.pl-8 { padding-left: 3rem !important; } - -.px-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - -.py-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - -.p-9 { padding: 3.5rem !important; } - -.pt-9 { padding-top: 3.5rem !important; } - -.pr-9 { padding-right: 3.5rem !important; } - -.pb-9 { padding-bottom: 3.5rem !important; } - -.pl-9 { padding-left: 3.5rem !important; } - -.px-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - -.py-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - -.p-10 { padding: 4rem !important; } - -.pt-10 { padding-top: 4rem !important; } - -.pr-10 { padding-right: 4rem !important; } - -.pb-10 { padding-bottom: 4rem !important; } - -.pl-10 { padding-left: 4rem !important; } - -.px-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - -.py-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } - -@media (min-width: 20rem) { .p-xs-0 { padding: 0 !important; } - .pt-xs-0 { padding-top: 0 !important; } - .pr-xs-0 { padding-right: 0 !important; } - .pb-xs-0 { padding-bottom: 0 !important; } - .pl-xs-0 { padding-left: 0 !important; } - .px-xs-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-xs-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-xs-1 { padding: 0.25rem !important; } - .pt-xs-1 { padding-top: 0.25rem !important; } - .pr-xs-1 { padding-right: 0.25rem !important; } - .pb-xs-1 { padding-bottom: 0.25rem !important; } - .pl-xs-1 { padding-left: 0.25rem !important; } - .px-xs-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-xs-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-xs-2 { padding: 0.5rem !important; } - .pt-xs-2 { padding-top: 0.5rem !important; } - .pr-xs-2 { padding-right: 0.5rem !important; } - .pb-xs-2 { padding-bottom: 0.5rem !important; } - .pl-xs-2 { padding-left: 0.5rem !important; } - .px-xs-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-xs-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-xs-3 { padding: 0.75rem !important; } - .pt-xs-3 { padding-top: 0.75rem !important; } - .pr-xs-3 { padding-right: 0.75rem !important; } - .pb-xs-3 { padding-bottom: 0.75rem !important; } - .pl-xs-3 { padding-left: 0.75rem !important; } - .px-xs-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-xs-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-xs-4 { padding: 1rem !important; } - .pt-xs-4 { padding-top: 1rem !important; } - .pr-xs-4 { padding-right: 1rem !important; } - .pb-xs-4 { padding-bottom: 1rem !important; } - .pl-xs-4 { padding-left: 1rem !important; } - .px-xs-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-xs-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-xs-5 { padding: 1.5rem !important; } - .pt-xs-5 { padding-top: 1.5rem !important; } - .pr-xs-5 { padding-right: 1.5rem !important; } - .pb-xs-5 { padding-bottom: 1.5rem !important; } - .pl-xs-5 { padding-left: 1.5rem !important; } - .px-xs-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-xs-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-xs-6 { padding: 2rem !important; } - .pt-xs-6 { padding-top: 2rem !important; } - .pr-xs-6 { padding-right: 2rem !important; } - .pb-xs-6 { padding-bottom: 2rem !important; } - .pl-xs-6 { padding-left: 2rem !important; } - .px-xs-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-xs-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-xs-7 { padding: 2.5rem !important; } - .pt-xs-7 { padding-top: 2.5rem !important; } - .pr-xs-7 { padding-right: 2.5rem !important; } - .pb-xs-7 { padding-bottom: 2.5rem !important; } - .pl-xs-7 { padding-left: 2.5rem !important; } - .px-xs-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-xs-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-xs-8 { padding: 3rem !important; } - .pt-xs-8 { padding-top: 3rem !important; } - .pr-xs-8 { padding-right: 3rem !important; } - .pb-xs-8 { padding-bottom: 3rem !important; } - .pl-xs-8 { padding-left: 3rem !important; } - .px-xs-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-xs-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-xs-9 { padding: 3.5rem !important; } - .pt-xs-9 { padding-top: 3.5rem !important; } - .pr-xs-9 { padding-right: 3.5rem !important; } - .pb-xs-9 { padding-bottom: 3.5rem !important; } - .pl-xs-9 { padding-left: 3.5rem !important; } - .px-xs-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-xs-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-xs-10 { padding: 4rem !important; } - .pt-xs-10 { padding-top: 4rem !important; } - .pr-xs-10 { padding-right: 4rem !important; } - .pb-xs-10 { padding-bottom: 4rem !important; } - .pl-xs-10 { padding-left: 4rem !important; } - .px-xs-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-xs-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 31.25rem) { .p-sm-0 { padding: 0 !important; } - .pt-sm-0 { padding-top: 0 !important; } - .pr-sm-0 { padding-right: 0 !important; } - .pb-sm-0 { padding-bottom: 0 !important; } - .pl-sm-0 { padding-left: 0 !important; } - .px-sm-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-sm-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-sm-1 { padding: 0.25rem !important; } - .pt-sm-1 { padding-top: 0.25rem !important; } - .pr-sm-1 { padding-right: 0.25rem !important; } - .pb-sm-1 { padding-bottom: 0.25rem !important; } - .pl-sm-1 { padding-left: 0.25rem !important; } - .px-sm-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-sm-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-sm-2 { padding: 0.5rem !important; } - .pt-sm-2 { padding-top: 0.5rem !important; } - .pr-sm-2 { padding-right: 0.5rem !important; } - .pb-sm-2 { padding-bottom: 0.5rem !important; } - .pl-sm-2 { padding-left: 0.5rem !important; } - .px-sm-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-sm-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-sm-3 { padding: 0.75rem !important; } - .pt-sm-3 { padding-top: 0.75rem !important; } - .pr-sm-3 { padding-right: 0.75rem !important; } - .pb-sm-3 { padding-bottom: 0.75rem !important; } - .pl-sm-3 { padding-left: 0.75rem !important; } - .px-sm-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-sm-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-sm-4 { padding: 1rem !important; } - .pt-sm-4 { padding-top: 1rem !important; } - .pr-sm-4 { padding-right: 1rem !important; } - .pb-sm-4 { padding-bottom: 1rem !important; } - .pl-sm-4 { padding-left: 1rem !important; } - .px-sm-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-sm-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-sm-5 { padding: 1.5rem !important; } - .pt-sm-5 { padding-top: 1.5rem !important; } - .pr-sm-5 { padding-right: 1.5rem !important; } - .pb-sm-5 { padding-bottom: 1.5rem !important; } - .pl-sm-5 { padding-left: 1.5rem !important; } - .px-sm-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-sm-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-sm-6 { padding: 2rem !important; } - .pt-sm-6 { padding-top: 2rem !important; } - .pr-sm-6 { padding-right: 2rem !important; } - .pb-sm-6 { padding-bottom: 2rem !important; } - .pl-sm-6 { padding-left: 2rem !important; } - .px-sm-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-sm-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-sm-7 { padding: 2.5rem !important; } - .pt-sm-7 { padding-top: 2.5rem !important; } - .pr-sm-7 { padding-right: 2.5rem !important; } - .pb-sm-7 { padding-bottom: 2.5rem !important; } - .pl-sm-7 { padding-left: 2.5rem !important; } - .px-sm-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-sm-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-sm-8 { padding: 3rem !important; } - .pt-sm-8 { padding-top: 3rem !important; } - .pr-sm-8 { padding-right: 3rem !important; } - .pb-sm-8 { padding-bottom: 3rem !important; } - .pl-sm-8 { padding-left: 3rem !important; } - .px-sm-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-sm-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-sm-9 { padding: 3.5rem !important; } - .pt-sm-9 { padding-top: 3.5rem !important; } - .pr-sm-9 { padding-right: 3.5rem !important; } - .pb-sm-9 { padding-bottom: 3.5rem !important; } - .pl-sm-9 { padding-left: 3.5rem !important; } - .px-sm-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-sm-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-sm-10 { padding: 4rem !important; } - .pt-sm-10 { padding-top: 4rem !important; } - .pr-sm-10 { padding-right: 4rem !important; } - .pb-sm-10 { padding-bottom: 4rem !important; } - .pl-sm-10 { padding-left: 4rem !important; } - .px-sm-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-sm-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 50rem) { .p-md-0 { padding: 0 !important; } - .pt-md-0 { padding-top: 0 !important; } - .pr-md-0 { padding-right: 0 !important; } - .pb-md-0 { padding-bottom: 0 !important; } - .pl-md-0 { padding-left: 0 !important; } - .px-md-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-md-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-md-1 { padding: 0.25rem !important; } - .pt-md-1 { padding-top: 0.25rem !important; } - .pr-md-1 { padding-right: 0.25rem !important; } - .pb-md-1 { padding-bottom: 0.25rem !important; } - .pl-md-1 { padding-left: 0.25rem !important; } - .px-md-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-md-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-md-2 { padding: 0.5rem !important; } - .pt-md-2 { padding-top: 0.5rem !important; } - .pr-md-2 { padding-right: 0.5rem !important; } - .pb-md-2 { padding-bottom: 0.5rem !important; } - .pl-md-2 { padding-left: 0.5rem !important; } - .px-md-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-md-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-md-3 { padding: 0.75rem !important; } - .pt-md-3 { padding-top: 0.75rem !important; } - .pr-md-3 { padding-right: 0.75rem !important; } - .pb-md-3 { padding-bottom: 0.75rem !important; } - .pl-md-3 { padding-left: 0.75rem !important; } - .px-md-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-md-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-md-4 { padding: 1rem !important; } - .pt-md-4 { padding-top: 1rem !important; } - .pr-md-4 { padding-right: 1rem !important; } - .pb-md-4 { padding-bottom: 1rem !important; } - .pl-md-4 { padding-left: 1rem !important; } - .px-md-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-md-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-md-5 { padding: 1.5rem !important; } - .pt-md-5 { padding-top: 1.5rem !important; } - .pr-md-5 { padding-right: 1.5rem !important; } - .pb-md-5 { padding-bottom: 1.5rem !important; } - .pl-md-5 { padding-left: 1.5rem !important; } - .px-md-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-md-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-md-6 { padding: 2rem !important; } - .pt-md-6 { padding-top: 2rem !important; } - .pr-md-6 { padding-right: 2rem !important; } - .pb-md-6 { padding-bottom: 2rem !important; } - .pl-md-6 { padding-left: 2rem !important; } - .px-md-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-md-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-md-7 { padding: 2.5rem !important; } - .pt-md-7 { padding-top: 2.5rem !important; } - .pr-md-7 { padding-right: 2.5rem !important; } - .pb-md-7 { padding-bottom: 2.5rem !important; } - .pl-md-7 { padding-left: 2.5rem !important; } - .px-md-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-md-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-md-8 { padding: 3rem !important; } - .pt-md-8 { padding-top: 3rem !important; } - .pr-md-8 { padding-right: 3rem !important; } - .pb-md-8 { padding-bottom: 3rem !important; } - .pl-md-8 { padding-left: 3rem !important; } - .px-md-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-md-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-md-9 { padding: 3.5rem !important; } - .pt-md-9 { padding-top: 3.5rem !important; } - .pr-md-9 { padding-right: 3.5rem !important; } - .pb-md-9 { padding-bottom: 3.5rem !important; } - .pl-md-9 { padding-left: 3.5rem !important; } - .px-md-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-md-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-md-10 { padding: 4rem !important; } - .pt-md-10 { padding-top: 4rem !important; } - .pr-md-10 { padding-right: 4rem !important; } - .pb-md-10 { padding-bottom: 4rem !important; } - .pl-md-10 { padding-left: 4rem !important; } - .px-md-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-md-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 66.5rem) { .p-lg-0 { padding: 0 !important; } - .pt-lg-0 { padding-top: 0 !important; } - .pr-lg-0 { padding-right: 0 !important; } - .pb-lg-0 { padding-bottom: 0 !important; } - .pl-lg-0 { padding-left: 0 !important; } - .px-lg-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-lg-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-lg-1 { padding: 0.25rem !important; } - .pt-lg-1 { padding-top: 0.25rem !important; } - .pr-lg-1 { padding-right: 0.25rem !important; } - .pb-lg-1 { padding-bottom: 0.25rem !important; } - .pl-lg-1 { padding-left: 0.25rem !important; } - .px-lg-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-lg-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-lg-2 { padding: 0.5rem !important; } - .pt-lg-2 { padding-top: 0.5rem !important; } - .pr-lg-2 { padding-right: 0.5rem !important; } - .pb-lg-2 { padding-bottom: 0.5rem !important; } - .pl-lg-2 { padding-left: 0.5rem !important; } - .px-lg-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-lg-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-lg-3 { padding: 0.75rem !important; } - .pt-lg-3 { padding-top: 0.75rem !important; } - .pr-lg-3 { padding-right: 0.75rem !important; } - .pb-lg-3 { padding-bottom: 0.75rem !important; } - .pl-lg-3 { padding-left: 0.75rem !important; } - .px-lg-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-lg-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-lg-4 { padding: 1rem !important; } - .pt-lg-4 { padding-top: 1rem !important; } - .pr-lg-4 { padding-right: 1rem !important; } - .pb-lg-4 { padding-bottom: 1rem !important; } - .pl-lg-4 { padding-left: 1rem !important; } - .px-lg-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-lg-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-lg-5 { padding: 1.5rem !important; } - .pt-lg-5 { padding-top: 1.5rem !important; } - .pr-lg-5 { padding-right: 1.5rem !important; } - .pb-lg-5 { padding-bottom: 1.5rem !important; } - .pl-lg-5 { padding-left: 1.5rem !important; } - .px-lg-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-lg-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-lg-6 { padding: 2rem !important; } - .pt-lg-6 { padding-top: 2rem !important; } - .pr-lg-6 { padding-right: 2rem !important; } - .pb-lg-6 { padding-bottom: 2rem !important; } - .pl-lg-6 { padding-left: 2rem !important; } - .px-lg-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-lg-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-lg-7 { padding: 2.5rem !important; } - .pt-lg-7 { padding-top: 2.5rem !important; } - .pr-lg-7 { padding-right: 2.5rem !important; } - .pb-lg-7 { padding-bottom: 2.5rem !important; } - .pl-lg-7 { padding-left: 2.5rem !important; } - .px-lg-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-lg-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-lg-8 { padding: 3rem !important; } - .pt-lg-8 { padding-top: 3rem !important; } - .pr-lg-8 { padding-right: 3rem !important; } - .pb-lg-8 { padding-bottom: 3rem !important; } - .pl-lg-8 { padding-left: 3rem !important; } - .px-lg-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-lg-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-lg-9 { padding: 3.5rem !important; } - .pt-lg-9 { padding-top: 3.5rem !important; } - .pr-lg-9 { padding-right: 3.5rem !important; } - .pb-lg-9 { padding-bottom: 3.5rem !important; } - .pl-lg-9 { padding-left: 3.5rem !important; } - .px-lg-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-lg-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-lg-10 { padding: 4rem !important; } - .pt-lg-10 { padding-top: 4rem !important; } - .pr-lg-10 { padding-right: 4rem !important; } - .pb-lg-10 { padding-bottom: 4rem !important; } - .pl-lg-10 { padding-left: 4rem !important; } - .px-lg-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-lg-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media (min-width: 87.5rem) { .p-xl-0 { padding: 0 !important; } - .pt-xl-0 { padding-top: 0 !important; } - .pr-xl-0 { padding-right: 0 !important; } - .pb-xl-0 { padding-bottom: 0 !important; } - .pl-xl-0 { padding-left: 0 !important; } - .px-xl-0 { padding-right: 0 !important; padding-left: 0 !important; } - .py-xl-0 { padding-top: 0 !important; padding-bottom: 0 !important; } - .p-xl-1 { padding: 0.25rem !important; } - .pt-xl-1 { padding-top: 0.25rem !important; } - .pr-xl-1 { padding-right: 0.25rem !important; } - .pb-xl-1 { padding-bottom: 0.25rem !important; } - .pl-xl-1 { padding-left: 0.25rem !important; } - .px-xl-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } - .py-xl-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } - .p-xl-2 { padding: 0.5rem !important; } - .pt-xl-2 { padding-top: 0.5rem !important; } - .pr-xl-2 { padding-right: 0.5rem !important; } - .pb-xl-2 { padding-bottom: 0.5rem !important; } - .pl-xl-2 { padding-left: 0.5rem !important; } - .px-xl-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } - .py-xl-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } - .p-xl-3 { padding: 0.75rem !important; } - .pt-xl-3 { padding-top: 0.75rem !important; } - .pr-xl-3 { padding-right: 0.75rem !important; } - .pb-xl-3 { padding-bottom: 0.75rem !important; } - .pl-xl-3 { padding-left: 0.75rem !important; } - .px-xl-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } - .py-xl-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } - .p-xl-4 { padding: 1rem !important; } - .pt-xl-4 { padding-top: 1rem !important; } - .pr-xl-4 { padding-right: 1rem !important; } - .pb-xl-4 { padding-bottom: 1rem !important; } - .pl-xl-4 { padding-left: 1rem !important; } - .px-xl-4 { padding-right: 1rem !important; padding-left: 1rem !important; } - .py-xl-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } - .p-xl-5 { padding: 1.5rem !important; } - .pt-xl-5 { padding-top: 1.5rem !important; } - .pr-xl-5 { padding-right: 1.5rem !important; } - .pb-xl-5 { padding-bottom: 1.5rem !important; } - .pl-xl-5 { padding-left: 1.5rem !important; } - .px-xl-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } - .py-xl-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } - .p-xl-6 { padding: 2rem !important; } - .pt-xl-6 { padding-top: 2rem !important; } - .pr-xl-6 { padding-right: 2rem !important; } - .pb-xl-6 { padding-bottom: 2rem !important; } - .pl-xl-6 { padding-left: 2rem !important; } - .px-xl-6 { padding-right: 2rem !important; padding-left: 2rem !important; } - .py-xl-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } - .p-xl-7 { padding: 2.5rem !important; } - .pt-xl-7 { padding-top: 2.5rem !important; } - .pr-xl-7 { padding-right: 2.5rem !important; } - .pb-xl-7 { padding-bottom: 2.5rem !important; } - .pl-xl-7 { padding-left: 2.5rem !important; } - .px-xl-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } - .py-xl-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } - .p-xl-8 { padding: 3rem !important; } - .pt-xl-8 { padding-top: 3rem !important; } - .pr-xl-8 { padding-right: 3rem !important; } - .pb-xl-8 { padding-bottom: 3rem !important; } - .pl-xl-8 { padding-left: 3rem !important; } - .px-xl-8 { padding-right: 3rem !important; padding-left: 3rem !important; } - .py-xl-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } - .p-xl-9 { padding: 3.5rem !important; } - .pt-xl-9 { padding-top: 3.5rem !important; } - .pr-xl-9 { padding-right: 3.5rem !important; } - .pb-xl-9 { padding-bottom: 3.5rem !important; } - .pl-xl-9 { padding-left: 3.5rem !important; } - .px-xl-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } - .py-xl-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } - .p-xl-10 { padding: 4rem !important; } - .pt-xl-10 { padding-top: 4rem !important; } - .pr-xl-10 { padding-right: 4rem !important; } - .pb-xl-10 { padding-bottom: 4rem !important; } - .pl-xl-10 { padding-left: 4rem !important; } - .px-xl-10 { padding-right: 4rem !important; padding-left: 4rem !important; } - .py-xl-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } -@media print { .site-footer, .site-button, #edit-this-page, #back-to-top, .site-nav, .main-header { display: none !important; } - .side-bar { width: 100%; height: auto; border-right: 0 !important; } - .site-header { border-bottom: 1px solid #eeebee; } - .site-title { font-size: 16px !important; font-weight: 700 !important; } - .text-small { font-size: 8pt !important; } - pre.highlight { border: 1px solid #eeebee; } - .main { max-width: none; margin-left: 0; } } diff --git a/docs/assets/images/just-the-docs.png b/docs/assets/images/just-the-docs.png deleted file mode 100644 index 81c3306..0000000 Binary files a/docs/assets/images/just-the-docs.png and /dev/null differ diff --git a/docs/assets/images/search.svg b/docs/assets/images/search.svg deleted file mode 100644 index 421ca4d..0000000 --- a/docs/assets/images/search.svg +++ /dev/null @@ -1 +0,0 @@ -Search diff --git a/docs/assets/images/vendor/microchip_logo.png b/docs/assets/images/vendor/microchip_logo.png deleted file mode 100644 index 6b9fa6a..0000000 Binary files a/docs/assets/images/vendor/microchip_logo.png and /dev/null differ diff --git a/docs/assets/images/vendor/microchip_mplab_harmony_logo.png b/docs/assets/images/vendor/microchip_mplab_harmony_logo.png deleted file mode 100644 index bfe1942..0000000 Binary files a/docs/assets/images/vendor/microchip_mplab_harmony_logo.png and /dev/null differ diff --git a/docs/assets/images/vendor/microchip_mplab_harmony_logo_150_transparent.png b/docs/assets/images/vendor/microchip_mplab_harmony_logo_150_transparent.png deleted file mode 100644 index 5157506..0000000 Binary files a/docs/assets/images/vendor/microchip_mplab_harmony_logo_150_transparent.png and /dev/null differ diff --git a/docs/assets/images/vendor/microchip_mplab_harmony_logo_small.png b/docs/assets/images/vendor/microchip_mplab_harmony_logo_small.png deleted file mode 100644 index 60671af..0000000 Binary files a/docs/assets/images/vendor/microchip_mplab_harmony_logo_small.png and /dev/null differ diff --git a/docs/assets/js/just-the-docs.js b/docs/assets/js/just-the-docs.js deleted file mode 100644 index 7ebd952..0000000 --- a/docs/assets/js/just-the-docs.js +++ /dev/null @@ -1,798 +0,0 @@ -var myVariable = ` -{"0": { - "doc": "Hardware Setup", - "title": "Hardware Setup", - "content": "dsPICDEM™ MCHV-3 Development Board (High Voltage) . | Board | Description | . | MCHV3 Setup for Sensorless Mode | Hardware setup of MCHV3 development board for sensorless mode | . | MCHV3 Setup for Quadrature Encoder Mode | Hardware setup of MCHV3 development board for encoder mode | . |   |   | . dsPICDEM™ MCLV-2 Development Board (Motor Control Low-Voltage) . | Board | Description | . | MCLV2 Setup for Sensorless Mode | Hardware setup of MCLV2 development board for sensorless mode | . | MCLV2 Setup for Quadrature Encoder Mode | Hardware setup of MCLV2 development board for encoder mode | . |   |   | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/hardware_setup.html", - "relUrl": "/apps/docs/hardware_setup.html" - },"1": { - "doc": "MCHV3 Development Board Setup for Quadrature Encoder", - "title": "MCHV3 Development Board", - "content": " ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mchv3_atsame70_pim_encoder.html#mchv3-development-board", - "relUrl": "/apps/docs/mchv3_atsame70_pim_encoder.html#mchv3-development-board" - },"2": { - "doc": "MCHV3 Development Board Setup for Quadrature Encoder", - "title": "Setting up the hardware", - "content": "The following table shows the target hardware for the application projects. | Project Name | Hardware | . | mchv3_sam_e70_pim.X | MCHV3 Development BoardATSAME70 Plug-in moduleLeadshine EL5-M0400-1-24 Motor Isolated Embedded Debugger Interface | . |   |   | . Setting up MCHV3 Development Board . | Mount the ATSAME70 Motor Control Plug In Module on U9 header. | Place the “PFC - External Opamp Configuration” Matrix board at J4. | Motor Connections: . | Phase U - M1 | Phase V - M2 | Phase W - M3 | . | Encoder Connections: . | A+ - HA | B+ - HB | 5V - +5V | 0V - GND | . | Jumper Settings: . | J11 - VAC ( Short Pin 3 - 4) | J12 - IA ( Short Pin 1 - 2) | J13 - IB ( Short Pin 1 - 2) | J14 - Fault_IP/IBUS ( Short Pin 1 - 2) | . | Power the board with (110V/220V) AC mains. For additional safety, it is recommended to use a current limited power supply while testing this software demonstration on a non-default hardware and motor. | Installing Isolated Embedded Debugger Default programmer or debugger daughter card shipped with the MCHV3 board cannot program or debug SAM series MCU and therefore, it needs to be replaced with an Isolated Embedded Debugger Interface for MCHV. | Complete Setup . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mchv3_atsame70_pim_encoder.html#setting-up-the-hardware", - "relUrl": "/apps/docs/mchv3_atsame70_pim_encoder.html#setting-up-the-hardware" - },"3": { - "doc": "MCHV3 Development Board Setup for Quadrature Encoder", - "title": "Running the Application", - "content": ". | Build and Program the application using its IDE | Press switch PUSHBUTTON to start the motor | Vary potentiometer to change the speed of the motor | Press switch to stop the motor | Monitor graphs on X2C Scope | . Refer to the following tables for switch and LED details: . | Switch | Description | . | PUSHBUTTON | To start or stop the motor | . |   |   | . | LED D2 Status | Description | . | OFF | No fault | . | ON | Fault is detected | . |   |   | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mchv3_atsame70_pim_encoder.html#running-the-application", - "relUrl": "/apps/docs/mchv3_atsame70_pim_encoder.html#running-the-application" - },"4": { - "doc": "MCHV3 Development Board Setup for Quadrature Encoder", - "title": "MCHV3 Development Board Setup for Quadrature Encoder", - "content": " ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mchv3_atsame70_pim_encoder.html", - "relUrl": "/apps/docs/mchv3_atsame70_pim_encoder.html" - },"5": { - "doc": "MCHV3 Development Board Setup for Sensorless Mode", - "title": "MCHV3 Development Board", - "content": " ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mchv3_atsame70_pim_sensorless.html#mchv3-development-board", - "relUrl": "/apps/docs/mchv3_atsame70_pim_sensorless.html#mchv3-development-board" - },"6": { - "doc": "MCHV3 Development Board Setup for Sensorless Mode", - "title": "Setting up the hardware", - "content": "The following table shows the target hardware for the application projects. | Project Name | Hardware | . | mchv3_sam_e70_pim.X | MCHV3 Development BoardATSAME70 Plug-in moduleLeadshine EL5-M0400-1-24 Motor Isolated Embedded Debugger Interface | . |   |   | . Setting up MCHV3 Development Board . | Mount the ATSAME70 Motor Control Plug In Module on U9 header. | Place the “PFC - External Opamp Configuration” Matrix board at J4. | Motor Connections: . | Phase U - M1 | Phase V - M2 | Phase W - M3 | . | Jumper Settings: . | J11 - VAC ( Short Pin 3 - 4) | J12 - IA ( Short Pin 1 - 2) | J13 - IB ( Short Pin 1 - 2) | J14 - Fault_IP/IBUS ( Short Pin 1 - 2) | . | Power the board with (110V/220V) AC mains. For additional safety, it is recommended to use a current limited power supply while testing this software demonstration on a non-default hardware and motor. | Installing Isolated Embedded Debugger Default programmer or debugger daughter card shipped with the MCHV3 board cannot program or debug SAM series MCU and therefore, it needs to be replaced with an Isolated Embedded Debugger Interface for MCHV. | Complete Setup . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mchv3_atsame70_pim_sensorless.html#setting-up-the-hardware", - "relUrl": "/apps/docs/mchv3_atsame70_pim_sensorless.html#setting-up-the-hardware" - },"7": { - "doc": "MCHV3 Development Board Setup for Sensorless Mode", - "title": "Running the Application", - "content": ". | Build and Program the application using its IDE | Press switch PUSHBUTTON to start the motor | Vary potentiometer to change the speed of the motor | Press switch to stop the motor | Monitor graphs on X2C Scope | . Refer to the following tables for switch and LED details: . | Switch | Description | . | PUSHBUTTON | To start or stop the motor | . |   |   | . | LED D2 Status | Description | . | OFF | No fault | . | ON | Fault is detected | . |   |   | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mchv3_atsame70_pim_sensorless.html#running-the-application", - "relUrl": "/apps/docs/mchv3_atsame70_pim_sensorless.html#running-the-application" - },"8": { - "doc": "MCHV3 Development Board Setup for Sensorless Mode", - "title": "MCHV3 Development Board Setup for Sensorless Mode", - "content": " ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mchv3_atsame70_pim_sensorless.html", - "relUrl": "/apps/docs/mchv3_atsame70_pim_sensorless.html" - },"9": { - "doc": "MCLV2 Development Board Setup for Quadrature Encoder", - "title": "MCLV2 Development Board", - "content": " ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mclv2_atsame70_pim_encoder.html#mclv2-development-board", - "relUrl": "/apps/docs/mclv2_atsame70_pim_encoder.html#mclv2-development-board" - },"10": { - "doc": "MCLV2 Development Board Setup for Quadrature Encoder", - "title": "Setting up the hardware", - "content": "The following table shows the target hardware for the application projects. | Project Name | Hardware | . | mclv2_sam_e70_pim.X | MCLV2 Development BoardATSAME70 Plug-in moduleHurst Motor with encoder | . |   |   | . Setting up MCLV2 Development Board . | Mount the ATSAME70 Motor Control Plug In Module on U9 header. | Place the “External Opamp Configuration” Matrix board at J14. | Motor Connections: . | White (Phase U) - M1 | Black (Phase V) - M2 | Red (Phase W) - M3 | . | Encoder Connections: Connect encoder wires as shown below . | (Red) +5V : +5V | (Black) -5V : GND | (White) A : HA | (Blue) B : HB | . | Jumper Settings: . | JP1 - Curr, JP2 - Curr, JP3 - Curr | In order to use RS232 port for X2CScope Communication JP4 - UART, JP5 - UART | In order to use USB port for X2CScope Communication JP4 - USB, JP5 - USB | . | Power the board with a 24V DC supply using J2 or BP1-BP2. For additional safety, it is recommended to use a current limited power supply while testing this software demonstration on a non-default hardware and motor. | Complete Setup . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mclv2_atsame70_pim_encoder.html#setting-up-the-hardware", - "relUrl": "/apps/docs/mclv2_atsame70_pim_encoder.html#setting-up-the-hardware" - },"11": { - "doc": "MCLV2 Development Board Setup for Quadrature Encoder", - "title": "Running the Application", - "content": ". | Build and Program the application using its IDE | Press switch S2 to start the motor | Vary potentiometer to change the speed of the motor | Press switch S2 to stop the motor | Press switch S3 to change the direction of the motor | Press switch S2 again to start the motor | Monitor graphs on X2C Scope | . Refer to the following tables for switch and LED details: . | Switch | Description | . | Switch S2 | To start or stop the motor | . | Switch S3 | To change the direction of rotation. Direction toggle command is accepted only when motor is stationary. | . |   |   | . | LED D2 Status | Description | . | OFF | Motor spin direction is “positive” | . | ON | Motor spin direction is “negative” | . |   |   | . | LED D17 Status | Description | . | OFF | No fault | . | ON | Fault is detected | . |   |   | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mclv2_atsame70_pim_encoder.html#running-the-application", - "relUrl": "/apps/docs/mclv2_atsame70_pim_encoder.html#running-the-application" - },"12": { - "doc": "MCLV2 Development Board Setup for Quadrature Encoder", - "title": "MCLV2 Development Board Setup for Quadrature Encoder", - "content": " ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mclv2_atsame70_pim_encoder.html", - "relUrl": "/apps/docs/mclv2_atsame70_pim_encoder.html" - },"13": { - "doc": "MCLV2 Development Board Setup for Sensorless Mode", - "title": "MCLV2 Development Board", - "content": " ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mclv2_atsame70_pim_sensorless.html#mclv2-development-board", - "relUrl": "/apps/docs/mclv2_atsame70_pim_sensorless.html#mclv2-development-board" - },"14": { - "doc": "MCLV2 Development Board Setup for Sensorless Mode", - "title": "Setting up the hardware", - "content": "The following table shows the target hardware for the application projects. | Project Name | Hardware | . | mclv2_sam_e70_pim.X | MCLV2 Development BoardATSAME70 Plug-in moduleHurst Motor with encoder | . |   |   | . Setting up MCLV2 Development Board . | Mount the ATSAME70 Motor Control Plug In Module on U9 header. | Place the “External Opamp Configuration” Matrix board at J14. | Motor Connections: . | White (Phase U) - M1 | Black (Phase V) - M2 | Red (Phase W) - M3 | . | Jumper Settings: . | JP1 - Curr, JP2 - Curr, JP3 - Curr | In order to use RS232 port for X2CScope Communication JP4 - UART, JP5 - UART | In order to use USB port for X2CScope Communication JP4 - USB, JP5 - USB | . | Power the board with a 24V DC supply using J2 or BP1-BP2. For additional safety, it is recommended to use a current limited power supply while testing this software demonstration on a non-default hardware and motor. | Complete Setup . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mclv2_atsame70_pim_sensorless.html#setting-up-the-hardware", - "relUrl": "/apps/docs/mclv2_atsame70_pim_sensorless.html#setting-up-the-hardware" - },"15": { - "doc": "MCLV2 Development Board Setup for Sensorless Mode", - "title": "Running the Application", - "content": ". | Build and Program the application using its IDE | Press switch S2 to start the motor | Vary potentiometer to change the speed of the motor | Press switch S2 to stop the motor | Press switch S3 to change the direction of the motor | Press switch S2 again to start the motor | Monitor graphs on X2C Scope | . Refer to the following tables for switch and LED details: . | Switch | Description | . | Switch S2 | To start or stop the motor | . | Switch S3 | To change the direction of rotation. Direction toggle command is accepted only when motor is stationary. | . |   |   | . | LED D2 Status | Description | . | OFF | Motor spin direction is “positive” | . | ON | Motor spin direction is “negative” | . |   |   | . | LED D17 Status | Description | . | OFF | No fault | . | ON | Fault is detected | . |   |   | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mclv2_atsame70_pim_sensorless.html#running-the-application", - "relUrl": "/apps/docs/mclv2_atsame70_pim_sensorless.html#running-the-application" - },"16": { - "doc": "MCLV2 Development Board Setup for Sensorless Mode", - "title": "MCLV2 Development Board Setup for Sensorless Mode", - "content": " ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mclv2_atsame70_pim_sensorless.html", - "relUrl": "/apps/docs/mclv2_atsame70_pim_sensorless.html" - },"17": { - "doc": "License", - "title": "License", - "content": "MICROCHIP SOFTWARE IS PROVIDED SOLELY TO ASSIST YOU IN DEVELOPING PRODUCTS AND SYSTEMS THAT USE MICROCHIP PRODUCTS. DOWNLOAD AND/OR USE OF THE SOFTWARE REQUIRES THAT YOU ACCEPT THIS SOFTWARE LICENSE AGREEMENT. IF YOU DO NOT WISH TO ACCEPT THESE TERMS, DO NOT DOWNLOAD OR USE ANY OF THE SOFTWARE. DOWNLOADING OR USING THE SOFTWARE CONTITUTES YOUR ACCEPTANCE OF THIS SOFTWARE LICENSE AGREEMENT. SOFTWARE LICENSE AGREEMENT . This Software License Agreement (\\\"Agreement\\\") is an agreement between you (if licensing as an individual) or the entity you represent (if licensing as a business) (\\\"you\\\" or \\\"Licensee\\\") and Microchip Technology Incorporated, a Delaware corporation, with a place of business at 2355 W. Chandler Blvd., Chandler, AZ 85224-6199, and its affiliates including Microchip Technology Ireland Limited, a company organized under the laws of Ireland, with a principal address at Ground Floor, Block W., East Point Business Park, Dublin, Ireland 3 (collectively, \\\"Microchip\\\") for the Microchip MPLAB Harmony Integrated Software Framework and documentation included in the download or otherwise provided by Microchip to Licensee (collectively, the \\\"Software\\\"). 1. Use. Subject to the terms of this Agreement, Microchip hereby grants Licensee a limited, revocable, non-exclusive, non-transferable, worldwide license to (a) use the Software, and (b) modify the Software provided in source code form, if any (and use and copy modifications of such Software made by Licensee), provided that in each case (with respect to clauses (a) and (b)) Licensee solely uses the Software with Microchip Products, Licensee Products, or other products agreed to by Microchip in writing. Licensee has no right to (i) substitute third party products for Microchip Products, or (ii) except as expressly provided in Section 2 below, sublicense its rights under this Agreement or otherwise disclose or distribute the Software to any third party. Licensee may make a reasonable number of copies of the Software solely as necessary to exercise its license rights in this Section 1. Licensee will not remove or alter any copyright, trademark, or other proprietary notices contained on or in the Software or any copies. “Microchip Products” means those Microchip devices purchased from Microchip or one of its authorized distributors that are identified in the Software, or if not identified in the Software, then such Microchip devices that are consistent with the purpose of the Software, including but not limited to Microchip 32-bit microcontroller and microprocessor devices and the like. “Licensee Products” means products manufactured by or for Licensee that use or incorporate Microchip Products. 2. Subcontractors. If Licensee wishes for its subcontractor to obtain and use the Software in order to provide design, manufacturing, or other services to Licensee: (a) such subcontractor may (i) download and agree to the terms of this Agreement or (ii) contact Microchip directly for a copy of this Agreement and agree to its terms; or (b) Licensee may sublicense the rights described in Section 1 directly to its subcontractor, provided that (i) such subcontractor agrees in writing to the terms of this Agreement � a copy of which will be provided to Microchip upon request, and (ii) Licensee is liable for such subcontractor's acts and omissions. 3. Third Party Software. (a) Third Party Materials. Licensee agrees to comply with third party license terms applicable to Third Party Materials, if any. Microchip will not be held responsible for Licensee's failure to comply with such terms. Microchip has no obligation to provide support or maintenance for Third Party Materials. \\\"Third Party Materials\\\" means the third party software, systems, tools, or specifications (including those of a standards setting organization) referenced in, bundled with, or included in the Software. (b) Open Source Components. Notwithstanding the license grant in Section 1 above, Licensee acknowledges that the Software may include Open Source Components. To the extent required by the licenses covering Open Source Components, the terms of such license apply in lieu of the terms of this Agreement. To the extent the terms of the licenses applicable to Open Source Components prohibit any of the restrictions in this Agreement with respect to such Open Source Components, those restrictions will not apply to the Open Source Component. \\\"Open Source Components\\\" means components of the Software that are subject to the terms of an Open Source License. \\\"Open Source License\\\" means any software license approved as an open source license by the Open Source Initiative or any substantially similar license, including without limitation any license that, as a condition of distribution of the software licensed under such license, requires that the distributor make the software available in source code format. 4. Licensee Obligations. (a) Restrictions. Except as expressly permitted by this Agreement, Licensee agrees that it will not (i) modify or alter the Software or a Microchip Product; (ii) adapt, translate, decompile, reverse engineer, disassemble the Software provided in object code form, any Microchip Product, or any samples or prototypes provided by Microchip, or create derivative works thereof; or (iii) use the Software with any software or other materials that are subject to licenses or restrictions (e.g., Open Source Licenses) that, when combined with the Software, would require Microchip to disclose, license, distribute, or otherwise make all or any part of such Software available to anyone. (b) Indemnity. Licensee will indemnify (and, at Microchip's election, defend) Microchip from and against any and all claims, costs, damages, expenses (including reasonable attorneys' fees), liabilities, and losses, arising out of or related to: (i) Licensee's modification, disclosure, or distribution of the Software or Third Party Materials; (ii) the use, sale, or distribution of Licensee Products; and (iii) an allegation that Licensee Products or Licensee's modification of the Software infringe third party intellectual property rights. (c) Licensee Products. Licensee understands and agrees that Licensee remains responsible for using its independent analysis, evaluation, and judgment in designing Licensee Products and systems and has full and exclusive responsibility to assure the safety of its products and compliance of its products (and of all Microchip Products used in or for such Licensee Products) with applicable laws and requirements. 5. Confidentiality. (a) Licensee agrees that the Software, underlying inventions, algorithms, know-how, and ideas relating to the Software, and any other non-public business or technical information disclosed by Microchip to Licensee are confidential and proprietary information, including information derived therefrom, belonging to Microchip and its licensors (collectively, \\\"Confidential Information\\\"). Licensee will use Confidential Information only to exercise its rights and perform its obligations under this Agreement and will take all reasonable measures to protect the secrecy of and avoid unauthorized access, disclosure, and use of Confidential Information. Such measures include, but are not limited to, the highest degree of care that it uses to protect its own information of a similar nature, but not less than reasonable care. Licensee will only disclose Confidential Information to its employees, subcontractors, consultants, auditors and representatives (collectively \\\"Representatives\\\") who have a need to know such information and who have use and confidentiality obligations to Licensee at least as restrictive as those set forth in this Agreement. Licensee is responsible for disclosure or misuse of Confidential Information by its Representatives. Use of Confidential Information for personal gain, for the benefit of a third party or to compete with Microchip, whether directly or indirectly, is a breach of this Agreement. Licensee will notify Microchip in writing of any actual or suspected misuse, misappropriation, or unauthorized disclosure of Confidential Information that comes to Licensee's attention. Confidential Information will not include information that: (i) is or becomes publicly available without breach of this Agreement; (ii) is known or becomes known to Licensee from a source other than Microchip without restriction and without breach of this Agreement or violation of Microchip's rights, as demonstrated by credible evidence in existence at the time of disclosure; (iii) is independently developed by Licensee without use of or reference to the Confidential Information, as demonstrated by credible evidence in existence at the time of independent development; or (iv) is disclosed generally to third parties by Microchip without restrictions similar to those contained in this Agreement. Licensee may disclose Confidential Information to the extent required under law, rule, or regulation (including those of any national securities exchange), by subpoena, civil investigative demand, or similar process, or by a court or administrative agency (each a \\\"Requirement\\\"'), provided, that to the extent permitted by applicable law, Licensee will provide prompt notice of such Requirement to Microchip to enable Microchip to seek a protective order or otherwise prevent or restrict such disclosure. (b) Return of Materials. Upon Microchip's request and direction, Licensee will promptly return or destroy the Confidential Information, including any physical information or materials provided to Licensee (together with any copies, excerpts, syntheses, CD ROMS, diskettes, etc.), and, in the case of information derived therefrom, provide written certification that all the Confidential Information has been expunged from any such materials or that all such materials have been destroyed. Further, if Licensee or its affiliates become competitors of Microchip, and Microchip notifies Licensee in writing of its status as a competitor in a given market, then Licensee will promptly engage in the return and certification process described above in this Section 5(b). 6. Ownership and Retention of Rights. All rights, title, and interest (including all intellectual property rights) in and to the Software, including any derivative works of the Software and any incremental modifications to the Software whether made by or for Licensee or Microchip (collectively, \\\"Microchip Property\\\"), are and will remain the sole and exclusive property of Microchip, whether such Microchip Property is separate or combined with any other products. Licensee, on behalf of itself and its affiliates, agrees to, and does hereby, assign to Microchip or its designee all right, title and interest (including all intellectual property rights) in and to derivative works of and any incremental modifications to the Software. Licensee will take (and will cause its affiliates, their subcontractors, and all related individuals to take) all action as may be reasonably necessary, proper or advisable to perfect and secure the ownership, licenses, intellectual property and other rights of or to Microchip as set forth in this Agreement. All rights not expressly granted under this Agreement are reserved to Microchip and its licensors and suppliers, and there are no implied rights. Licensee retains all right, title, and interest in and to any technology independently developed by Licensee not derived, directly or indirectly, from the Microchip Property or any other item of tangible property provided to Licensee by Microchip hereunder. 7. Termination. This Agreement will start once accepted by Licensee and continue unless and until terminated as provided in this Agreement. This Agreement automatically terminates immediately if Licensee violates the restrictions set forth in Sections 1, 2 or 4(a). Microchip may terminate this Agreement immediately upon notice if (a) Licensee or its affiliates become competitors of Microchip, or (b) Licensee breaches any other term of this Agreement and does not cure such breach within 30 days after receipt of written notice of such breach from Microchip. Upon termination of this Agreement, (i) the license grants in Sections 1 and 2(b) terminate, and (ii) Licensee will return to Microchip or destroy (and certify the destruction of) all Microchip Property and Confidential Information in its possession or under its control, and all copies thereof. The following sections survive termination of this Agreement: 3, 4, 5, 6, 7, 8, 9, 10, 11 and 12. 8. Dangerous Applications. The Software is not fault-tolerant and is not designed, manufactured, or intended for use in hazardous environments requiring failsafe performance (\\\"Dangerous Applications\\\"). Dangerous Applications include the operation of nuclear facilities, aircraft navigation, aircraft communication systems, air traffic control, direct life support machines, weapons systems, or any environment or system in which the failure of the Software could lead directly or indirectly to death, personal injury, or severe physical or environmental damage. Microchip specifically disclaims (a) any express or implied warranty of fitness for use of the Software in Dangerous Applications; and (b) any and all liability for loss, damages and claims resulting from the use of the Software in Dangerous Applications. 9. EU Consumers � Applicable Terms. WHERE LICENSEE IS A CONSUMER LOCATED IN EUROPE, THE FOLLOWING PROVISIONS APPLY INSTEAD OF SECTIONS 9 AND 10 BELOW: Microchip and its licensors will not be liable (a) for any loss suffered by Licensee in connection with the Software where such loss was not reasonably foreseeable when the Software was first downloaded by Licensee, even if such loss was the result of negligence or the failure of Microchip and its licensors to comply with this Agreement; or (b) irrespective of the basis of claim, for any loss of revenue, profit or other business or economic loss suffered. Some Software is made available to Licensee free of charge, and Licensee may at any time download further copies without charge to replace the Software initially downloaded and others may require a fee to be downloaded, or to download any further copies. In all circumstances, to the extent liability may lawfully be limited or excluded, the cumulative liability of Microchip and its licensors will not exceed USD$1,000 (or equivalent sum in the currency of the country in which Licensee resides). However, none of the foregoing limits or excludes any liability for death or personal injury arising from negligence, or for fraud, fraudulent misrepresentation or any other cause that by law cannot be excluded and limited. 10. Warranty Disclaimers. EXCEPT FOR CONSUMERS TO WHOM SECTION 8 APPLIES, THE SOFTWARE IS LICENSED ON AN \\\"AS-IS\\\" BASIS. MICROCHIP MAKES NO WARRANTIES OF ANY KIND WITH RESPECT TO THE SOFTWARE, WHETHER EXPRESS, IMPLIED, STAUTORY OR OTHERWISE, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR NON-INFRINGEMENT AND ANY WARRANTIES THAT MAY ARISE FROM USAGE OF TRADE OR COURSE OF DEALING. MICROCHIP AND ITS LICENSORS HAVE NO OBLIGATION TO CORRECT ANY DEFECTS IN THE SOFTWARE. TECHNICAL ASSISTANCE, IF PROVIDED, WILL NOT EXPAND THESE WARRANTIES. IF CUSTOMER IS A CONSUMER, THE ABOVE WILL NOT ACT TO EXCLUDE YOUR STATUTORY RIGHTS. 11. Limited Liability. EXCEPT FOR CONSUMERS TO WHOM SECTION 8 APPLIES, IN NO EVENT WILL MICROCHIP BE LIABLE, WHETHER IN CONTRACT, WARRANTY, REPRESENTATION, TORT, STRICT LIABILITY, INDEMNITY, CONTRIBUTION OR OTHERWISE, FOR ANY INDIRECT, SPECIAL, PUNITIVE, EXEMPLARY, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER, HOWEVER CAUSED, OR ANY LOSS OF PRODUCTION, COST OF PROCUREMENT OF SUBSTITUTE PRODUCTS OR SERVICES, ANY LOSS OF PROFITS, LOSS OF BUSINESS, LOSS OF USE OR LOSS OF DATA, OR INTERRUPTION OF BUSINESS ARISING OUT OF THIS AGREEMENT, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS, AND NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED REMEDY. MICROCHIP'S TOTAL AGGREGATE LIABILITY UNDER THIS AGREEMENT WILL NOT EXCEED USD$1,000. 12. General. (a) This Agreement will be governed by and construed in accordance with the laws of the State of Arizona and the United States, without regard to conflicts of law provisions. The parties hereby irrevocably consent to the exclusive personal jurisdiction and venue of the state and federal courts in Maricopa County, Arizona for any dispute relating to this Agreement. WHERE LICENSEE IS A CONSUMER LOCATED IN EUROPE, this Agreement is subject to the laws of the country in which the Software is downloaded, and, to the extent so mandated by such laws, subject to the jurisdiction of the courts of that country. The parties expressly disclaim the applicability of the United Nations Convention on Contracts for the International Sale of Goods in connection with this Agreement. (b) Unless the parties have a mutually executed agreement relating to the licensing of this Software by Microchip to Licensee (\\\"Signed Agreement\\\"), this Agreement constitutes the entire agreement between the parties with respect to the Software, and supersedes and replaces prior or contemporaneous written or verbal agreements or communications between the parties regarding the Software, including any purchase orders. If the parties have a Signed Agreement, this Agreement does not supersede or replace that Signed Agreement. This Agreement will not be modified except by a written agreement signed by an authorized representative of Microchip. If any provision of this Agreement is held by a court of competent jurisdiction to be illegal, invalid, or unenforceable, that provision will be limited or eliminated to the minimum extent necessary so that this Agreement will otherwise remain in full force and effect and enforceable. No waiver of any breach of any provision of this Agreement constitutes a waiver of any prior, concurrent, or subsequent breach of the same or any other provisions of this Agreement, and no waiver will be effective unless made in writing and signed by an authorized representative of the waiving party. (c) Licensee agrees to comply with all import and export laws and restrictions and regulations of the Department of Commerce or other United States or foreign agency or authority. (d) This Agreement will bind and inure to the benefit of each party's permitted successors and assigns. Licensee may not assign this Agreement in whole or in part, whether by law or otherwise, without Microchip's prior written consent. Any merger, consolidation, amalgamation, reorganization, transfer of all or substantially all assets or other change in control or majority ownership (\\\"Change of Control\\\") is considered an assignment for the purpose of this Section. Any attempt to assign this Agreement without such consent will be null and void. However, Microchip may assign this Agreement to an affiliate, or to another entity in the event of a Change of Control. (e) Licensee acknowledges its breach of any confidentiality or proprietary rights provision of this Agreement would cause Microchip irreparable damage, for which the award of damages would not be an adequate remedy. Licensee, therefore, agrees if Microchip alleges that Licensee has breached or violated any such provisions then Microchip may seek equitable relief, in addition to all other remedies at law or in equity. (f) Authorized representatives of Microchip shall have the right to reasonably inspect Licensee's premises and to audit Licensee's records and inventory of Licensee Products, whether located on Licensee's premises or elsewhere at any time, announced or unannounced, and in its sole and absolute discretion, in order to ensure Licensee's adherence to the terms of this Agreement. (g) Consistent with 48 C.F.R. �12.212 or 48 C.F.R. �227.7202-1 through 227.7202-4, as applicable, the Software is being licensed to U.S. Government end users (i) only as Commercial Items, and (ii) with only those rights as are granted to all other end users pursuant to the terms and conditions of the applicable Microchip licenses. To the extent the Software (or a portion thereof) qualifies as �technical data' as such term is defined in 48 C.F.R. �252.227-7015(a)(5), then its use, duplication, or disclosure by the U.S. Government is subject to the restrictions set forth in subparagraphs (a) through (e) of the Rights in Technical Data clause at 48 C.F.R. �252.227-7015. Contractor/manufacturer is Microchip Technology Inc., 2355 W. Chandler Blvd., Chandler, AZ 85224-6199. Questions about this Agreement should be sent to: Microchip Technology Inc., 2355 W. Chandler Blvd., Chandler, AZ 85224-6199 USA. ATTN: Marketing. v.3.3.2021 . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/mplab_harmony_license.html", - "relUrl": "/mplab_harmony_license.html" - },"18": { - "doc": "PMSM FOC using Sliding Mode Observer", - "title": "PMSM FOC using Sliding Mode Observer", - "content": "This example application shows how to control the Permanent Magnet Synchronous Motor (PMSM) with Sliding Mode Observer based Field Oriented Control (FOC) on a SAME70 Micro-controller. ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_foc_smo_sam_e70/readme.html#pmsm-foc-using-sliding-mode-observer", - "relUrl": "/apps/pmsm_foc_smo_sam_e70/readme.html#pmsm-foc-using-sliding-mode-observer" - },"19": { - "doc": "PMSM FOC using Sliding Mode Observer", - "title": "Description", - "content": "Permanent Magnet Synchronous Motor (PMSM) is controlled using Field Oriented Control (FOC). Rotor position and speed is determined using Sliding Mode Observer (SMO) technique. Motor start/stop operation is controlled by the switch and motor speed can be changed by the on-board potentiometer. Waveforms and variables can be monitored runtime using X2CScope. Key features enabled in this project are: . | Dual shunt current measurement | Speed control loop | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_foc_smo_sam_e70/readme.html#description", - "relUrl": "/apps/pmsm_foc_smo_sam_e70/readme.html#description" - },"20": { - "doc": "PMSM FOC using Sliding Mode Observer", - "title": "MCC Project Configurations", - "content": ". | AFEC Peripheral: | . The AFEC (ADC) is used to measure analog quantities. Four channels are used to measure the Phase Current A, the Phase Current B, the DC Bus Voltage and the Potentiometer. Conversion is triggered at the PWM (zero match + offset of the switch delay) . | PWM Peripheral: | . This peripheral is used to generated three phase synchronous PWM waveforms. Fault functionality is also enabled to switch off the output waveforms asynchronously . | UART Peripheral: | . The UART is used for X2CScope communication to observe graphs and variable values in run time . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_foc_smo_sam_e70/readme.html#mcc-project-configurations", - "relUrl": "/apps/pmsm_foc_smo_sam_e70/readme.html#mcc-project-configurations" - },"21": { - "doc": "PMSM FOC using Sliding Mode Observer", - "title": "Control Algorithm", - "content": "This section briefly explains the FOC control algorithm, software design and implementation. Field Oriented Control is the technique used to achieve the decoupled control of torque and flux. This is done by transforming the stator current quantities (phase currents) from stationary reference frame to torque and flux producing currents components in rotating reference frame using mathematical transformations. The Field Oriented Control is done as follows: . | Measure the motor phase currents. | Transform them into the two phase system (a, b) using the Clarke transformation. | Calculate the rotor position angle. | Transform stator currents into the d,q-coordinate system using the Park transformation. | The stator current torque (iq) and flux (id) producing components are controlled separately by the controllers. | The output stator voltage space vector is transformed back from the d,q-coordinate system into the two phase system fixed with the stator by the Inverse Park transformation. | Using the space vector modulation, the three-phase output voltage is generated. | . Sliding Mode Observer (SMO) : . Sliding Mode Observer is used to estimate the rotor position and thus speed. The electrical rotor position and speed is calculated using the Sliding Mode Observer. The main disadvantage of SMO Observer is its inability to estimate the rotor angle at lower rotor speeds because of very low value of back EMF. Therefore, the FOC algorithm also integrates the ramp-up profile for motor start. The reference speed is incremented linearly using a open loop phase voltage control until the required minimum reference speed for the SMO observer is reached. The Sliding Mode Observer ( SMO ) is based on the principle of sliding mode control. It generates a sliding motion on the error between the plant output and the output of the observer such it produces a set of states that are precisely drives the estimated output to the actual output of the plant. The sliding mode observer consists of a model based current observer followed by a back EMF Observer. The observed back EMF is filtered and then used to extract the position information from it. The following figure shows a typical Sliding Mode Observer: . The current and back EMF observer is modeled in discrete time by following equations: . Current Observer: . Back EMF Observer: . The following block diagram shows the software realization of the FOC algorithm. ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_foc_smo_sam_e70/readme.html#control-algorithm", - "relUrl": "/apps/pmsm_foc_smo_sam_e70/readme.html#control-algorithm" - },"22": { - "doc": "PMSM FOC using Sliding Mode Observer", - "title": "Software Design", - "content": "The following figure shows the various state machines of the the motor control software. In the software, the PMSM speed control task is realized by a state machine as shown in the previous figure. The following sections briefly describes the various states in the PMSM speed control task: . | Initialize: | . In this state, following tasks are performed: Initialization and configuration of NVIC, AFEC, PWM motor control peripherals for generation of periodic ADC triggers and ADC conversion interrupt Current Offset measurement and calibration Initialize PI controller parameters for speed and current control loops . | Start: | . In this state, the motor control state variables are reset and periodic ADC conversion interrupt is enabled. Control waits for the switch press. | Run: | . In this state, the motor starts spinning. The following flow chart and the timing diagram shows the tasks performed in run state: . In run state, two threads are executed- Main task thread and ADC Interrupt task thread. The current control and speed control is carried out in the ADC interrupt task thread. The main task thread monitors the external switches and maintains the state machine. Therefore, the ADC interrupt cycle indicates the current and speed control frequency. As pointed out earlier, the SMO is unable to estimate the rotor position information at the start-up phase when the speed is very low. This necessitates the motor control algorithm to integrate an open-loop control mechanism to linearly ramp the motor speed to the required minimum speed before switching over to closed loop control. Therefore, the motor control state can further be classified into three sub-states - Field Alignment, Open-loop Control and Close-loop Control. Field Alignment: In this mode, a limited value of DC current is applied to the U phase of PMSM motor in order to align the rotor magnetic field with the U-phase of the motor. The time for which DC current has to be applied to achieve the field alignment depends on the time constant of the PMSM motor drive. Open Loop Control: In this mode, the speed of the PMSM motor is gradually ramped up using an open loop control. The speed is ramped up linearly to a minimum value required for the sensor-less SMO observer to estimate the speed of the PMSM motor with required accuracy. Close Loop Control: In this mode, the speed can be regulated using closed loop SMO based sensor-less FOC algorithm. | Stop: In this state, the PWM channels are disabled thereby stopping the motor. The periodic ADC trigger and conversion interrupt is disabled. | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_foc_smo_sam_e70/readme.html#software-design", - "relUrl": "/apps/pmsm_foc_smo_sam_e70/readme.html#software-design" - },"23": { - "doc": "PMSM FOC using Sliding Mode Observer", - "title": "Software Configurations", - "content": ". | The PWM controller frequency ( in Hz ) can be configured by setting the following macro in userparams.h file. This frequency should be same as the frequency configured in the PWM peripheral in the MHC. | . | Macro | Description | . | PWM_FREQUENCY | Current controller and PWM frequency in Hz | . |   |   | . | Setting motor specific -parameter: Set the motor following motor parameters in userparams.h file. | . | Macro | Description | Unit | . | MOTOR_PER_PHASE_RESISTANCE | Motor per phase resistance | ohm | . | MOTOR_PER_PHASE_INDUCTANCE | Motor per phase inductance | H | . | MOTOR_BACK_EMF_CONSTANT_Vpeak_Line_Line_KRPM_MECH | Back EMF constant | Vpk(L-L)/KRPM | . | NOPOLESPAIRS | Number of pole pairs |   | . | NOMINAL_SPEED_RPM | Rated mechanical speed of the motor | RPM | . |   |   |   | . | Setting PI Controller parameters: Depending on the type of motor used, and the corresponding application PI controller parameters should to be updated in userparams.h file. | . Parameters for speed Control loop: . | Macro | Description | . | SPEEDCNTR_PTERM | Proportional gain of speed control loop | . | SPEEDCNTR_ITERM | Integral gain of speed control loop | . | SPEEDCNTR_CTERM | Anti-windup term of speed control loop | . | SPEEDCNTR_OUTMAX | Maximum controller output of speed control loop | . |   |   | . Parameters for Id current loop: . | Macro | Description | . | D_CURRCNTR_PTERM | Proportional gain of Id current control loop | . | D_CURRCNTR_ITERM | Integral gain of Id current control loop | . | D_CURRCNTR_CTERM | Anti-windup term of Id current control loop | . | D_CURRCNTR_OUTMAX | Maximum controller output of Id current control loop | . |   |   | . Parameters for Iq current loop: . | Macro | Description | . | Q_CURRCNTR_PTERM | Proportional gain of Iq current control loop | . | Q_CURRCNTR_ITERM | Integral gain of Iq current control loop | . | Q_CURRCNTR_CTERM | Anti-windup term of Iq current control loop | . | Q_CURRCNTR_OUTMAX | Maximum controller output of Iq current control loop | . |   |   | . | Debugging Features: Open loop functioning is useful for debugging when using new motor. This feature can be enabled by setting the following macros in userparams.h file. | . Parameters for Iq current loop: . | Macro | Description | . | OPEN_LOOP_FUNCTIONING | Open loop enable switch (0 - Disable, 1 - Enable ) | . | Q_CURRENT_REF_OPENLOOP | Startup current in open loop | . |   |   | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_foc_smo_sam_e70/readme.html#software-configurations", - "relUrl": "/apps/pmsm_foc_smo_sam_e70/readme.html#software-configurations" - },"24": { - "doc": "PMSM FOC using Sliding Mode Observer", - "title": "Development Kits", - "content": "MCLV2 with ATSAME70 PIM . Downloading and building the application . To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions. Path of the application within the repository is apps/pmsm_foc_smo_sam_e70 . To build the application, refer to the following table and open the project using its IDE. | Project Name | Description | Hardware Setup Guide | . | mclv2_sam_e70_pim.X | MPLABX project for MCLV2 board with ATSAME70 PIM | Hardware Setup and Running The Application on MCLV2 with ATSAME70 PIM | . |   |   |   | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_foc_smo_sam_e70/readme.html#development-kits", - "relUrl": "/apps/pmsm_foc_smo_sam_e70/readme.html#development-kits" - },"25": { - "doc": "PMSM FOC using Sliding Mode Observer", - "title": "PMSM FOC using Sliding Mode Observer", - "content": ". ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_foc_smo_sam_e70/readme.html", - "relUrl": "/apps/pmsm_foc_smo_sam_e70/readme.html" - },"26": { - "doc": "PFC with PMSM FOC using PLL Estimator", - "title": "Power Factor Correction with PMSM FOC using PLL Estimator", - "content": "This example application shows how to control the Permanent Magnet Synchronous Motor (PMSM) with PLL Estimator based Field Oriented Control (FOC) along with Power Factor Correction (PFC)on a SAME70 Micro-controller. ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#power-factor-correction-with-pmsm-foc-using-pll-estimator", - "relUrl": "/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#power-factor-correction-with-pmsm-foc-using-pll-estimator" - },"27": { - "doc": "PFC with PMSM FOC using PLL Estimator", - "title": "Description", - "content": "Power Factor Correction ( PFC ) shapes the input current drawn from the AC mains to be in synchronization with the input AC voltage. This project uses Boost-Converter topology to carry out the Power Factor Correction. Permanent Magnet Synchronous Motor (PMSM) is controlled using Field Oriented Control (FOC). Rotor position and speed is determined using PLL estimator technique. Motor start/stop operation is controlled by the switch and motor speed can be changed by the on-board potentiometer. Waveforms and variables can be monitored runtime using X2CScope. Key features enabled in this project are: . | Power factor correction | Dual shunt current measurement | Speed control loop | Field weakening | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#description", - "relUrl": "/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#description" - },"28": { - "doc": "PFC with PMSM FOC using PLL Estimator", - "title": "MCC Project Configurations", - "content": ". | AFEC Peripheral: | . The AFEC0 peripheral is used to measure analog quantities for motor control operation. Four channels are used to measure the Phase Current A, the Phase Current B, the DC Bus Voltage and the Potentiometer. Conversion is triggered at the PWM (zero match + offset of the switch delay) . The AFEC1 peripheral is used to measure analog quantities for power factor correction. Three channels are used to measure the input rectified voltage, input rectified current, and the output DC link inverter voltage. Conversion is triggered at the PWM period match . | PWM Peripheral: | . The PWM0 peripheral is used to generated three phase synchronous PWM waveforms. Fault functionality is also enabled to switch off the output waveforms asynchronously . The PWM1 peripheral is used to generate the PWM waveform for the boost converter switch for current waveform shaping . | UART Peripheral: | . The UART is used for X2CScope communication to observe graphs and variable values in run time . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#mcc-project-configurations", - "relUrl": "/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#mcc-project-configurations" - },"29": { - "doc": "PFC with PMSM FOC using PLL Estimator", - "title": "Control Algorithm", - "content": "The Power Factor Correction is a technique of increasing the power factor of the input AC power supply, thereby providing following advantages: . | Low line harmonics. | Reduced input current. | Reduced kVA requirement. | Improved line efficiency, and improved electromagnetic compatibility. | . The Power Factor Correction techniques can be classified as - Passive and Active. The Passive Power Factor Correction uses passive components, while the active Power Factor Correction Technique uses power electronic switches to carry out Power Factor Correction. Following figure shows the various Power Factor Correction techniques classification: . This project uses Boost topology for Power Factor Correction. A boost converter is placed between the rectifier and output inverter stage to synchronize input AC current to the input AC voltage. For details, refer to application note AN1106. The block diagram of a typical boost converter topology based Power Factor Correction is shown below. Block Diagram: . The power factor correction is implemented in following steps: . | Measure the rectifier stage rectified AC voltage and rectified AC current, and output inverter stage DC bus voltage via high speed ADC channels. | Regulate the DC bus voltage using the Voltage Error Compensator. | Determine the reference input for Current Error Compensator based on the output of Voltage Error Compensator and Voltage Feed-Forward Compensator. | Track the rectified reference AC current using a Current Error Compensator. | . Current Error Compensator: . The inner loop in the control block forms the current loop. The input to the current loop is the reference current signal IACREF and the actual inductor current IAC. The current error compensator is designed to produce a control output such that the inductor current IAC follows the reference current IACREF. The current loop should run at a much faster rate when compared to the voltage loop. The bandwidth of the current compensator should be higher for correctly tracking the semi-sinusoidal waveform at twice the input frequency. The current controller GI produces a duty cycle value after appropriate scaling to drive the gate of the boost converter MOSFET. Voltage Error Compensator: . The outer loop in the control block forms the voltage loop. The input to the voltage loop is the reference DC voltage VDCREF and the actual sensed output DC voltage VDC. The voltage error compensator is designed to produce a control output such that the DC bus voltage VDC remains constant at the reference value VDCREF regardless of variations in the load current IO and the supply voltage VAC. The voltage controller GV produces a control signal, which determines the reference current IACREF for the inner current loop. The output voltage is controlled by the voltage error compensator. When the input voltage increases, the product of VAC and VPI increases, and thereby increasing the programming signal. When this signal is divided by the square of the average voltage signal, it results in the current reference signal being reduced proportionally. The outcome is that the current is reduced proportionally to the increase in voltage, thereby keeping the input power constant. This ensures that the reference control output IACREF from the voltage compensator is maximum such that the rated output power is delivered at minimum input voltage. Voltage Feed-Forward Compensator: . If the voltage decreases, the product (VAC · VPI), which determines IACREF, also proportionally decreases. However, to maintain a constant output power at reduced input voltage, the term IACREF should proportionally increase. The purpose of having an input voltage feed-forward, is to maintain the output power constant as determined by the load regardless of variations in the input line voltage. This compensator implemented digitally by calculating the average value of the input line voltage, squaring this average value and using the result as a divider for the input reference current, which is fed to the current error compensator. FOC with PLL estimator : . This estimator uses PLL structure to estimate the rotor position and thus speed. Its operating principle is based on the fact that the d-component of the Back Electromotive Force (BEMF) must be equal to zero at a steady state functioning mode. It can not estimate the rotor angle at lower rotor speeds because of very low back EMF. So, open loop startup is used till required minimum speed is achieved. The following block diagram shows the software realization of the FOC algorithm. ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#control-algorithm", - "relUrl": "/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#control-algorithm" - },"30": { - "doc": "PFC with PMSM FOC using PLL Estimator", - "title": "PFC Software Design", - "content": "The following section describes the software flow diagram for the power factor correction application project. The power factor correction algorithm in this example project is realized by following state machines. | PFC Init State: In this state following tasks are performed: Initialization and configuration of NVIC, AFEC, PWM peripherals for generation of periodic ADC triggers and ADC conversion interrupt. Calibration of input rectified AC current sense amplifiers. Initialization of reference DC voltage and reference rectified AC current PI controllers used for Power Factor Correction. | PFC Start state: In this state following tasks are performed: Start PWM peripherals timer to trigger ADC conversion interrupt. | PFC Running State: In this state, the power factor correction ISR is executed. | . | PFC Stop State: In this state, the power factor correction is disabled. | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#pfc-software-design", - "relUrl": "/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#pfc-software-design" - },"31": { - "doc": "PFC with PMSM FOC using PLL Estimator", - "title": "Software Configuration:", - "content": "The following section describes user specific parameters used the the project. | Setting the PFC boost converter stage frequency: The boost converter stage PWM frequency ( in Hz ) can be configured by setting the following macro in userparams.h file. This period timer ticks should be configured properly for PWM peripheral in the MHC to get the desired frequency as shown below: | . | Macro | Description | . | PFC_PWM_FREQUENCY | Boost converter stage PWM frequency | . |   |   | . | Setting PI Controller parameters of Boost Converter Controller: | . The voltage and current controllers used in the PFC algorithm has to be tuned to get the optimal control. Parameters for reference DC bus voltage PI Controller: . | Macro | Description | . | PFC_VOLTAGE_PTERM | Proportional gain of voltage control loop | . | PFC_VOLTAGE_ITERM | Integral gain of voltage control loop | . | PFC_VOLTAGE_CTERM | Anti-windup term of voltage control loop | . | PFC_VOLTAGE_OUTMAX | Maximum controller output of voltage control loop | . |   |   | . Parameters for reference rectified AC current PI Controller: . | Macro | Description | . | PFC_CURRCNTR_PTERM | Proportional gain of input current control loop | . | PFC_CURRCNTR_ITERM | Integral gain of input current control loop | . | PFC_CURRCNTR_CTERM | Anti-windup term of input current control loop | . | PFC_CURRCNTR_OUTMAX | Maximum controller output of input current control loop | . |   |   | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#software-configuration", - "relUrl": "/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#software-configuration" - },"32": { - "doc": "PFC with PMSM FOC using PLL Estimator", - "title": "Development Kits", - "content": "MCHV3 with ATSAME70 PIM . Downloading and building the application . To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions. Path of the application within the repository is apps/pmsm_pfc_foc_pll_estimator_sam_e70 . To build the application, refer to the following table and open the project using its IDE. | Project Name | Description | Hardware Setup Guide | . | mchv3_sam_e70_pim.X | MPLABX project for MCHV3 board with ATSAME70 PIM | Hardware Setup and Running The Application on MCHV3 with ATSAME70 PIM | . |   |   |   | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#development-kits", - "relUrl": "/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#development-kits" - },"33": { - "doc": "PFC with PMSM FOC using PLL Estimator", - "title": "PFC with PMSM FOC using PLL Estimator", - "content": ". ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html", - "relUrl": "/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html" - },"34": { - "doc": "PMSM FOC using Quadrature Encoder", - "title": "PMSM FOC using Quadrature Encoder", - "content": "This example application shows how to control the Permanent Magnet Synchronous Motor (PMSM) with Quadrature Encoder based Field Oriented Control (FOC) on a SAME70 Micro-controller. ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#pmsm-foc-using-quadrature-encoder", - "relUrl": "/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#pmsm-foc-using-quadrature-encoder" - },"35": { - "doc": "PMSM FOC using Quadrature Encoder", - "title": "Description", - "content": "Permanent Magnet Synchronous Motor (PMSM) is controlled using Field Oriented Control (FOC). Rotor position and speed is determined using quadrature encoder sensor. Motor start/stop operation is controlled by the switch and motor speed can be changed by the on-board potentiometer. Waveforms and variables can be monitored runtime using X2CScope. Key features enabled in this project are: . | Dual shunt current measurement | Speed control loop | Field weakening | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#description", - "relUrl": "/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#description" - },"36": { - "doc": "PMSM FOC using Quadrature Encoder", - "title": "MCC Project Configurations", - "content": ". | PMSM_FOC: . This component configures FOC algorithm parameters, motor parameters and motor control board parameters. It connects to underlying peripheral libraries AFEC and PWM. This components auto configures ADC channels and PWM channels as per PMSM_FOC component configurations. | AFEC Peripheral: . The AFEC is used to measure analog quantities. Four channels are used to measure the Phase Current U, the Phase Current V, the DC Bus Voltage and the Potentiometer. Conversion is triggered at the PWM (zero match + offset of the switch delay) . | PWM Peripheral: . This peripheral is used to generated three phase synchronous PWM waveforms. Fault functionality is also enabled to switch off the output waveforms asynchronously. | TC QDEC Peripheral: . TC peripheral is configured in QDEC mode. It is used to decode the rotor position and speed from quadrature encoder signals. | X2CScope: . This component adds X2C scope protocol code. This uses UART to communicate to the host PC. X2CScope allows user to monitor variables runtime. | UART Peripheral: . The UART is used for X2CScope communication to observe graphs and variable values in run time . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#mcc-project-configurations", - "relUrl": "/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#mcc-project-configurations" - },"37": { - "doc": "PMSM FOC using Quadrature Encoder", - "title": "Project Details", - "content": "This project has been created using Harmony QSpin Tool. For details refer Harmony QSpin . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#project-details", - "relUrl": "/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#project-details" - },"38": { - "doc": "PMSM FOC using Quadrature Encoder", - "title": "Development Kits", - "content": "MCLV2 with ATSAME70 PIM . Downloading and building the application . To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions. Path of the application within the repository is apps/mcp_pmsm_foc_encoder_sam_e70 . To build the application, refer to the following table and open the project using its IDE. | Project Name | Description | Hardware Setup Guide | . | mclv2_sam_e70_pim.X | MPLABX project for MCLV2 board with ATSAME70 PIM | Hardware Setup and Running The Application on MCLV2 with ATSAME70 PIM | . MCHV3 with ATSAME70 PIM . Downloading and building the application . To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions. Path of the application within the repository is apps/mcp_pmsm_foc_encoder_sam_e70 . To build the application, refer to the following table and open the project using its IDE. | Project Name | Description | Hardware Setup Guide | . | mchv3_sam_e70_pim.X | MPLABX project for MCHV3 board with ATSAME70 PIM | Hardware Setup and Running The Application on MCHV3 with ATSAME70 PIM | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#development-kits", - "relUrl": "/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#development-kits" - },"39": { - "doc": "PMSM FOC using Quadrature Encoder", - "title": "PMSM FOC using Quadrature Encoder", - "content": ". ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html", - "relUrl": "/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html" - },"40": { - "doc": "PMSM FOC using PLL Estimator", - "title": "PMSM FOC using PLL Estimator", - "content": "This example application shows how to control the Permanent Magnet Synchronous Motor (PMSM) with PLL Estimator based Field Oriented Control (FOC) on a SAME70 Micro-controller. ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#pmsm-foc-using-pll-estimator", - "relUrl": "/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#pmsm-foc-using-pll-estimator" - },"41": { - "doc": "PMSM FOC using PLL Estimator", - "title": "Description", - "content": "Permanent Magnet Synchronous Motor (PMSM) is controlled using Field Oriented Control (FOC). Rotor position and speed is determined using PLL estimator technique. Motor start/stop operation is controlled by the switch and motor speed can be changed by the on-board potentiometer. Waveforms and variables can be monitored runtime using X2CScope. Key features enabled in this project are: . | Dual shunt current measurement | Speed control loop | Field weakening | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#description", - "relUrl": "/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#description" - },"42": { - "doc": "PMSM FOC using PLL Estimator", - "title": "MCC Project Configurations", - "content": ". | AFEC Peripheral: . The AFEC is used to measure analog quantities. Four channels are used to measure the Phase Current U, the Phase Current V, the DC Bus Voltage and the Potentiometer. Conversion is triggered at the PWM (zero match + offset of the switch delay) . | PWM Peripheral: . This peripheral is used to generated three phase synchronous PWM waveforms. Fault functionality is also enabled to switch off the output waveforms asynchronously. | X2CScope: . This component adds X2C scope protocol code. This uses UART to communicate to the host PC. X2CScope allows user to monitor variables runtime. | UART Peripheral: . The UART is used for X2CScope communication to observe graphs and variable values in run time . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#mcc-project-configurations", - "relUrl": "/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#mcc-project-configurations" - },"43": { - "doc": "PMSM FOC using PLL Estimator", - "title": "Project Details", - "content": "This project has been created using Harmony QSpin Tool. For details refer Harmony QSpin . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#project-details", - "relUrl": "/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#project-details" - },"44": { - "doc": "PMSM FOC using PLL Estimator", - "title": "Development Kits", - "content": "MCLV2 with ATSAME70 PIM . Downloading and building the application . To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions. Path of the application within the repository is apps/mcp_pmsm_foc_pll_estimator_sam_e70 . To build the application, refer to the following table and open the project using its IDE. | Project Name | Description | Hardware Setup Guide | . | mclv2_sam_e70_pim.X | MPLABX project for MCLV2 board with ATSAME70 PIM | Hardware Setup and Running The Application on MCLV2 with ATSAME70 PIM | . MCHV3 with ATSAME70 PIM . Downloading and building the application . To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions. Path of the application within the repository is apps/mcp_pmsm_foc_pll_estimator_sam_e70 . To build the application, refer to the following table and open the project using its IDE. | Project Name | Description | Hardware Setup Guide | . | mchv3_sam_e70_pim.X | MPLABX project for MCHV3 board with ATSAME70 PIM | Hardware Setup and Running The Application on MCHV3 with ATSAME70 PIM | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#development-kits", - "relUrl": "/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#development-kits" - },"45": { - "doc": "PMSM FOC using PLL Estimator", - "title": "PMSM FOC using PLL Estimator", - "content": ". ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html", - "relUrl": "/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html" - },"46": { - "doc": "Release notes", - "title": "Microchip MPLAB® Harmony 3 Release Notes", - "content": " ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/release_notes.html#microchip-mplab-harmony-3-release-notes", - "relUrl": "/release_notes.html#microchip-mplab-harmony-3-release-notes" - },"47": { - "doc": "Release notes", - "title": "Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family v3.4.0", - "content": "Applications . | Development Board | Number of Applications | . | dsPICDEM™ MCLV-2 Low Voltage Development Board | 3 | . | dsPICDEM™ MCHV-3 High Voltage Development Board | 3 | . New Features . | MISRA-C Compliance for motor control files | Deprecated static projects for PLL based sensorless FOC | Deprecated static projects for encoder based sensored FOC | . Known Issues . | same as v3.1.0 | . Required MPLAB Harmony v3 Modules . | motor_control v3.10.0 | x2c v1.4.0 | . Development Tools . | MPLAB X IDE v6.10 | MPLAB XC32 C/C++ Compiler v4.30 | MPLAB X IDE plug-ins: . | MPLAB Code Configurator (MCC) v5.3.7 | X2CScope v1.3.3. | . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v340", - "relUrl": "/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v340" - },"48": { - "doc": "Release notes", - "title": "Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family v3.3.0", - "content": "Applications . | Development Board | Number of Applications | . | dsPICDEM™ MCLV-2 Low Voltage Development Board | 5 | . | dsPICDEM™ MCHV-3 High Voltage Development Board | 5 | . New Features . | Added PLL based sensorless FOC for MCHV3 in Harmony QSpin | Added Encoder based sensored FOC for MCHV3 in Harmony QSpin | . Known Issues . | same as v3.1.0 | . Required MPLAB Harmony v3 Modules . | bsp v3.14.0 | motor_control v3.9.0 | x2c v1.3.0 | mcc H3 Library v1.1.5 | . Development Tools . | MPLAB X IDE v6.00 | MPLAB XC32 C/C++ Compiler v4.10 | MPLAB X IDE plug-ins: . | MPLAB Code Configurator (MCC) v5.1.17 | X2CScope v1.3.3. | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v330", - "relUrl": "/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v330" - },"49": { - "doc": "Release notes", - "title": "Hardware", - "content": "| For MCHV3 board programming and debugging, use High Voltage Motor Control Isolated Debugger Card | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/release_notes.html#hardware", - "relUrl": "/release_notes.html#hardware" - },"50": { - "doc": "Release notes", - "title": "Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family v3.2.0", - "content": "Applications . | Development Board | Number of Applications | . | dsPICDEM™ MCLV-2 Low Voltage Development Board | 5 | . | dsPICDEM™ MCHV-3 High Voltage Development Board | 3 | . New Features . | Added Motor Control Plant generated motor control firmware for PLL based sensorless FOC for MCLV2 | Added Motor Control Plant generated motor control firmware for Encoder based sensored FOC for MCLV2 | Migrated MHC generated code to MCC generated code | . Known Issues . | same as v3.1.0 | . Required MPLAB Harmony v3 Modules . | csp v3.11.0 | x2c v1.4.0 | bsp v3.11.1 | motor_control v3.8.0 | dev_packs v3.11.0 | mcc v1.1.0 | . Development Tools . | MPLAB X IDE v6.00 | MPLAB XC32 C/C++ Compiler v4.00 | MPLAB X IDE plug-ins: . | MPLAB Code Configurator (MCC) v5.1.2 | X2CScope v1.3.0. | . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v320", - "relUrl": "/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v320" - },"51": { - "doc": "Release notes", - "title": "Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family v3.1.0", - "content": "Applications . | Development Board | Number of Applications | . | dsPICDEM™ MCLV-2 Low Voltage Development Board | 3 | . | dsPICDEM™ MCHV-3 High Voltage Development Board | 3 | . New Features . None . Known Issues . | Isolated EDBG Card . | The Isolated EDBG Card may appear “grayed out” (disabled) under the list of tools in MPLABX v5.50. In order to resolve this issue, please go to Tools -> Options ->Embedded->Generic Settings and enable “Exclude device checks for kits” by selecting the check box. | . | If programming failure occurs with message “java.lang.RuntimeException:RDDI_DAP_OPERATION_FAILED”, then reset the Isolated EDBG Card’s configuration by Go to File -> Project Properties -> EDBG -> Reset | . | pmsm_foc_encoder_sam_e70_mchv3 application running on dsPICDEM MCHV-3 requires increasing bandwidth of the quadrature encoder signal filter to maintain signal integrity of quadrature sensor signals at higher motor speeds. Without these modifications, motor operation may fail at higher speeds. | Reduce the capacitance value of C25, C26 and C27 from 100pF to 10pF 50V NPO 0805 | . | . Required MPLAB Harmony v3 Modules . | csp v3.9.1 | x2c v1.1.4 | motor_control v3.7.0 | dev_packs v3.9.0 | mhc v3.8.0 | . Development Tools . | MPLAB X IDE v5.50 | MPLAB XC32 C/C++ Compiler v3.01 | MPLAB X IDE plug-ins: . | MPLAB Harmony Configurator (MHC) v3.6.4 | X2CScope v1.3.0. | . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v310", - "relUrl": "/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v310" - },"52": { - "doc": "Release notes", - "title": "Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family v3.0.0", - "content": "Applications . Applications migrated from motor_control repository to this application repository for SAME7x/S7x/V7x family. | Development Board | Number of Applications | . | dsPICDEM™ MCLV-2 Low Voltage Development Board | 3 | . | dsPICDEM™ MCHV-3 High Voltage Development Board | 3 | . Required MPLAB Harmony v3 Modules . | csp v3.8.3 | x2c v1.1.3 | motor_control v3.6.0 | dev_packs v3.8.0 | mhc v3.6.5 | . Known Issues . | Isolated EDBG Card . | The Isolated EDBG Card may appear “grayed out” (disabled) under the list of tools in MPLABX v5.45. In order to resolve this issue, please go to Tools -> Options ->Embedded->Generic Settings and enable “Exclude device checks for kits” by selecting the check box. | . | If programming failure occurs with message “java.lang.RuntimeException:RDDI_DAP_OPERATION_FAILED”, then reset the Isolated EDBG Card’s configuration by Go to File -> Project Properties -> EDBG -> Reset | . | pmsm_foc_encoder_sam_e70_mchv3 application running on dsPICDEM MCHV-3 requires increasing bandwidth of the quadrature encoder signal filter to maintain signal integrity of quadrature sensor signals at higher motor speeds. Without these modifications, motor operation may fail at higher speeds. | Reduce the capacitance value of C25, C26 and C27 from 100pF to 10pF 50V NPO 0805 | . | . Development Tools . | MPLAB X IDE v5.45 | MPLAB XC32 C/C++ Compiler v2.50 | MPLAB X IDE plug-ins: . | MPLAB Harmony Configurator (MHC) v3.6.2 | X2CScope v1.3.0. | . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v300", - "relUrl": "/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v300" - },"53": { - "doc": "Release notes", - "title": "Release notes", - "content": ". ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/release_notes.html", - "relUrl": "/release_notes.html" - },"54": { - "doc": "Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family", - "title": "Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family", - "content": "# Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family MPLAB Harmony 3 is an extension of the MPLAB® ecosystem for creating embedded firmware solutions for Microchip 32-bit SAM and PIC32 microcontroller and microprocessor devices. Refer to the following links for more information. - [Microchip 32-bit MCUs for Motor Control Applications](https://www.microchip.com/design-centers/motor-control-and-drive/control-products/32-bit-solutions) - [Microchip 32-bit MCUs](https://www.microchip.com/design-centers/32-bit) - [Microchip 32-bit MPUs](https://www.microchip.com/design-centers/32-bit-mpus) - [Microchip MPLAB X IDE](https://www.microchip.com/mplab/mplab-x-ide) - [Microchip MPLAB Harmony](https://www.microchip.com/mplab/mplab-harmony) - [Microchip MPLAB Harmony Pages](https://microchip-mplab-harmony.github.io/) This repository contains the MPLAB® Harmony 3 Motor Control application exmaples for SAME7x/S7x/V7x family. Users can use these examples as a reference for developing their own motor control applications. Refer to the following links for release notes and licensing information. - [Release Notes](/mc_apps_sam_e7x_s7x_v7x/release_notes.html) - [MPLAB Harmony License](/mc_apps_sam_e7x_s7x_v7x/mplab_harmony_license.html) ## Contents Summary | Folder | Description |------------|-----------------------------------------------------------| apps | Demonstration applications for Motor Control | docs | Contains documentation in html format for offline viewing (to be used only after cloning this repository onto a local machine). Use [github pages](https://microchip-mplab-harmony.github.io/mc_apps_sam_e7x_s7x_v7x/) of this repository for viewing it online. | ## Configurable Motor Control Examples (MCC with Harmony QSpin Motor Control) The following applications are provided to demonstrate the Harmony QSpin to generate the motor control firmware. | Name | Description|Control Board|Inverter Board|:-----|:-----------|:------------|:-------------| [PMSM FOC using PLL Estimator ](/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html) | Sensorless Field Oriented Control of PMSM using PLL Estimator | [ATSAME70 Motor Control Plugin Module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203) | [dsPICDEM™ MCLV-2 Support](https://www.microchip.com/DevelopmentTools/ProductDetails/DM330021-2) [dsPICDEM™ MCHV-3 Support](https://www.microchip.com/developmenttools/ProductDetails/dm330023-3) | [PMSM FOC using Quadrature Encoder](/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html) | Sensored Field Oriented Control of PMSM using Quadrature Encoder |[ATSAME70 Motor Control Plugin Module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203)| [dsPICDEM™ MCLV-2 Support](https://www.microchip.com/DevelopmentTools/ProductDetails/DM330021-2) [dsPICDEM™ MCHV-3 Support](https://www.microchip.com/developmenttools/ProductDetails/dm330023-3) | ## Static Motor Control Examples These applications contain static algorithm code and peripherals are configured using MCC. Configurations can be changed in userparam.h file. | Name | Description|Control Board|Inverter Board|:-----|:-----------|:------------|:-------------| [PFC and PMSM FOC using PLL Estimator](/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html) | Power Factor Correction and Sensorless Field Oriented Control of PMSM using PLL Estimator |[ATSAME70 Motor Control Plugin Module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203) |[dsPICDEM™ MCHV-3 Support](https://www.microchip.com/developmenttools/ProductDetails/dm330023-3) | [PMSM FOC using Sliding Mode Observer](/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_foc_smo_sam_e70/readme.html) | Sensorless Field Oriented Control of PMSM using Sliding Mode Observer |[ATSAME70 Motor Control Plugin Module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203) | [dsPICDEM™ MCLV-2 Support](https://www.microchip.com/DevelopmentTools/ProductDetails/DM330021-2) ||||| [![License](https://img.shields.io/badge/license-Harmony%20license-orange.svg)](https://github.com/Microchip-MPLAB-Harmony/mc/blob/master/mplab_harmony_license.md) [![Latest release](https://img.shields.io/github/release/Microchip-MPLAB-Harmony/mc.svg)](https://github.com/Microchip-MPLAB-Harmony/mc/releases/latest) [![Latest release date](https://img.shields.io/github/release-date/Microchip-MPLAB-Harmony/mc.svg)](https://github.com/Microchip-MPLAB-Harmony/mc/releases/latest) [![Commit activity](https://img.shields.io/github/commit-activity/y/Microchip-MPLAB-Harmony/mc.svg)](https://github.com/Microchip-MPLAB-Harmony/mc/graphs/commit-activity) [![Contributors](https://img.shields.io/github/contributors-anon/Microchip-MPLAB-Harmony/mc.svg)]() ____ [![Follow us on Youtube](https://img.shields.io/badge/Youtube-Follow%20us%20on%20Youtube-red.svg)](https://www.youtube.com/user/MicrochipTechnology) [![Follow us on LinkedIn](https://img.shields.io/badge/LinkedIn-Follow%20us%20on%20LinkedIn-blue.svg)](https://www.linkedin.com/company/microchip-technology) [![Follow us on Facebook](https://img.shields.io/badge/Facebook-Follow%20us%20on%20Facebook-blue.svg)](https://www.facebook.com/microchiptechnology/) [![Follow us on Twitter](https://img.shields.io/twitter/follow/MicrochipTech.svg?style=social)](https://twitter.com/MicrochipTech) [![](https://img.shields.io/github/stars/Microchip-MPLAB-Harmony/mc.svg?style=social)]() [![](https://img.shields.io/github/watchers/Microchip-MPLAB-Harmony/mc.svg?style=social)]() ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/", - "relUrl": "/" - } -} -`; -var data_for_search - -var repo_name = "mc_apps_sam_e7x_s7x_v7x"; -var doc_folder_name = "docs"; -var localhost_path = "http://localhost:4000/"; -var home_index_string = "Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family"; - -(function (jtd, undefined) { - -// Event handling - -jtd.addEvent = function(el, type, handler) { - if (el.attachEvent) el.attachEvent('on'+type, handler); else el.addEventListener(type, handler); -} -jtd.removeEvent = function(el, type, handler) { - if (el.detachEvent) el.detachEvent('on'+type, handler); else el.removeEventListener(type, handler); -} -jtd.onReady = function(ready) { - // in case the document is already rendered - if (document.readyState!='loading') ready(); - // modern browsers - else if (document.addEventListener) document.addEventListener('DOMContentLoaded', ready); - // IE <= 8 - else document.attachEvent('onreadystatechange', function(){ - if (document.readyState=='complete') ready(); - }); -} - -// Show/hide mobile menu - -function initNav() { - jtd.addEvent(document, 'click', function(e){ - var target = e.target; - while (target && !(target.classList && target.classList.contains('nav-list-expander'))) { - target = target.parentNode; - } - if (target) { - e.preventDefault(); - target.parentNode.classList.toggle('active'); - } - }); - - const siteNav = document.getElementById('site-nav'); - const mainHeader = document.getElementById('main-header'); - const menuButton = document.getElementById('menu-button'); - - jtd.addEvent(menuButton, 'click', function(e){ - e.preventDefault(); - - if (menuButton.classList.toggle('nav-open')) { - siteNav.classList.add('nav-open'); - mainHeader.classList.add('nav-open'); - } else { - siteNav.classList.remove('nav-open'); - mainHeader.classList.remove('nav-open'); - } - }); -} -// Site search - -function initSearch() { - - data_for_search = JSON.parse(myVariable); - lunr.tokenizer.separator = /[\s/]+/ - - var index = lunr(function () { - this.ref('id'); - this.field('title', { boost: 200 }); - this.field('content', { boost: 2 }); - this.field('url'); - this.metadataWhitelist = ['position'] - - var location = document.location.pathname; - var path = location.substring(0, location.lastIndexOf("/")); - var directoryName = path.substring(path.lastIndexOf("/")+1); - - var cur_path_from_repo = path.substring(path.lastIndexOf(repo_name)); - - // Decrement depth by 2 as HTML files are placed in repo_name/doc_folder_name - var cur_depth_from_doc_folder = (cur_path_from_repo.split("/").length - 2); - - var rel_path_to_doc_folder = ""; - - if (cur_depth_from_doc_folder == 0) { - rel_path_to_doc_folder = "./" - } - else { - for (var i = 0; i < cur_depth_from_doc_folder; i++) - { - rel_path_to_doc_folder = rel_path_to_doc_folder + "../" - } - } - - for (var i in data_for_search) { - - data_for_search[i].url = data_for_search[i].url.replace(localhost_path + repo_name, rel_path_to_doc_folder); - - if (data_for_search[i].title == home_index_string) - { - data_for_search[i].url = data_for_search[i].url + "index.html" - } - - this.add({ - id: i, - title: data_for_search[i].title, - content: data_for_search[i].content, - url: data_for_search[i].url - }); - } - }); - - searchLoaded(index, data_for_search); -}function searchLoaded(index, docs) { - var index = index; - var docs = docs; - var searchInput = document.getElementById('search-input'); - var searchResults = document.getElementById('search-results'); - var mainHeader = document.getElementById('main-header'); - var currentInput; - var currentSearchIndex = 0; - - function showSearch() { - document.documentElement.classList.add('search-active'); - } - - function hideSearch() { - document.documentElement.classList.remove('search-active'); - } - - function update() { - currentSearchIndex++; - - var input = searchInput.value; - if (input === '') { - hideSearch(); - } else { - showSearch(); - // scroll search input into view, workaround for iOS Safari - window.scroll(0, -1); - setTimeout(function(){ window.scroll(0, 0); }, 0); - } - if (input === currentInput) { - return; - } - currentInput = input; - searchResults.innerHTML = ''; - if (input === '') { - return; - } - - var results = index.query(function (query) { - var tokens = lunr.tokenizer(input) - query.term(tokens, { - boost: 10 - }); - query.term(tokens, { - wildcard: lunr.Query.wildcard.TRAILING - }); - }); - - if ((results.length == 0) && (input.length > 2)) { - var tokens = lunr.tokenizer(input).filter(function(token, i) { - return token.str.length < 20; - }) - if (tokens.length > 0) { - results = index.query(function (query) { - query.term(tokens, { - editDistance: Math.round(Math.sqrt(input.length / 2 - 1)) - }); - }); - } - } - - if (results.length == 0) { - var noResultsDiv = document.createElement('div'); - noResultsDiv.classList.add('search-no-result'); - noResultsDiv.innerText = 'No results found'; - searchResults.appendChild(noResultsDiv); - - } else { - var resultsList = document.createElement('ul'); - resultsList.classList.add('search-results-list'); - searchResults.appendChild(resultsList); - - addResults(resultsList, results, 0, 10, 100, currentSearchIndex); - } - - function addResults(resultsList, results, start, batchSize, batchMillis, searchIndex) { - if (searchIndex != currentSearchIndex) { - return; - } - for (var i = start; i < (start + batchSize); i++) { - if (i == results.length) { - return; - } - addResult(resultsList, results[i]); - } - setTimeout(function() { - addResults(resultsList, results, start + batchSize, batchSize, batchMillis, searchIndex); - }, batchMillis); - } - - function addResult(resultsList, result) { - var doc = docs[result.ref]; - - var resultsListItem = document.createElement('li'); - resultsListItem.classList.add('search-results-list-item'); - resultsList.appendChild(resultsListItem); - - var resultLink = document.createElement('a'); - resultLink.classList.add('search-result'); - resultLink.setAttribute('href', doc.url); - resultsListItem.appendChild(resultLink); - - var resultTitle = document.createElement('div'); - resultTitle.classList.add('search-result-title'); - resultLink.appendChild(resultTitle); - - var resultDoc = document.createElement('div'); - resultDoc.classList.add('search-result-doc'); - resultDoc.innerHTML = ''; - resultTitle.appendChild(resultDoc); - - var resultDocTitle = document.createElement('div'); - resultDocTitle.classList.add('search-result-doc-title'); - resultDocTitle.innerHTML = doc.doc; - resultDoc.appendChild(resultDocTitle); - var resultDocOrSection = resultDocTitle; - - if (doc.doc != doc.title) { - resultDoc.classList.add('search-result-doc-parent'); - var resultSection = document.createElement('div'); - resultSection.classList.add('search-result-section'); - resultSection.innerHTML = doc.title; - resultTitle.appendChild(resultSection); - resultDocOrSection = resultSection; - } - - var metadata = result.matchData.metadata; - var titlePositions = []; - var contentPositions = []; - for (var j in metadata) { - var meta = metadata[j]; - if (meta.title) { - var positions = meta.title.position; - for (var k in positions) { - titlePositions.push(positions[k]); - } - } - if (meta.content) { - var positions = meta.content.position; - for (var k in positions) { - var position = positions[k]; - var previewStart = position[0]; - var previewEnd = position[0] + position[1]; - var ellipsesBefore = true; - var ellipsesAfter = true; - for (var k = 0; k < 5; k++) { - var nextSpace = doc.content.lastIndexOf(' ', previewStart - 2); - var nextDot = doc.content.lastIndexOf('. ', previewStart - 2); - if ((nextDot >= 0) && (nextDot > nextSpace)) { - previewStart = nextDot + 1; - ellipsesBefore = false; - break; - } - if (nextSpace < 0) { - previewStart = 0; - ellipsesBefore = false; - break; - } - previewStart = nextSpace + 1; - } - for (var k = 0; k < 10; k++) { - var nextSpace = doc.content.indexOf(' ', previewEnd + 1); - var nextDot = doc.content.indexOf('. ', previewEnd + 1); - if ((nextDot >= 0) && (nextDot < nextSpace)) { - previewEnd = nextDot; - ellipsesAfter = false; - break; - } - if (nextSpace < 0) { - previewEnd = doc.content.length; - ellipsesAfter = false; - break; - } - previewEnd = nextSpace; - } - contentPositions.push({ - highlight: position, - previewStart: previewStart, previewEnd: previewEnd, - ellipsesBefore: ellipsesBefore, ellipsesAfter: ellipsesAfter - }); - } - } - } - - if (titlePositions.length > 0) { - titlePositions.sort(function(p1, p2){ return p1[0] - p2[0] }); - resultDocOrSection.innerHTML = ''; - addHighlightedText(resultDocOrSection, doc.title, 0, doc.title.length, titlePositions); - } - - if (contentPositions.length > 0) { - contentPositions.sort(function(p1, p2){ return p1.highlight[0] - p2.highlight[0] }); - var contentPosition = contentPositions[0]; - var previewPosition = { - highlight: [contentPosition.highlight], - previewStart: contentPosition.previewStart, previewEnd: contentPosition.previewEnd, - ellipsesBefore: contentPosition.ellipsesBefore, ellipsesAfter: contentPosition.ellipsesAfter - }; - var previewPositions = [previewPosition]; - for (var j = 1; j < contentPositions.length; j++) { - contentPosition = contentPositions[j]; - if (previewPosition.previewEnd < contentPosition.previewStart) { - previewPosition = { - highlight: [contentPosition.highlight], - previewStart: contentPosition.previewStart, previewEnd: contentPosition.previewEnd, - ellipsesBefore: contentPosition.ellipsesBefore, ellipsesAfter: contentPosition.ellipsesAfter - } - previewPositions.push(previewPosition); - } else { - previewPosition.highlight.push(contentPosition.highlight); - previewPosition.previewEnd = contentPosition.previewEnd; - previewPosition.ellipsesAfter = contentPosition.ellipsesAfter; - } - } - - var resultPreviews = document.createElement('div'); - resultPreviews.classList.add('search-result-previews'); - resultLink.appendChild(resultPreviews); - - var content = doc.content; - for (var j = 0; j < Math.min(previewPositions.length, 3); j++) { - var position = previewPositions[j]; - - var resultPreview = document.createElement('div'); - resultPreview.classList.add('search-result-preview'); - resultPreviews.appendChild(resultPreview); - - if (position.ellipsesBefore) { - resultPreview.appendChild(document.createTextNode('... ')); - } - addHighlightedText(resultPreview, content, position.previewStart, position.previewEnd, position.highlight); - if (position.ellipsesAfter) { - resultPreview.appendChild(document.createTextNode(' ...')); - } - } - } - var resultRelUrl = document.createElement('span'); - resultRelUrl.classList.add('search-result-rel-url'); - resultRelUrl.innerText = doc.relUrl; - resultTitle.appendChild(resultRelUrl); - } - - function addHighlightedText(parent, text, start, end, positions) { - var index = start; - for (var i in positions) { - var position = positions[i]; - var span = document.createElement('span'); - span.innerHTML = text.substring(index, position[0]); - parent.appendChild(span); - index = position[0] + position[1]; - var highlight = document.createElement('span'); - highlight.classList.add('search-result-highlight'); - highlight.innerHTML = text.substring(position[0], index); - parent.appendChild(highlight); - } - var span = document.createElement('span'); - span.innerHTML = text.substring(index, end); - parent.appendChild(span); - } - } - - jtd.addEvent(searchInput, 'focus', function(){ - setTimeout(update, 0); - }); - - jtd.addEvent(searchInput, 'keyup', function(e){ - switch (e.keyCode) { - case 27: // When esc key is pressed, hide the results and clear the field - searchInput.value = ''; - break; - case 38: // arrow up - case 40: // arrow down - case 13: // enter - e.preventDefault(); - return; - } - update(); - }); - - jtd.addEvent(searchInput, 'keydown', function(e){ - switch (e.keyCode) { - case 38: // arrow up - e.preventDefault(); - var active = document.querySelector('.search-result.active'); - if (active) { - active.classList.remove('active'); - if (active.parentElement.previousSibling) { - var previous = active.parentElement.previousSibling.querySelector('.search-result'); - previous.classList.add('active'); - } - } - return; - case 40: // arrow down - e.preventDefault(); - var active = document.querySelector('.search-result.active'); - if (active) { - if (active.parentElement.nextSibling) { - var next = active.parentElement.nextSibling.querySelector('.search-result'); - active.classList.remove('active'); - next.classList.add('active'); - } - } else { - var next = document.querySelector('.search-result'); - if (next) { - next.classList.add('active'); - } - } - return; - case 13: // enter - e.preventDefault(); - var active = document.querySelector('.search-result.active'); - if (active) { - active.click(); - } else { - var first = document.querySelector('.search-result'); - if (first) { - first.click(); - } - } - return; - } - }); - - jtd.addEvent(document, 'click', function(e){ - if (e.target != searchInput) { - hideSearch(); - } - }); -} - -// Switch theme - -jtd.getTheme = function() { - var cssFileHref = document.querySelector('[rel="stylesheet"]').getAttribute('href'); - return cssFileHref.substring(cssFileHref.lastIndexOf('-') + 1, cssFileHref.length - 4); -} - -jtd.setTheme = function(theme) { - var cssFile = document.querySelector('[rel="stylesheet"]'); - cssFile.setAttribute('href', 'http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/assets/css/just-the-docs-' + theme + '.css'); -} - -// Document ready - -jtd.onReady(function(){ - initNav(); - initSearch(); -}); - -})(window.jtd = window.jtd || {}); - - diff --git a/docs/assets/js/search-data.json b/docs/assets/js/search-data.json deleted file mode 100644 index abbcc2d..0000000 --- a/docs/assets/js/search-data.json +++ /dev/null @@ -1,332 +0,0 @@ -{"0": { - "doc": "Hardware Setup", - "title": "Hardware Setup", - "content": "dsPICDEM™ MCHV-3 Development Board (High Voltage) . | Board | Description | . | MCHV3 Setup for Sensorless Mode | Hardware setup of MCHV3 development board for sensorless mode | . | MCHV3 Setup for Quadrature Encoder Mode | Hardware setup of MCHV3 development board for encoder mode | . |   |   | . dsPICDEM™ MCLV-2 Development Board (Motor Control Low-Voltage) . | Board | Description | . | MCLV2 Setup for Sensorless Mode | Hardware setup of MCLV2 development board for sensorless mode | . | MCLV2 Setup for Quadrature Encoder Mode | Hardware setup of MCLV2 development board for encoder mode | . |   |   | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/hardware_setup.html", - "relUrl": "/apps/docs/hardware_setup.html" - },"1": { - "doc": "MCHV3 Development Board Setup for Quadrature Encoder", - "title": "MCHV3 Development Board", - "content": " ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mchv3_atsame70_pim_encoder.html#mchv3-development-board", - "relUrl": "/apps/docs/mchv3_atsame70_pim_encoder.html#mchv3-development-board" - },"2": { - "doc": "MCHV3 Development Board Setup for Quadrature Encoder", - "title": "Setting up the hardware", - "content": "The following table shows the target hardware for the application projects. | Project Name | Hardware | . | mchv3_sam_e70_pim.X | MCHV3 Development BoardATSAME70 Plug-in moduleLeadshine EL5-M0400-1-24 Motor Isolated Embedded Debugger Interface | . |   |   | . Setting up MCHV3 Development Board . | Mount the ATSAME70 Motor Control Plug In Module on U9 header. | Place the “PFC - External Opamp Configuration” Matrix board at J4. | Motor Connections: . | Phase U - M1 | Phase V - M2 | Phase W - M3 | . | Encoder Connections: . | A+ - HA | B+ - HB | 5V - +5V | 0V - GND | . | Jumper Settings: . | J11 - VAC ( Short Pin 3 - 4) | J12 - IA ( Short Pin 1 - 2) | J13 - IB ( Short Pin 1 - 2) | J14 - Fault_IP/IBUS ( Short Pin 1 - 2) | . | Power the board with (110V/220V) AC mains. For additional safety, it is recommended to use a current limited power supply while testing this software demonstration on a non-default hardware and motor. | Installing Isolated Embedded Debugger Default programmer or debugger daughter card shipped with the MCHV3 board cannot program or debug SAM series MCU and therefore, it needs to be replaced with an Isolated Embedded Debugger Interface for MCHV. | Complete Setup . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mchv3_atsame70_pim_encoder.html#setting-up-the-hardware", - "relUrl": "/apps/docs/mchv3_atsame70_pim_encoder.html#setting-up-the-hardware" - },"3": { - "doc": "MCHV3 Development Board Setup for Quadrature Encoder", - "title": "Running the Application", - "content": ". | Build and Program the application using its IDE | Press switch PUSHBUTTON to start the motor | Vary potentiometer to change the speed of the motor | Press switch to stop the motor | Monitor graphs on X2C Scope | . Refer to the following tables for switch and LED details: . | Switch | Description | . | PUSHBUTTON | To start or stop the motor | . |   |   | . | LED D2 Status | Description | . | OFF | No fault | . | ON | Fault is detected | . |   |   | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mchv3_atsame70_pim_encoder.html#running-the-application", - "relUrl": "/apps/docs/mchv3_atsame70_pim_encoder.html#running-the-application" - },"4": { - "doc": "MCHV3 Development Board Setup for Quadrature Encoder", - "title": "MCHV3 Development Board Setup for Quadrature Encoder", - "content": " ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mchv3_atsame70_pim_encoder.html", - "relUrl": "/apps/docs/mchv3_atsame70_pim_encoder.html" - },"5": { - "doc": "MCHV3 Development Board Setup for Sensorless Mode", - "title": "MCHV3 Development Board", - "content": " ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mchv3_atsame70_pim_sensorless.html#mchv3-development-board", - "relUrl": "/apps/docs/mchv3_atsame70_pim_sensorless.html#mchv3-development-board" - },"6": { - "doc": "MCHV3 Development Board Setup for Sensorless Mode", - "title": "Setting up the hardware", - "content": "The following table shows the target hardware for the application projects. | Project Name | Hardware | . | mchv3_sam_e70_pim.X | MCHV3 Development BoardATSAME70 Plug-in moduleLeadshine EL5-M0400-1-24 Motor Isolated Embedded Debugger Interface | . |   |   | . Setting up MCHV3 Development Board . | Mount the ATSAME70 Motor Control Plug In Module on U9 header. | Place the “PFC - External Opamp Configuration” Matrix board at J4. | Motor Connections: . | Phase U - M1 | Phase V - M2 | Phase W - M3 | . | Jumper Settings: . | J11 - VAC ( Short Pin 3 - 4) | J12 - IA ( Short Pin 1 - 2) | J13 - IB ( Short Pin 1 - 2) | J14 - Fault_IP/IBUS ( Short Pin 1 - 2) | . | Power the board with (110V/220V) AC mains. For additional safety, it is recommended to use a current limited power supply while testing this software demonstration on a non-default hardware and motor. | Installing Isolated Embedded Debugger Default programmer or debugger daughter card shipped with the MCHV3 board cannot program or debug SAM series MCU and therefore, it needs to be replaced with an Isolated Embedded Debugger Interface for MCHV. | Complete Setup . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mchv3_atsame70_pim_sensorless.html#setting-up-the-hardware", - "relUrl": "/apps/docs/mchv3_atsame70_pim_sensorless.html#setting-up-the-hardware" - },"7": { - "doc": "MCHV3 Development Board Setup for Sensorless Mode", - "title": "Running the Application", - "content": ". | Build and Program the application using its IDE | Press switch PUSHBUTTON to start the motor | Vary potentiometer to change the speed of the motor | Press switch to stop the motor | Monitor graphs on X2C Scope | . Refer to the following tables for switch and LED details: . | Switch | Description | . | PUSHBUTTON | To start or stop the motor | . |   |   | . | LED D2 Status | Description | . | OFF | No fault | . | ON | Fault is detected | . |   |   | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mchv3_atsame70_pim_sensorless.html#running-the-application", - "relUrl": "/apps/docs/mchv3_atsame70_pim_sensorless.html#running-the-application" - },"8": { - "doc": "MCHV3 Development Board Setup for Sensorless Mode", - "title": "MCHV3 Development Board Setup for Sensorless Mode", - "content": " ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mchv3_atsame70_pim_sensorless.html", - "relUrl": "/apps/docs/mchv3_atsame70_pim_sensorless.html" - },"9": { - "doc": "MCLV2 Development Board Setup for Quadrature Encoder", - "title": "MCLV2 Development Board", - "content": " ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mclv2_atsame70_pim_encoder.html#mclv2-development-board", - "relUrl": "/apps/docs/mclv2_atsame70_pim_encoder.html#mclv2-development-board" - },"10": { - "doc": "MCLV2 Development Board Setup for Quadrature Encoder", - "title": "Setting up the hardware", - "content": "The following table shows the target hardware for the application projects. | Project Name | Hardware | . | mclv2_sam_e70_pim.X | MCLV2 Development BoardATSAME70 Plug-in moduleHurst Motor with encoder | . |   |   | . Setting up MCLV2 Development Board . | Mount the ATSAME70 Motor Control Plug In Module on U9 header. | Place the “External Opamp Configuration” Matrix board at J14. | Motor Connections: . | White (Phase U) - M1 | Black (Phase V) - M2 | Red (Phase W) - M3 | . | Encoder Connections: Connect encoder wires as shown below . | (Red) +5V : +5V | (Black) -5V : GND | (White) A : HA | (Blue) B : HB | . | Jumper Settings: . | JP1 - Curr, JP2 - Curr, JP3 - Curr | In order to use RS232 port for X2CScope Communication JP4 - UART, JP5 - UART | In order to use USB port for X2CScope Communication JP4 - USB, JP5 - USB | . | Power the board with a 24V DC supply using J2 or BP1-BP2. For additional safety, it is recommended to use a current limited power supply while testing this software demonstration on a non-default hardware and motor. | Complete Setup . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mclv2_atsame70_pim_encoder.html#setting-up-the-hardware", - "relUrl": "/apps/docs/mclv2_atsame70_pim_encoder.html#setting-up-the-hardware" - },"11": { - "doc": "MCLV2 Development Board Setup for Quadrature Encoder", - "title": "Running the Application", - "content": ". | Build and Program the application using its IDE | Press switch S2 to start the motor | Vary potentiometer to change the speed of the motor | Press switch S2 to stop the motor | Press switch S3 to change the direction of the motor | Press switch S2 again to start the motor | Monitor graphs on X2C Scope | . Refer to the following tables for switch and LED details: . | Switch | Description | . | Switch S2 | To start or stop the motor | . | Switch S3 | To change the direction of rotation. Direction toggle command is accepted only when motor is stationary. | . |   |   | . | LED D2 Status | Description | . | OFF | Motor spin direction is “positive” | . | ON | Motor spin direction is “negative” | . |   |   | . | LED D17 Status | Description | . | OFF | No fault | . | ON | Fault is detected | . |   |   | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mclv2_atsame70_pim_encoder.html#running-the-application", - "relUrl": "/apps/docs/mclv2_atsame70_pim_encoder.html#running-the-application" - },"12": { - "doc": "MCLV2 Development Board Setup for Quadrature Encoder", - "title": "MCLV2 Development Board Setup for Quadrature Encoder", - "content": " ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mclv2_atsame70_pim_encoder.html", - "relUrl": "/apps/docs/mclv2_atsame70_pim_encoder.html" - },"13": { - "doc": "MCLV2 Development Board Setup for Sensorless Mode", - "title": "MCLV2 Development Board", - "content": " ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mclv2_atsame70_pim_sensorless.html#mclv2-development-board", - "relUrl": "/apps/docs/mclv2_atsame70_pim_sensorless.html#mclv2-development-board" - },"14": { - "doc": "MCLV2 Development Board Setup for Sensorless Mode", - "title": "Setting up the hardware", - "content": "The following table shows the target hardware for the application projects. | Project Name | Hardware | . | mclv2_sam_e70_pim.X | MCLV2 Development BoardATSAME70 Plug-in moduleHurst Motor with encoder | . |   |   | . Setting up MCLV2 Development Board . | Mount the ATSAME70 Motor Control Plug In Module on U9 header. | Place the “External Opamp Configuration” Matrix board at J14. | Motor Connections: . | White (Phase U) - M1 | Black (Phase V) - M2 | Red (Phase W) - M3 | . | Jumper Settings: . | JP1 - Curr, JP2 - Curr, JP3 - Curr | In order to use RS232 port for X2CScope Communication JP4 - UART, JP5 - UART | In order to use USB port for X2CScope Communication JP4 - USB, JP5 - USB | . | Power the board with a 24V DC supply using J2 or BP1-BP2. For additional safety, it is recommended to use a current limited power supply while testing this software demonstration on a non-default hardware and motor. | Complete Setup . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mclv2_atsame70_pim_sensorless.html#setting-up-the-hardware", - "relUrl": "/apps/docs/mclv2_atsame70_pim_sensorless.html#setting-up-the-hardware" - },"15": { - "doc": "MCLV2 Development Board Setup for Sensorless Mode", - "title": "Running the Application", - "content": ". | Build and Program the application using its IDE | Press switch S2 to start the motor | Vary potentiometer to change the speed of the motor | Press switch S2 to stop the motor | Press switch S3 to change the direction of the motor | Press switch S2 again to start the motor | Monitor graphs on X2C Scope | . Refer to the following tables for switch and LED details: . | Switch | Description | . | Switch S2 | To start or stop the motor | . | Switch S3 | To change the direction of rotation. Direction toggle command is accepted only when motor is stationary. | . |   |   | . | LED D2 Status | Description | . | OFF | Motor spin direction is “positive” | . | ON | Motor spin direction is “negative” | . |   |   | . | LED D17 Status | Description | . | OFF | No fault | . | ON | Fault is detected | . |   |   | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mclv2_atsame70_pim_sensorless.html#running-the-application", - "relUrl": "/apps/docs/mclv2_atsame70_pim_sensorless.html#running-the-application" - },"16": { - "doc": "MCLV2 Development Board Setup for Sensorless Mode", - "title": "MCLV2 Development Board Setup for Sensorless Mode", - "content": " ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/docs/mclv2_atsame70_pim_sensorless.html", - "relUrl": "/apps/docs/mclv2_atsame70_pim_sensorless.html" - },"17": { - "doc": "License", - "title": "License", - "content": "MICROCHIP SOFTWARE IS PROVIDED SOLELY TO ASSIST YOU IN DEVELOPING PRODUCTS AND SYSTEMS THAT USE MICROCHIP PRODUCTS. DOWNLOAD AND/OR USE OF THE SOFTWARE REQUIRES THAT YOU ACCEPT THIS SOFTWARE LICENSE AGREEMENT. IF YOU DO NOT WISH TO ACCEPT THESE TERMS, DO NOT DOWNLOAD OR USE ANY OF THE SOFTWARE. DOWNLOADING OR USING THE SOFTWARE CONTITUTES YOUR ACCEPTANCE OF THIS SOFTWARE LICENSE AGREEMENT. SOFTWARE LICENSE AGREEMENT . This Software License Agreement (\"Agreement\") is an agreement between you (if licensing as an individual) or the entity you represent (if licensing as a business) (\"you\" or \"Licensee\") and Microchip Technology Incorporated, a Delaware corporation, with a place of business at 2355 W. Chandler Blvd., Chandler, AZ 85224-6199, and its affiliates including Microchip Technology Ireland Limited, a company organized under the laws of Ireland, with a principal address at Ground Floor, Block W., East Point Business Park, Dublin, Ireland 3 (collectively, \"Microchip\") for the Microchip MPLAB Harmony Integrated Software Framework and documentation included in the download or otherwise provided by Microchip to Licensee (collectively, the \"Software\"). 1. Use. Subject to the terms of this Agreement, Microchip hereby grants Licensee a limited, revocable, non-exclusive, non-transferable, worldwide license to (a) use the Software, and (b) modify the Software provided in source code form, if any (and use and copy modifications of such Software made by Licensee), provided that in each case (with respect to clauses (a) and (b)) Licensee solely uses the Software with Microchip Products, Licensee Products, or other products agreed to by Microchip in writing. Licensee has no right to (i) substitute third party products for Microchip Products, or (ii) except as expressly provided in Section 2 below, sublicense its rights under this Agreement or otherwise disclose or distribute the Software to any third party. Licensee may make a reasonable number of copies of the Software solely as necessary to exercise its license rights in this Section 1. Licensee will not remove or alter any copyright, trademark, or other proprietary notices contained on or in the Software or any copies. “Microchip Products” means those Microchip devices purchased from Microchip or one of its authorized distributors that are identified in the Software, or if not identified in the Software, then such Microchip devices that are consistent with the purpose of the Software, including but not limited to Microchip 32-bit microcontroller and microprocessor devices and the like. “Licensee Products” means products manufactured by or for Licensee that use or incorporate Microchip Products. 2. Subcontractors. If Licensee wishes for its subcontractor to obtain and use the Software in order to provide design, manufacturing, or other services to Licensee: (a) such subcontractor may (i) download and agree to the terms of this Agreement or (ii) contact Microchip directly for a copy of this Agreement and agree to its terms; or (b) Licensee may sublicense the rights described in Section 1 directly to its subcontractor, provided that (i) such subcontractor agrees in writing to the terms of this Agreement � a copy of which will be provided to Microchip upon request, and (ii) Licensee is liable for such subcontractor's acts and omissions. 3. Third Party Software. (a) Third Party Materials. Licensee agrees to comply with third party license terms applicable to Third Party Materials, if any. Microchip will not be held responsible for Licensee's failure to comply with such terms. Microchip has no obligation to provide support or maintenance for Third Party Materials. \"Third Party Materials\" means the third party software, systems, tools, or specifications (including those of a standards setting organization) referenced in, bundled with, or included in the Software. (b) Open Source Components. Notwithstanding the license grant in Section 1 above, Licensee acknowledges that the Software may include Open Source Components. To the extent required by the licenses covering Open Source Components, the terms of such license apply in lieu of the terms of this Agreement. To the extent the terms of the licenses applicable to Open Source Components prohibit any of the restrictions in this Agreement with respect to such Open Source Components, those restrictions will not apply to the Open Source Component. \"Open Source Components\" means components of the Software that are subject to the terms of an Open Source License. \"Open Source License\" means any software license approved as an open source license by the Open Source Initiative or any substantially similar license, including without limitation any license that, as a condition of distribution of the software licensed under such license, requires that the distributor make the software available in source code format. 4. Licensee Obligations. (a) Restrictions. Except as expressly permitted by this Agreement, Licensee agrees that it will not (i) modify or alter the Software or a Microchip Product; (ii) adapt, translate, decompile, reverse engineer, disassemble the Software provided in object code form, any Microchip Product, or any samples or prototypes provided by Microchip, or create derivative works thereof; or (iii) use the Software with any software or other materials that are subject to licenses or restrictions (e.g., Open Source Licenses) that, when combined with the Software, would require Microchip to disclose, license, distribute, or otherwise make all or any part of such Software available to anyone. (b) Indemnity. Licensee will indemnify (and, at Microchip's election, defend) Microchip from and against any and all claims, costs, damages, expenses (including reasonable attorneys' fees), liabilities, and losses, arising out of or related to: (i) Licensee's modification, disclosure, or distribution of the Software or Third Party Materials; (ii) the use, sale, or distribution of Licensee Products; and (iii) an allegation that Licensee Products or Licensee's modification of the Software infringe third party intellectual property rights. (c) Licensee Products. Licensee understands and agrees that Licensee remains responsible for using its independent analysis, evaluation, and judgment in designing Licensee Products and systems and has full and exclusive responsibility to assure the safety of its products and compliance of its products (and of all Microchip Products used in or for such Licensee Products) with applicable laws and requirements. 5. Confidentiality. (a) Licensee agrees that the Software, underlying inventions, algorithms, know-how, and ideas relating to the Software, and any other non-public business or technical information disclosed by Microchip to Licensee are confidential and proprietary information, including information derived therefrom, belonging to Microchip and its licensors (collectively, \"Confidential Information\"). Licensee will use Confidential Information only to exercise its rights and perform its obligations under this Agreement and will take all reasonable measures to protect the secrecy of and avoid unauthorized access, disclosure, and use of Confidential Information. Such measures include, but are not limited to, the highest degree of care that it uses to protect its own information of a similar nature, but not less than reasonable care. Licensee will only disclose Confidential Information to its employees, subcontractors, consultants, auditors and representatives (collectively \"Representatives\") who have a need to know such information and who have use and confidentiality obligations to Licensee at least as restrictive as those set forth in this Agreement. Licensee is responsible for disclosure or misuse of Confidential Information by its Representatives. Use of Confidential Information for personal gain, for the benefit of a third party or to compete with Microchip, whether directly or indirectly, is a breach of this Agreement. Licensee will notify Microchip in writing of any actual or suspected misuse, misappropriation, or unauthorized disclosure of Confidential Information that comes to Licensee's attention. Confidential Information will not include information that: (i) is or becomes publicly available without breach of this Agreement; (ii) is known or becomes known to Licensee from a source other than Microchip without restriction and without breach of this Agreement or violation of Microchip's rights, as demonstrated by credible evidence in existence at the time of disclosure; (iii) is independently developed by Licensee without use of or reference to the Confidential Information, as demonstrated by credible evidence in existence at the time of independent development; or (iv) is disclosed generally to third parties by Microchip without restrictions similar to those contained in this Agreement. Licensee may disclose Confidential Information to the extent required under law, rule, or regulation (including those of any national securities exchange), by subpoena, civil investigative demand, or similar process, or by a court or administrative agency (each a \"Requirement\"'), provided, that to the extent permitted by applicable law, Licensee will provide prompt notice of such Requirement to Microchip to enable Microchip to seek a protective order or otherwise prevent or restrict such disclosure. (b) Return of Materials. Upon Microchip's request and direction, Licensee will promptly return or destroy the Confidential Information, including any physical information or materials provided to Licensee (together with any copies, excerpts, syntheses, CD ROMS, diskettes, etc.), and, in the case of information derived therefrom, provide written certification that all the Confidential Information has been expunged from any such materials or that all such materials have been destroyed. Further, if Licensee or its affiliates become competitors of Microchip, and Microchip notifies Licensee in writing of its status as a competitor in a given market, then Licensee will promptly engage in the return and certification process described above in this Section 5(b). 6. Ownership and Retention of Rights. All rights, title, and interest (including all intellectual property rights) in and to the Software, including any derivative works of the Software and any incremental modifications to the Software whether made by or for Licensee or Microchip (collectively, \"Microchip Property\"), are and will remain the sole and exclusive property of Microchip, whether such Microchip Property is separate or combined with any other products. Licensee, on behalf of itself and its affiliates, agrees to, and does hereby, assign to Microchip or its designee all right, title and interest (including all intellectual property rights) in and to derivative works of and any incremental modifications to the Software. Licensee will take (and will cause its affiliates, their subcontractors, and all related individuals to take) all action as may be reasonably necessary, proper or advisable to perfect and secure the ownership, licenses, intellectual property and other rights of or to Microchip as set forth in this Agreement. All rights not expressly granted under this Agreement are reserved to Microchip and its licensors and suppliers, and there are no implied rights. Licensee retains all right, title, and interest in and to any technology independently developed by Licensee not derived, directly or indirectly, from the Microchip Property or any other item of tangible property provided to Licensee by Microchip hereunder. 7. Termination. This Agreement will start once accepted by Licensee and continue unless and until terminated as provided in this Agreement. This Agreement automatically terminates immediately if Licensee violates the restrictions set forth in Sections 1, 2 or 4(a). Microchip may terminate this Agreement immediately upon notice if (a) Licensee or its affiliates become competitors of Microchip, or (b) Licensee breaches any other term of this Agreement and does not cure such breach within 30 days after receipt of written notice of such breach from Microchip. Upon termination of this Agreement, (i) the license grants in Sections 1 and 2(b) terminate, and (ii) Licensee will return to Microchip or destroy (and certify the destruction of) all Microchip Property and Confidential Information in its possession or under its control, and all copies thereof. The following sections survive termination of this Agreement: 3, 4, 5, 6, 7, 8, 9, 10, 11 and 12. 8. Dangerous Applications. The Software is not fault-tolerant and is not designed, manufactured, or intended for use in hazardous environments requiring failsafe performance (\"Dangerous Applications\"). Dangerous Applications include the operation of nuclear facilities, aircraft navigation, aircraft communication systems, air traffic control, direct life support machines, weapons systems, or any environment or system in which the failure of the Software could lead directly or indirectly to death, personal injury, or severe physical or environmental damage. Microchip specifically disclaims (a) any express or implied warranty of fitness for use of the Software in Dangerous Applications; and (b) any and all liability for loss, damages and claims resulting from the use of the Software in Dangerous Applications. 9. EU Consumers � Applicable Terms. WHERE LICENSEE IS A CONSUMER LOCATED IN EUROPE, THE FOLLOWING PROVISIONS APPLY INSTEAD OF SECTIONS 9 AND 10 BELOW: Microchip and its licensors will not be liable (a) for any loss suffered by Licensee in connection with the Software where such loss was not reasonably foreseeable when the Software was first downloaded by Licensee, even if such loss was the result of negligence or the failure of Microchip and its licensors to comply with this Agreement; or (b) irrespective of the basis of claim, for any loss of revenue, profit or other business or economic loss suffered. Some Software is made available to Licensee free of charge, and Licensee may at any time download further copies without charge to replace the Software initially downloaded and others may require a fee to be downloaded, or to download any further copies. In all circumstances, to the extent liability may lawfully be limited or excluded, the cumulative liability of Microchip and its licensors will not exceed USD$1,000 (or equivalent sum in the currency of the country in which Licensee resides). However, none of the foregoing limits or excludes any liability for death or personal injury arising from negligence, or for fraud, fraudulent misrepresentation or any other cause that by law cannot be excluded and limited. 10. Warranty Disclaimers. EXCEPT FOR CONSUMERS TO WHOM SECTION 8 APPLIES, THE SOFTWARE IS LICENSED ON AN \"AS-IS\" BASIS. MICROCHIP MAKES NO WARRANTIES OF ANY KIND WITH RESPECT TO THE SOFTWARE, WHETHER EXPRESS, IMPLIED, STAUTORY OR OTHERWISE, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR NON-INFRINGEMENT AND ANY WARRANTIES THAT MAY ARISE FROM USAGE OF TRADE OR COURSE OF DEALING. MICROCHIP AND ITS LICENSORS HAVE NO OBLIGATION TO CORRECT ANY DEFECTS IN THE SOFTWARE. TECHNICAL ASSISTANCE, IF PROVIDED, WILL NOT EXPAND THESE WARRANTIES. IF CUSTOMER IS A CONSUMER, THE ABOVE WILL NOT ACT TO EXCLUDE YOUR STATUTORY RIGHTS. 11. Limited Liability. EXCEPT FOR CONSUMERS TO WHOM SECTION 8 APPLIES, IN NO EVENT WILL MICROCHIP BE LIABLE, WHETHER IN CONTRACT, WARRANTY, REPRESENTATION, TORT, STRICT LIABILITY, INDEMNITY, CONTRIBUTION OR OTHERWISE, FOR ANY INDIRECT, SPECIAL, PUNITIVE, EXEMPLARY, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER, HOWEVER CAUSED, OR ANY LOSS OF PRODUCTION, COST OF PROCUREMENT OF SUBSTITUTE PRODUCTS OR SERVICES, ANY LOSS OF PROFITS, LOSS OF BUSINESS, LOSS OF USE OR LOSS OF DATA, OR INTERRUPTION OF BUSINESS ARISING OUT OF THIS AGREEMENT, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS, AND NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED REMEDY. MICROCHIP'S TOTAL AGGREGATE LIABILITY UNDER THIS AGREEMENT WILL NOT EXCEED USD$1,000. 12. General. (a) This Agreement will be governed by and construed in accordance with the laws of the State of Arizona and the United States, without regard to conflicts of law provisions. The parties hereby irrevocably consent to the exclusive personal jurisdiction and venue of the state and federal courts in Maricopa County, Arizona for any dispute relating to this Agreement. WHERE LICENSEE IS A CONSUMER LOCATED IN EUROPE, this Agreement is subject to the laws of the country in which the Software is downloaded, and, to the extent so mandated by such laws, subject to the jurisdiction of the courts of that country. The parties expressly disclaim the applicability of the United Nations Convention on Contracts for the International Sale of Goods in connection with this Agreement. (b) Unless the parties have a mutually executed agreement relating to the licensing of this Software by Microchip to Licensee (\"Signed Agreement\"), this Agreement constitutes the entire agreement between the parties with respect to the Software, and supersedes and replaces prior or contemporaneous written or verbal agreements or communications between the parties regarding the Software, including any purchase orders. If the parties have a Signed Agreement, this Agreement does not supersede or replace that Signed Agreement. This Agreement will not be modified except by a written agreement signed by an authorized representative of Microchip. If any provision of this Agreement is held by a court of competent jurisdiction to be illegal, invalid, or unenforceable, that provision will be limited or eliminated to the minimum extent necessary so that this Agreement will otherwise remain in full force and effect and enforceable. No waiver of any breach of any provision of this Agreement constitutes a waiver of any prior, concurrent, or subsequent breach of the same or any other provisions of this Agreement, and no waiver will be effective unless made in writing and signed by an authorized representative of the waiving party. (c) Licensee agrees to comply with all import and export laws and restrictions and regulations of the Department of Commerce or other United States or foreign agency or authority. (d) This Agreement will bind and inure to the benefit of each party's permitted successors and assigns. Licensee may not assign this Agreement in whole or in part, whether by law or otherwise, without Microchip's prior written consent. Any merger, consolidation, amalgamation, reorganization, transfer of all or substantially all assets or other change in control or majority ownership (\"Change of Control\") is considered an assignment for the purpose of this Section. Any attempt to assign this Agreement without such consent will be null and void. However, Microchip may assign this Agreement to an affiliate, or to another entity in the event of a Change of Control. (e) Licensee acknowledges its breach of any confidentiality or proprietary rights provision of this Agreement would cause Microchip irreparable damage, for which the award of damages would not be an adequate remedy. Licensee, therefore, agrees if Microchip alleges that Licensee has breached or violated any such provisions then Microchip may seek equitable relief, in addition to all other remedies at law or in equity. (f) Authorized representatives of Microchip shall have the right to reasonably inspect Licensee's premises and to audit Licensee's records and inventory of Licensee Products, whether located on Licensee's premises or elsewhere at any time, announced or unannounced, and in its sole and absolute discretion, in order to ensure Licensee's adherence to the terms of this Agreement. (g) Consistent with 48 C.F.R. �12.212 or 48 C.F.R. �227.7202-1 through 227.7202-4, as applicable, the Software is being licensed to U.S. Government end users (i) only as Commercial Items, and (ii) with only those rights as are granted to all other end users pursuant to the terms and conditions of the applicable Microchip licenses. To the extent the Software (or a portion thereof) qualifies as �technical data' as such term is defined in 48 C.F.R. �252.227-7015(a)(5), then its use, duplication, or disclosure by the U.S. Government is subject to the restrictions set forth in subparagraphs (a) through (e) of the Rights in Technical Data clause at 48 C.F.R. �252.227-7015. Contractor/manufacturer is Microchip Technology Inc., 2355 W. Chandler Blvd., Chandler, AZ 85224-6199. Questions about this Agreement should be sent to: Microchip Technology Inc., 2355 W. Chandler Blvd., Chandler, AZ 85224-6199 USA. ATTN: Marketing. v.3.3.2021 . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/mplab_harmony_license.html", - "relUrl": "/mplab_harmony_license.html" - },"18": { - "doc": "PMSM FOC using Sliding Mode Observer", - "title": "PMSM FOC using Sliding Mode Observer", - "content": "This example application shows how to control the Permanent Magnet Synchronous Motor (PMSM) with Sliding Mode Observer based Field Oriented Control (FOC) on a SAME70 Micro-controller. ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_foc_smo_sam_e70/readme.html#pmsm-foc-using-sliding-mode-observer", - "relUrl": "/apps/pmsm_foc_smo_sam_e70/readme.html#pmsm-foc-using-sliding-mode-observer" - },"19": { - "doc": "PMSM FOC using Sliding Mode Observer", - "title": "Description", - "content": "Permanent Magnet Synchronous Motor (PMSM) is controlled using Field Oriented Control (FOC). Rotor position and speed is determined using Sliding Mode Observer (SMO) technique. Motor start/stop operation is controlled by the switch and motor speed can be changed by the on-board potentiometer. Waveforms and variables can be monitored runtime using X2CScope. Key features enabled in this project are: . | Dual shunt current measurement | Speed control loop | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_foc_smo_sam_e70/readme.html#description", - "relUrl": "/apps/pmsm_foc_smo_sam_e70/readme.html#description" - },"20": { - "doc": "PMSM FOC using Sliding Mode Observer", - "title": "MCC Project Configurations", - "content": ". | AFEC Peripheral: | . The AFEC (ADC) is used to measure analog quantities. Four channels are used to measure the Phase Current A, the Phase Current B, the DC Bus Voltage and the Potentiometer. Conversion is triggered at the PWM (zero match + offset of the switch delay) . | PWM Peripheral: | . This peripheral is used to generated three phase synchronous PWM waveforms. Fault functionality is also enabled to switch off the output waveforms asynchronously . | UART Peripheral: | . The UART is used for X2CScope communication to observe graphs and variable values in run time . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_foc_smo_sam_e70/readme.html#mcc-project-configurations", - "relUrl": "/apps/pmsm_foc_smo_sam_e70/readme.html#mcc-project-configurations" - },"21": { - "doc": "PMSM FOC using Sliding Mode Observer", - "title": "Control Algorithm", - "content": "This section briefly explains the FOC control algorithm, software design and implementation. Field Oriented Control is the technique used to achieve the decoupled control of torque and flux. This is done by transforming the stator current quantities (phase currents) from stationary reference frame to torque and flux producing currents components in rotating reference frame using mathematical transformations. The Field Oriented Control is done as follows: . | Measure the motor phase currents. | Transform them into the two phase system (a, b) using the Clarke transformation. | Calculate the rotor position angle. | Transform stator currents into the d,q-coordinate system using the Park transformation. | The stator current torque (iq) and flux (id) producing components are controlled separately by the controllers. | The output stator voltage space vector is transformed back from the d,q-coordinate system into the two phase system fixed with the stator by the Inverse Park transformation. | Using the space vector modulation, the three-phase output voltage is generated. | . Sliding Mode Observer (SMO) : . Sliding Mode Observer is used to estimate the rotor position and thus speed. The electrical rotor position and speed is calculated using the Sliding Mode Observer. The main disadvantage of SMO Observer is its inability to estimate the rotor angle at lower rotor speeds because of very low value of back EMF. Therefore, the FOC algorithm also integrates the ramp-up profile for motor start. The reference speed is incremented linearly using a open loop phase voltage control until the required minimum reference speed for the SMO observer is reached. The Sliding Mode Observer ( SMO ) is based on the principle of sliding mode control. It generates a sliding motion on the error between the plant output and the output of the observer such it produces a set of states that are precisely drives the estimated output to the actual output of the plant. The sliding mode observer consists of a model based current observer followed by a back EMF Observer. The observed back EMF is filtered and then used to extract the position information from it. The following figure shows a typical Sliding Mode Observer: . The current and back EMF observer is modeled in discrete time by following equations: . Current Observer: . Back EMF Observer: . The following block diagram shows the software realization of the FOC algorithm. ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_foc_smo_sam_e70/readme.html#control-algorithm", - "relUrl": "/apps/pmsm_foc_smo_sam_e70/readme.html#control-algorithm" - },"22": { - "doc": "PMSM FOC using Sliding Mode Observer", - "title": "Software Design", - "content": "The following figure shows the various state machines of the the motor control software. In the software, the PMSM speed control task is realized by a state machine as shown in the previous figure. The following sections briefly describes the various states in the PMSM speed control task: . | Initialize: | . In this state, following tasks are performed: Initialization and configuration of NVIC, AFEC, PWM motor control peripherals for generation of periodic ADC triggers and ADC conversion interrupt Current Offset measurement and calibration Initialize PI controller parameters for speed and current control loops . | Start: | . In this state, the motor control state variables are reset and periodic ADC conversion interrupt is enabled. Control waits for the switch press. | Run: | . In this state, the motor starts spinning. The following flow chart and the timing diagram shows the tasks performed in run state: . In run state, two threads are executed- Main task thread and ADC Interrupt task thread. The current control and speed control is carried out in the ADC interrupt task thread. The main task thread monitors the external switches and maintains the state machine. Therefore, the ADC interrupt cycle indicates the current and speed control frequency. As pointed out earlier, the SMO is unable to estimate the rotor position information at the start-up phase when the speed is very low. This necessitates the motor control algorithm to integrate an open-loop control mechanism to linearly ramp the motor speed to the required minimum speed before switching over to closed loop control. Therefore, the motor control state can further be classified into three sub-states - Field Alignment, Open-loop Control and Close-loop Control. Field Alignment: In this mode, a limited value of DC current is applied to the U phase of PMSM motor in order to align the rotor magnetic field with the U-phase of the motor. The time for which DC current has to be applied to achieve the field alignment depends on the time constant of the PMSM motor drive. Open Loop Control: In this mode, the speed of the PMSM motor is gradually ramped up using an open loop control. The speed is ramped up linearly to a minimum value required for the sensor-less SMO observer to estimate the speed of the PMSM motor with required accuracy. Close Loop Control: In this mode, the speed can be regulated using closed loop SMO based sensor-less FOC algorithm. | Stop: In this state, the PWM channels are disabled thereby stopping the motor. The periodic ADC trigger and conversion interrupt is disabled. | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_foc_smo_sam_e70/readme.html#software-design", - "relUrl": "/apps/pmsm_foc_smo_sam_e70/readme.html#software-design" - },"23": { - "doc": "PMSM FOC using Sliding Mode Observer", - "title": "Software Configurations", - "content": ". | The PWM controller frequency ( in Hz ) can be configured by setting the following macro in userparams.h file. This frequency should be same as the frequency configured in the PWM peripheral in the MHC. | . | Macro | Description | . | PWM_FREQUENCY | Current controller and PWM frequency in Hz | . |   |   | . | Setting motor specific -parameter: Set the motor following motor parameters in userparams.h file. | . | Macro | Description | Unit | . | MOTOR_PER_PHASE_RESISTANCE | Motor per phase resistance | ohm | . | MOTOR_PER_PHASE_INDUCTANCE | Motor per phase inductance | H | . | MOTOR_BACK_EMF_CONSTANT_Vpeak_Line_Line_KRPM_MECH | Back EMF constant | Vpk(L-L)/KRPM | . | NOPOLESPAIRS | Number of pole pairs |   | . | NOMINAL_SPEED_RPM | Rated mechanical speed of the motor | RPM | . |   |   |   | . | Setting PI Controller parameters: Depending on the type of motor used, and the corresponding application PI controller parameters should to be updated in userparams.h file. | . Parameters for speed Control loop: . | Macro | Description | . | SPEEDCNTR_PTERM | Proportional gain of speed control loop | . | SPEEDCNTR_ITERM | Integral gain of speed control loop | . | SPEEDCNTR_CTERM | Anti-windup term of speed control loop | . | SPEEDCNTR_OUTMAX | Maximum controller output of speed control loop | . |   |   | . Parameters for Id current loop: . | Macro | Description | . | D_CURRCNTR_PTERM | Proportional gain of Id current control loop | . | D_CURRCNTR_ITERM | Integral gain of Id current control loop | . | D_CURRCNTR_CTERM | Anti-windup term of Id current control loop | . | D_CURRCNTR_OUTMAX | Maximum controller output of Id current control loop | . |   |   | . Parameters for Iq current loop: . | Macro | Description | . | Q_CURRCNTR_PTERM | Proportional gain of Iq current control loop | . | Q_CURRCNTR_ITERM | Integral gain of Iq current control loop | . | Q_CURRCNTR_CTERM | Anti-windup term of Iq current control loop | . | Q_CURRCNTR_OUTMAX | Maximum controller output of Iq current control loop | . |   |   | . | Debugging Features: Open loop functioning is useful for debugging when using new motor. This feature can be enabled by setting the following macros in userparams.h file. | . Parameters for Iq current loop: . | Macro | Description | . | OPEN_LOOP_FUNCTIONING | Open loop enable switch (0 - Disable, 1 - Enable ) | . | Q_CURRENT_REF_OPENLOOP | Startup current in open loop | . |   |   | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_foc_smo_sam_e70/readme.html#software-configurations", - "relUrl": "/apps/pmsm_foc_smo_sam_e70/readme.html#software-configurations" - },"24": { - "doc": "PMSM FOC using Sliding Mode Observer", - "title": "Development Kits", - "content": "MCLV2 with ATSAME70 PIM . Downloading and building the application . To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions. Path of the application within the repository is apps/pmsm_foc_smo_sam_e70 . To build the application, refer to the following table and open the project using its IDE. | Project Name | Description | Hardware Setup Guide | . | mclv2_sam_e70_pim.X | MPLABX project for MCLV2 board with ATSAME70 PIM | Hardware Setup and Running The Application on MCLV2 with ATSAME70 PIM | . |   |   |   | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_foc_smo_sam_e70/readme.html#development-kits", - "relUrl": "/apps/pmsm_foc_smo_sam_e70/readme.html#development-kits" - },"25": { - "doc": "PMSM FOC using Sliding Mode Observer", - "title": "PMSM FOC using Sliding Mode Observer", - "content": ". ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_foc_smo_sam_e70/readme.html", - "relUrl": "/apps/pmsm_foc_smo_sam_e70/readme.html" - },"26": { - "doc": "PFC with PMSM FOC using PLL Estimator", - "title": "Power Factor Correction with PMSM FOC using PLL Estimator", - "content": "This example application shows how to control the Permanent Magnet Synchronous Motor (PMSM) with PLL Estimator based Field Oriented Control (FOC) along with Power Factor Correction (PFC)on a SAME70 Micro-controller. ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#power-factor-correction-with-pmsm-foc-using-pll-estimator", - "relUrl": "/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#power-factor-correction-with-pmsm-foc-using-pll-estimator" - },"27": { - "doc": "PFC with PMSM FOC using PLL Estimator", - "title": "Description", - "content": "Power Factor Correction ( PFC ) shapes the input current drawn from the AC mains to be in synchronization with the input AC voltage. This project uses Boost-Converter topology to carry out the Power Factor Correction. Permanent Magnet Synchronous Motor (PMSM) is controlled using Field Oriented Control (FOC). Rotor position and speed is determined using PLL estimator technique. Motor start/stop operation is controlled by the switch and motor speed can be changed by the on-board potentiometer. Waveforms and variables can be monitored runtime using X2CScope. Key features enabled in this project are: . | Power factor correction | Dual shunt current measurement | Speed control loop | Field weakening | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#description", - "relUrl": "/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#description" - },"28": { - "doc": "PFC with PMSM FOC using PLL Estimator", - "title": "MCC Project Configurations", - "content": ". | AFEC Peripheral: | . The AFEC0 peripheral is used to measure analog quantities for motor control operation. Four channels are used to measure the Phase Current A, the Phase Current B, the DC Bus Voltage and the Potentiometer. Conversion is triggered at the PWM (zero match + offset of the switch delay) . The AFEC1 peripheral is used to measure analog quantities for power factor correction. Three channels are used to measure the input rectified voltage, input rectified current, and the output DC link inverter voltage. Conversion is triggered at the PWM period match . | PWM Peripheral: | . The PWM0 peripheral is used to generated three phase synchronous PWM waveforms. Fault functionality is also enabled to switch off the output waveforms asynchronously . The PWM1 peripheral is used to generate the PWM waveform for the boost converter switch for current waveform shaping . | UART Peripheral: | . The UART is used for X2CScope communication to observe graphs and variable values in run time . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#mcc-project-configurations", - "relUrl": "/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#mcc-project-configurations" - },"29": { - "doc": "PFC with PMSM FOC using PLL Estimator", - "title": "Control Algorithm", - "content": "The Power Factor Correction is a technique of increasing the power factor of the input AC power supply, thereby providing following advantages: . | Low line harmonics. | Reduced input current. | Reduced kVA requirement. | Improved line efficiency, and improved electromagnetic compatibility. | . The Power Factor Correction techniques can be classified as - Passive and Active. The Passive Power Factor Correction uses passive components, while the active Power Factor Correction Technique uses power electronic switches to carry out Power Factor Correction. Following figure shows the various Power Factor Correction techniques classification: . This project uses Boost topology for Power Factor Correction. A boost converter is placed between the rectifier and output inverter stage to synchronize input AC current to the input AC voltage. For details, refer to application note AN1106. The block diagram of a typical boost converter topology based Power Factor Correction is shown below. Block Diagram: . The power factor correction is implemented in following steps: . | Measure the rectifier stage rectified AC voltage and rectified AC current, and output inverter stage DC bus voltage via high speed ADC channels. | Regulate the DC bus voltage using the Voltage Error Compensator. | Determine the reference input for Current Error Compensator based on the output of Voltage Error Compensator and Voltage Feed-Forward Compensator. | Track the rectified reference AC current using a Current Error Compensator. | . Current Error Compensator: . The inner loop in the control block forms the current loop. The input to the current loop is the reference current signal IACREF and the actual inductor current IAC. The current error compensator is designed to produce a control output such that the inductor current IAC follows the reference current IACREF. The current loop should run at a much faster rate when compared to the voltage loop. The bandwidth of the current compensator should be higher for correctly tracking the semi-sinusoidal waveform at twice the input frequency. The current controller GI produces a duty cycle value after appropriate scaling to drive the gate of the boost converter MOSFET. Voltage Error Compensator: . The outer loop in the control block forms the voltage loop. The input to the voltage loop is the reference DC voltage VDCREF and the actual sensed output DC voltage VDC. The voltage error compensator is designed to produce a control output such that the DC bus voltage VDC remains constant at the reference value VDCREF regardless of variations in the load current IO and the supply voltage VAC. The voltage controller GV produces a control signal, which determines the reference current IACREF for the inner current loop. The output voltage is controlled by the voltage error compensator. When the input voltage increases, the product of VAC and VPI increases, and thereby increasing the programming signal. When this signal is divided by the square of the average voltage signal, it results in the current reference signal being reduced proportionally. The outcome is that the current is reduced proportionally to the increase in voltage, thereby keeping the input power constant. This ensures that the reference control output IACREF from the voltage compensator is maximum such that the rated output power is delivered at minimum input voltage. Voltage Feed-Forward Compensator: . If the voltage decreases, the product (VAC · VPI), which determines IACREF, also proportionally decreases. However, to maintain a constant output power at reduced input voltage, the term IACREF should proportionally increase. The purpose of having an input voltage feed-forward, is to maintain the output power constant as determined by the load regardless of variations in the input line voltage. This compensator implemented digitally by calculating the average value of the input line voltage, squaring this average value and using the result as a divider for the input reference current, which is fed to the current error compensator. FOC with PLL estimator : . This estimator uses PLL structure to estimate the rotor position and thus speed. Its operating principle is based on the fact that the d-component of the Back Electromotive Force (BEMF) must be equal to zero at a steady state functioning mode. It can not estimate the rotor angle at lower rotor speeds because of very low back EMF. So, open loop startup is used till required minimum speed is achieved. The following block diagram shows the software realization of the FOC algorithm. ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#control-algorithm", - "relUrl": "/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#control-algorithm" - },"30": { - "doc": "PFC with PMSM FOC using PLL Estimator", - "title": "PFC Software Design", - "content": "The following section describes the software flow diagram for the power factor correction application project. The power factor correction algorithm in this example project is realized by following state machines. | PFC Init State: In this state following tasks are performed: Initialization and configuration of NVIC, AFEC, PWM peripherals for generation of periodic ADC triggers and ADC conversion interrupt. Calibration of input rectified AC current sense amplifiers. Initialization of reference DC voltage and reference rectified AC current PI controllers used for Power Factor Correction. | PFC Start state: In this state following tasks are performed: Start PWM peripherals timer to trigger ADC conversion interrupt. | PFC Running State: In this state, the power factor correction ISR is executed. | . | PFC Stop State: In this state, the power factor correction is disabled. | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#pfc-software-design", - "relUrl": "/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#pfc-software-design" - },"31": { - "doc": "PFC with PMSM FOC using PLL Estimator", - "title": "Software Configuration:", - "content": "The following section describes user specific parameters used the the project. | Setting the PFC boost converter stage frequency: The boost converter stage PWM frequency ( in Hz ) can be configured by setting the following macro in userparams.h file. This period timer ticks should be configured properly for PWM peripheral in the MHC to get the desired frequency as shown below: | . | Macro | Description | . | PFC_PWM_FREQUENCY | Boost converter stage PWM frequency | . |   |   | . | Setting PI Controller parameters of Boost Converter Controller: | . The voltage and current controllers used in the PFC algorithm has to be tuned to get the optimal control. Parameters for reference DC bus voltage PI Controller: . | Macro | Description | . | PFC_VOLTAGE_PTERM | Proportional gain of voltage control loop | . | PFC_VOLTAGE_ITERM | Integral gain of voltage control loop | . | PFC_VOLTAGE_CTERM | Anti-windup term of voltage control loop | . | PFC_VOLTAGE_OUTMAX | Maximum controller output of voltage control loop | . |   |   | . Parameters for reference rectified AC current PI Controller: . | Macro | Description | . | PFC_CURRCNTR_PTERM | Proportional gain of input current control loop | . | PFC_CURRCNTR_ITERM | Integral gain of input current control loop | . | PFC_CURRCNTR_CTERM | Anti-windup term of input current control loop | . | PFC_CURRCNTR_OUTMAX | Maximum controller output of input current control loop | . |   |   | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#software-configuration", - "relUrl": "/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#software-configuration" - },"32": { - "doc": "PFC with PMSM FOC using PLL Estimator", - "title": "Development Kits", - "content": "MCHV3 with ATSAME70 PIM . Downloading and building the application . To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions. Path of the application within the repository is apps/pmsm_pfc_foc_pll_estimator_sam_e70 . To build the application, refer to the following table and open the project using its IDE. | Project Name | Description | Hardware Setup Guide | . | mchv3_sam_e70_pim.X | MPLABX project for MCHV3 board with ATSAME70 PIM | Hardware Setup and Running The Application on MCHV3 with ATSAME70 PIM | . |   |   |   | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#development-kits", - "relUrl": "/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html#development-kits" - },"33": { - "doc": "PFC with PMSM FOC using PLL Estimator", - "title": "PFC with PMSM FOC using PLL Estimator", - "content": ". ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html", - "relUrl": "/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html" - },"34": { - "doc": "PMSM FOC using Quadrature Encoder", - "title": "PMSM FOC using Quadrature Encoder", - "content": "This example application shows how to control the Permanent Magnet Synchronous Motor (PMSM) with Quadrature Encoder based Field Oriented Control (FOC) on a SAME70 Micro-controller. ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#pmsm-foc-using-quadrature-encoder", - "relUrl": "/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#pmsm-foc-using-quadrature-encoder" - },"35": { - "doc": "PMSM FOC using Quadrature Encoder", - "title": "Description", - "content": "Permanent Magnet Synchronous Motor (PMSM) is controlled using Field Oriented Control (FOC). Rotor position and speed is determined using quadrature encoder sensor. Motor start/stop operation is controlled by the switch and motor speed can be changed by the on-board potentiometer. Waveforms and variables can be monitored runtime using X2CScope. Key features enabled in this project are: . | Dual shunt current measurement | Speed control loop | Field weakening | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#description", - "relUrl": "/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#description" - },"36": { - "doc": "PMSM FOC using Quadrature Encoder", - "title": "MCC Project Configurations", - "content": ". | PMSM_FOC: . This component configures FOC algorithm parameters, motor parameters and motor control board parameters. It connects to underlying peripheral libraries AFEC and PWM. This components auto configures ADC channels and PWM channels as per PMSM_FOC component configurations. | AFEC Peripheral: . The AFEC is used to measure analog quantities. Four channels are used to measure the Phase Current U, the Phase Current V, the DC Bus Voltage and the Potentiometer. Conversion is triggered at the PWM (zero match + offset of the switch delay) . | PWM Peripheral: . This peripheral is used to generated three phase synchronous PWM waveforms. Fault functionality is also enabled to switch off the output waveforms asynchronously. | TC QDEC Peripheral: . TC peripheral is configured in QDEC mode. It is used to decode the rotor position and speed from quadrature encoder signals. | X2CScope: . This component adds X2C scope protocol code. This uses UART to communicate to the host PC. X2CScope allows user to monitor variables runtime. | UART Peripheral: . The UART is used for X2CScope communication to observe graphs and variable values in run time . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#mcc-project-configurations", - "relUrl": "/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#mcc-project-configurations" - },"37": { - "doc": "PMSM FOC using Quadrature Encoder", - "title": "Project Details", - "content": "This project has been created using Harmony QSpin Tool. For details refer Harmony QSpin . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#project-details", - "relUrl": "/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#project-details" - },"38": { - "doc": "PMSM FOC using Quadrature Encoder", - "title": "Development Kits", - "content": "MCLV2 with ATSAME70 PIM . Downloading and building the application . To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions. Path of the application within the repository is apps/mcp_pmsm_foc_encoder_sam_e70 . To build the application, refer to the following table and open the project using its IDE. | Project Name | Description | Hardware Setup Guide | . | mclv2_sam_e70_pim.X | MPLABX project for MCLV2 board with ATSAME70 PIM | Hardware Setup and Running The Application on MCLV2 with ATSAME70 PIM | . MCHV3 with ATSAME70 PIM . Downloading and building the application . To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions. Path of the application within the repository is apps/mcp_pmsm_foc_encoder_sam_e70 . To build the application, refer to the following table and open the project using its IDE. | Project Name | Description | Hardware Setup Guide | . | mchv3_sam_e70_pim.X | MPLABX project for MCHV3 board with ATSAME70 PIM | Hardware Setup and Running The Application on MCHV3 with ATSAME70 PIM | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#development-kits", - "relUrl": "/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html#development-kits" - },"39": { - "doc": "PMSM FOC using Quadrature Encoder", - "title": "PMSM FOC using Quadrature Encoder", - "content": ". ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html", - "relUrl": "/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html" - },"40": { - "doc": "PMSM FOC using PLL Estimator", - "title": "PMSM FOC using PLL Estimator", - "content": "This example application shows how to control the Permanent Magnet Synchronous Motor (PMSM) with PLL Estimator based Field Oriented Control (FOC) on a SAME70 Micro-controller. ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#pmsm-foc-using-pll-estimator", - "relUrl": "/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#pmsm-foc-using-pll-estimator" - },"41": { - "doc": "PMSM FOC using PLL Estimator", - "title": "Description", - "content": "Permanent Magnet Synchronous Motor (PMSM) is controlled using Field Oriented Control (FOC). Rotor position and speed is determined using PLL estimator technique. Motor start/stop operation is controlled by the switch and motor speed can be changed by the on-board potentiometer. Waveforms and variables can be monitored runtime using X2CScope. Key features enabled in this project are: . | Dual shunt current measurement | Speed control loop | Field weakening | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#description", - "relUrl": "/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#description" - },"42": { - "doc": "PMSM FOC using PLL Estimator", - "title": "MCC Project Configurations", - "content": ". | AFEC Peripheral: . The AFEC is used to measure analog quantities. Four channels are used to measure the Phase Current U, the Phase Current V, the DC Bus Voltage and the Potentiometer. Conversion is triggered at the PWM (zero match + offset of the switch delay) . | PWM Peripheral: . This peripheral is used to generated three phase synchronous PWM waveforms. Fault functionality is also enabled to switch off the output waveforms asynchronously. | X2CScope: . This component adds X2C scope protocol code. This uses UART to communicate to the host PC. X2CScope allows user to monitor variables runtime. | UART Peripheral: . The UART is used for X2CScope communication to observe graphs and variable values in run time . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#mcc-project-configurations", - "relUrl": "/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#mcc-project-configurations" - },"43": { - "doc": "PMSM FOC using PLL Estimator", - "title": "Project Details", - "content": "This project has been created using Harmony QSpin Tool. For details refer Harmony QSpin . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#project-details", - "relUrl": "/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#project-details" - },"44": { - "doc": "PMSM FOC using PLL Estimator", - "title": "Development Kits", - "content": "MCLV2 with ATSAME70 PIM . Downloading and building the application . To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions. Path of the application within the repository is apps/mcp_pmsm_foc_pll_estimator_sam_e70 . To build the application, refer to the following table and open the project using its IDE. | Project Name | Description | Hardware Setup Guide | . | mclv2_sam_e70_pim.X | MPLABX project for MCLV2 board with ATSAME70 PIM | Hardware Setup and Running The Application on MCLV2 with ATSAME70 PIM | . MCHV3 with ATSAME70 PIM . Downloading and building the application . To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions. Path of the application within the repository is apps/mcp_pmsm_foc_pll_estimator_sam_e70 . To build the application, refer to the following table and open the project using its IDE. | Project Name | Description | Hardware Setup Guide | . | mchv3_sam_e70_pim.X | MPLABX project for MCHV3 board with ATSAME70 PIM | Hardware Setup and Running The Application on MCHV3 with ATSAME70 PIM | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#development-kits", - "relUrl": "/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html#development-kits" - },"45": { - "doc": "PMSM FOC using PLL Estimator", - "title": "PMSM FOC using PLL Estimator", - "content": ". ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html", - "relUrl": "/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html" - },"46": { - "doc": "Release notes", - "title": "Microchip MPLAB® Harmony 3 Release Notes", - "content": " ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/release_notes.html#microchip-mplab-harmony-3-release-notes", - "relUrl": "/release_notes.html#microchip-mplab-harmony-3-release-notes" - },"47": { - "doc": "Release notes", - "title": "Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family v3.4.0", - "content": "Applications . | Development Board | Number of Applications | . | dsPICDEM™ MCLV-2 Low Voltage Development Board | 3 | . | dsPICDEM™ MCHV-3 High Voltage Development Board | 3 | . New Features . | MISRA-C Compliance for motor control files | Deprecated static projects for PLL based sensorless FOC | Deprecated static projects for encoder based sensored FOC | . Known Issues . | same as v3.1.0 | . Required MPLAB Harmony v3 Modules . | motor_control v3.10.0 | x2c v1.4.0 | . Development Tools . | MPLAB X IDE v6.10 | MPLAB XC32 C/C++ Compiler v4.30 | MPLAB X IDE plug-ins: . | MPLAB Code Configurator (MCC) v5.3.7 | X2CScope v1.3.3. | . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v340", - "relUrl": "/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v340" - },"48": { - "doc": "Release notes", - "title": "Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family v3.3.0", - "content": "Applications . | Development Board | Number of Applications | . | dsPICDEM™ MCLV-2 Low Voltage Development Board | 5 | . | dsPICDEM™ MCHV-3 High Voltage Development Board | 5 | . New Features . | Added PLL based sensorless FOC for MCHV3 in Harmony QSpin | Added Encoder based sensored FOC for MCHV3 in Harmony QSpin | . Known Issues . | same as v3.1.0 | . Required MPLAB Harmony v3 Modules . | bsp v3.14.0 | motor_control v3.9.0 | x2c v1.3.0 | mcc H3 Library v1.1.5 | . Development Tools . | MPLAB X IDE v6.00 | MPLAB XC32 C/C++ Compiler v4.10 | MPLAB X IDE plug-ins: . | MPLAB Code Configurator (MCC) v5.1.17 | X2CScope v1.3.3. | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v330", - "relUrl": "/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v330" - },"49": { - "doc": "Release notes", - "title": "Hardware", - "content": "| For MCHV3 board programming and debugging, use High Voltage Motor Control Isolated Debugger Card | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/release_notes.html#hardware", - "relUrl": "/release_notes.html#hardware" - },"50": { - "doc": "Release notes", - "title": "Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family v3.2.0", - "content": "Applications . | Development Board | Number of Applications | . | dsPICDEM™ MCLV-2 Low Voltage Development Board | 5 | . | dsPICDEM™ MCHV-3 High Voltage Development Board | 3 | . New Features . | Added Motor Control Plant generated motor control firmware for PLL based sensorless FOC for MCLV2 | Added Motor Control Plant generated motor control firmware for Encoder based sensored FOC for MCLV2 | Migrated MHC generated code to MCC generated code | . Known Issues . | same as v3.1.0 | . Required MPLAB Harmony v3 Modules . | csp v3.11.0 | x2c v1.4.0 | bsp v3.11.1 | motor_control v3.8.0 | dev_packs v3.11.0 | mcc v1.1.0 | . Development Tools . | MPLAB X IDE v6.00 | MPLAB XC32 C/C++ Compiler v4.00 | MPLAB X IDE plug-ins: . | MPLAB Code Configurator (MCC) v5.1.2 | X2CScope v1.3.0. | . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v320", - "relUrl": "/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v320" - },"51": { - "doc": "Release notes", - "title": "Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family v3.1.0", - "content": "Applications . | Development Board | Number of Applications | . | dsPICDEM™ MCLV-2 Low Voltage Development Board | 3 | . | dsPICDEM™ MCHV-3 High Voltage Development Board | 3 | . New Features . None . Known Issues . | Isolated EDBG Card . | The Isolated EDBG Card may appear “grayed out” (disabled) under the list of tools in MPLABX v5.50. In order to resolve this issue, please go to Tools -> Options ->Embedded->Generic Settings and enable “Exclude device checks for kits” by selecting the check box. | . | If programming failure occurs with message “java.lang.RuntimeException:RDDI_DAP_OPERATION_FAILED”, then reset the Isolated EDBG Card’s configuration by Go to File -> Project Properties -> EDBG -> Reset | . | pmsm_foc_encoder_sam_e70_mchv3 application running on dsPICDEM MCHV-3 requires increasing bandwidth of the quadrature encoder signal filter to maintain signal integrity of quadrature sensor signals at higher motor speeds. Without these modifications, motor operation may fail at higher speeds. | Reduce the capacitance value of C25, C26 and C27 from 100pF to 10pF 50V NPO 0805 | . | . Required MPLAB Harmony v3 Modules . | csp v3.9.1 | x2c v1.1.4 | motor_control v3.7.0 | dev_packs v3.9.0 | mhc v3.8.0 | . Development Tools . | MPLAB X IDE v5.50 | MPLAB XC32 C/C++ Compiler v3.01 | MPLAB X IDE plug-ins: . | MPLAB Harmony Configurator (MHC) v3.6.4 | X2CScope v1.3.0. | . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v310", - "relUrl": "/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v310" - },"52": { - "doc": "Release notes", - "title": "Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family v3.0.0", - "content": "Applications . Applications migrated from motor_control repository to this application repository for SAME7x/S7x/V7x family. | Development Board | Number of Applications | . | dsPICDEM™ MCLV-2 Low Voltage Development Board | 3 | . | dsPICDEM™ MCHV-3 High Voltage Development Board | 3 | . Required MPLAB Harmony v3 Modules . | csp v3.8.3 | x2c v1.1.3 | motor_control v3.6.0 | dev_packs v3.8.0 | mhc v3.6.5 | . Known Issues . | Isolated EDBG Card . | The Isolated EDBG Card may appear “grayed out” (disabled) under the list of tools in MPLABX v5.45. In order to resolve this issue, please go to Tools -> Options ->Embedded->Generic Settings and enable “Exclude device checks for kits” by selecting the check box. | . | If programming failure occurs with message “java.lang.RuntimeException:RDDI_DAP_OPERATION_FAILED”, then reset the Isolated EDBG Card’s configuration by Go to File -> Project Properties -> EDBG -> Reset | . | pmsm_foc_encoder_sam_e70_mchv3 application running on dsPICDEM MCHV-3 requires increasing bandwidth of the quadrature encoder signal filter to maintain signal integrity of quadrature sensor signals at higher motor speeds. Without these modifications, motor operation may fail at higher speeds. | Reduce the capacitance value of C25, C26 and C27 from 100pF to 10pF 50V NPO 0805 | . | . Development Tools . | MPLAB X IDE v5.45 | MPLAB XC32 C/C++ Compiler v2.50 | MPLAB X IDE plug-ins: . | MPLAB Harmony Configurator (MHC) v3.6.2 | X2CScope v1.3.0. | . | . ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v300", - "relUrl": "/release_notes.html#microchip-mplab-harmony-3-motor-control-application-examples-for-sam-e7xs7xv7x-family-v300" - },"53": { - "doc": "Release notes", - "title": "Release notes", - "content": ". ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/release_notes.html", - "relUrl": "/release_notes.html" - },"54": { - "doc": "Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family", - "title": "Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family", - "content": "# Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family MPLAB Harmony 3 is an extension of the MPLAB® ecosystem for creating embedded firmware solutions for Microchip 32-bit SAM and PIC32 microcontroller and microprocessor devices. Refer to the following links for more information. - [Microchip 32-bit MCUs for Motor Control Applications](https://www.microchip.com/design-centers/motor-control-and-drive/control-products/32-bit-solutions) - [Microchip 32-bit MCUs](https://www.microchip.com/design-centers/32-bit) - [Microchip 32-bit MPUs](https://www.microchip.com/design-centers/32-bit-mpus) - [Microchip MPLAB X IDE](https://www.microchip.com/mplab/mplab-x-ide) - [Microchip MPLAB Harmony](https://www.microchip.com/mplab/mplab-harmony) - [Microchip MPLAB Harmony Pages](https://microchip-mplab-harmony.github.io/) This repository contains the MPLAB® Harmony 3 Motor Control application exmaples for SAME7x/S7x/V7x family. Users can use these examples as a reference for developing their own motor control applications. Refer to the following links for release notes and licensing information. - [Release Notes](/mc_apps_sam_e7x_s7x_v7x/release_notes.html) - [MPLAB Harmony License](/mc_apps_sam_e7x_s7x_v7x/mplab_harmony_license.html) ## Contents Summary | Folder | Description |------------|-----------------------------------------------------------| apps | Demonstration applications for Motor Control | docs | Contains documentation in html format for offline viewing (to be used only after cloning this repository onto a local machine). Use [github pages](https://microchip-mplab-harmony.github.io/mc_apps_sam_e7x_s7x_v7x/) of this repository for viewing it online. | ## Configurable Motor Control Examples (MCC with Harmony QSpin Motor Control) The following applications are provided to demonstrate the Harmony QSpin to generate the motor control firmware. | Name | Description|Control Board|Inverter Board|:-----|:-----------|:------------|:-------------| [PMSM FOC using PLL Estimator ](/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.html) | Sensorless Field Oriented Control of PMSM using PLL Estimator | [ATSAME70 Motor Control Plugin Module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203) | [dsPICDEM™ MCLV-2 Support](https://www.microchip.com/DevelopmentTools/ProductDetails/DM330021-2) [dsPICDEM™ MCHV-3 Support](https://www.microchip.com/developmenttools/ProductDetails/dm330023-3) | [PMSM FOC using Quadrature Encoder](/mc_apps_sam_e7x_s7x_v7x/apps/mcp_pmsm_foc_encoder_sam_e70/readme.html) | Sensored Field Oriented Control of PMSM using Quadrature Encoder |[ATSAME70 Motor Control Plugin Module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203)| [dsPICDEM™ MCLV-2 Support](https://www.microchip.com/DevelopmentTools/ProductDetails/DM330021-2) [dsPICDEM™ MCHV-3 Support](https://www.microchip.com/developmenttools/ProductDetails/dm330023-3) | ## Static Motor Control Examples These applications contain static algorithm code and peripherals are configured using MCC. Configurations can be changed in userparam.h file. | Name | Description|Control Board|Inverter Board|:-----|:-----------|:------------|:-------------| [PFC and PMSM FOC using PLL Estimator](/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.html) | Power Factor Correction and Sensorless Field Oriented Control of PMSM using PLL Estimator |[ATSAME70 Motor Control Plugin Module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203) |[dsPICDEM™ MCHV-3 Support](https://www.microchip.com/developmenttools/ProductDetails/dm330023-3) | [PMSM FOC using Sliding Mode Observer](/mc_apps_sam_e7x_s7x_v7x/apps/pmsm_foc_smo_sam_e70/readme.html) | Sensorless Field Oriented Control of PMSM using Sliding Mode Observer |[ATSAME70 Motor Control Plugin Module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203) | [dsPICDEM™ MCLV-2 Support](https://www.microchip.com/DevelopmentTools/ProductDetails/DM330021-2) ||||| [![License](https://img.shields.io/badge/license-Harmony%20license-orange.svg)](https://github.com/Microchip-MPLAB-Harmony/mc/blob/master/mplab_harmony_license.md) [![Latest release](https://img.shields.io/github/release/Microchip-MPLAB-Harmony/mc.svg)](https://github.com/Microchip-MPLAB-Harmony/mc/releases/latest) [![Latest release date](https://img.shields.io/github/release-date/Microchip-MPLAB-Harmony/mc.svg)](https://github.com/Microchip-MPLAB-Harmony/mc/releases/latest) [![Commit activity](https://img.shields.io/github/commit-activity/y/Microchip-MPLAB-Harmony/mc.svg)](https://github.com/Microchip-MPLAB-Harmony/mc/graphs/commit-activity) [![Contributors](https://img.shields.io/github/contributors-anon/Microchip-MPLAB-Harmony/mc.svg)]() ____ [![Follow us on Youtube](https://img.shields.io/badge/Youtube-Follow%20us%20on%20Youtube-red.svg)](https://www.youtube.com/user/MicrochipTechnology) [![Follow us on LinkedIn](https://img.shields.io/badge/LinkedIn-Follow%20us%20on%20LinkedIn-blue.svg)](https://www.linkedin.com/company/microchip-technology) [![Follow us on Facebook](https://img.shields.io/badge/Facebook-Follow%20us%20on%20Facebook-blue.svg)](https://www.facebook.com/microchiptechnology/) [![Follow us on Twitter](https://img.shields.io/twitter/follow/MicrochipTech.svg?style=social)](https://twitter.com/MicrochipTech) [![](https://img.shields.io/github/stars/Microchip-MPLAB-Harmony/mc.svg?style=social)]() [![](https://img.shields.io/github/watchers/Microchip-MPLAB-Harmony/mc.svg?style=social)]() ", - "url": "http://localhost:4000/mc_apps_sam_e7x_s7x_v7x/", - "relUrl": "/" - } -} diff --git a/docs/assets/js/vendor/lunr.min.js b/docs/assets/js/vendor/lunr.min.js deleted file mode 100644 index 34b279d..0000000 --- a/docs/assets/js/vendor/lunr.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.6 - * Copyright (C) 2019 Oliver Nightingale - * @license MIT - */ -!function(){var e=function(t){var r=new e.Builder;return r.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),r.searchPipeline.add(e.stemmer),t.call(r,r),r.build()};e.version="2.3.6",e.utils={},e.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),e.utils.asString=function(e){return void 0===e||null===e?"":e.toString()},e.utils.clone=function(e){if(null===e||void 0===e)return e;for(var t=Object.create(null),r=Object.keys(e),i=0;i0){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/favicon.ico b/docs/favicon.ico deleted file mode 100644 index 5fb917d..0000000 Binary files a/docs/favicon.ico and /dev/null differ diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index c8dad57..0000000 --- a/docs/index.html +++ /dev/null @@ -1 +0,0 @@ - Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family | Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family Link Search Menu Expand Document

Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family

MPLAB Harmony 3 is an extension of the MPLAB® ecosystem for creating embedded firmware solutions for Microchip 32-bit SAM and PIC32 microcontroller and microprocessor devices. Refer to the following links for more information.

This repository contains the MPLAB® Harmony 3 Motor Control application exmaples for SAME7x/S7x/V7x family. Users can use these examples as a reference for developing their own motor control applications. Refer to the following links for release notes and licensing information.

Contents Summary

Folder Description
apps Demonstration applications for Motor Control
docs Contains documentation in html format for offline viewing (to be used only after cloning this repository onto a local machine). Use github pages of this repository for viewing it online.

Configurable Motor Control Examples (MCC with Harmony QSpin Motor Control)

The following applications are provided to demonstrate the Harmony QSpin to generate the motor control firmware.

Name Description Control Board Inverter Board
PMSM FOC using PLL Estimator Sensorless Field Oriented Control of PMSM using PLL Estimator ATSAME70 Motor Control Plugin Module dsPICDEM™ MCLV-2 Support
dsPICDEM™ MCHV-3 Support
PMSM FOC using Quadrature Encoder Sensored Field Oriented Control of PMSM using Quadrature Encoder ATSAME70 Motor Control Plugin Module dsPICDEM™ MCLV-2 Support
dsPICDEM™ MCHV-3 Support

Static Motor Control Examples

These applications contain static algorithm code and peripherals are configured using MCC. Configurations can be changed in userparam.h file.

Name Description Control Board Inverter Board
PFC and PMSM FOC using PLL Estimator Power Factor Correction and Sensorless Field Oriented Control of PMSM using PLL Estimator ATSAME70 Motor Control Plugin Module dsPICDEM™ MCHV-3 Support
PMSM FOC using Sliding Mode Observer Sensorless Field Oriented Control of PMSM using Sliding Mode Observer ATSAME70 Motor Control Plugin Module dsPICDEM™ MCLV-2 Support
       

License Latest release Latest release date Commit activity Contributors __

Follow us on Youtube Follow us on LinkedIn Follow us on Facebook Follow us on Twitter



Copyright © 2020 Microchip Technology.

diff --git a/docs/mplab_harmony_license.html b/docs/mplab_harmony_license.html deleted file mode 100644 index e40bcc8..0000000 --- a/docs/mplab_harmony_license.html +++ /dev/null @@ -1,42 +0,0 @@ - License | Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family Link Search Menu Expand Document

MICROCHIP SOFTWARE IS PROVIDED SOLELY TO ASSIST YOU IN DEVELOPING PRODUCTS AND SYSTEMS THAT USE MICROCHIP PRODUCTS. DOWNLOAD AND/OR USE OF THE SOFTWARE REQUIRES THAT YOU ACCEPT THIS SOFTWARE LICENSE AGREEMENT. IF YOU DO NOT WISH TO ACCEPT THESE TERMS, DO NOT DOWNLOAD OR USE ANY OF THE SOFTWARE. DOWNLOADING OR USING THE SOFTWARE CONTITUTES YOUR ACCEPTANCE OF THIS SOFTWARE LICENSE AGREEMENT.

SOFTWARE LICENSE AGREEMENT

    This Software License Agreement ("Agreement") is an agreement between you (if licensing as an individual) or the entity you represent (if licensing as a business) ("you" or "Licensee") and Microchip Technology Incorporated, a Delaware corporation, with a place of business at 2355 W. Chandler Blvd., Chandler, AZ 85224-6199, and its affiliates including Microchip Technology Ireland Limited, a company organized under the laws of Ireland, with a principal address at Ground Floor, Block W., East Point Business Park, Dublin, Ireland 3 (collectively, "Microchip") for the Microchip MPLAB Harmony Integrated Software Framework and documentation included in the download or otherwise provided by Microchip to Licensee (collectively, the "Software").
-
-1.	Use.  Subject to the terms of this Agreement, Microchip hereby grants Licensee a limited, revocable, non-exclusive, non-transferable, worldwide license to (a) use the Software, and (b) modify the Software provided in source code form, if any (and use and copy modifications of such Software made by Licensee), provided that in each case (with respect to clauses (a) and (b)) Licensee solely uses the Software with Microchip Products, Licensee Products, or other products agreed to by Microchip in writing. Licensee has no right to (i) substitute third party products for Microchip Products, or (ii) except as expressly provided in Section 2 below, sublicense its rights under this Agreement or otherwise disclose or distribute the Software to any third party.
-
-Licensee may make a reasonable number of copies of the Software solely as necessary to exercise its license rights in this Section 1. Licensee will not remove or alter any copyright, trademark, or other proprietary notices contained on or in the Software or any copies. “Microchip Products” means those Microchip devices purchased from Microchip or one of its authorized distributors that are identified in the Software, or if not identified in the Software, then such Microchip devices that are consistent with the purpose of the Software, including but not limited to Microchip 32-bit microcontroller and microprocessor devices and the like. “Licensee Products” means products manufactured by or for Licensee that use or incorporate Microchip Products.
-
-2. Subcontractors. If Licensee wishes for its subcontractor to obtain and use the Software in order to provide design, manufacturing, or other services to Licensee: (a) such subcontractor may (i) download and agree to the terms of this Agreement or (ii) contact Microchip directly for a copy of this Agreement and agree to its terms; or (b) Licensee may sublicense the rights described in Section 1 directly to its subcontractor, provided that (i) such subcontractor agrees in writing to the terms of this Agreement � a copy of which will be provided to Microchip upon request, and (ii) Licensee is liable for such subcontractor's acts and omissions.
-
-3. Third Party Software.
-
-    (a)	Third Party Materials. Licensee agrees to comply with third party license terms applicable to Third Party Materials, if any. Microchip will not be held responsible for Licensee's failure to comply with such terms. Microchip has no obligation to provide support or maintenance for Third Party Materials. "Third Party Materials" means the third party software, systems, tools, or specifications (including those of a standards setting organization) referenced in, bundled with, or included in the Software.
-
-    (b)	Open Source Components. Notwithstanding the license grant in Section 1 above, Licensee acknowledges that the Software may include Open Source Components. To the extent required by the licenses covering Open Source Components, the terms of such license apply in lieu of the terms of this Agreement. To the extent the terms of the licenses applicable to Open Source Components prohibit any of the restrictions in this Agreement with respect to such Open Source Components, those restrictions will not apply to the Open Source Component. "Open Source Components" means components of the Software that are subject to the terms of an Open Source License. "Open Source License" means any software license approved as an open source license by the Open Source Initiative or any substantially similar license, including without limitation any license that, as a condition of distribution of the software licensed under such license, requires that the distributor make the software available in source code format.
-
-4. Licensee Obligations.
-
-    (a) Restrictions. Except as expressly permitted by this Agreement, Licensee agrees that it will not (i) modify or alter the Software or a Microchip Product; (ii) adapt, translate, decompile, reverse engineer, disassemble the Software provided in object code form, any Microchip Product, or any samples or prototypes provided by Microchip, or create derivative works thereof; or (iii) use the Software with any software or other materials that are subject to licenses or restrictions (e.g., Open Source Licenses) that, when combined with the Software, would require Microchip to disclose, license, distribute, or otherwise make all or any part of such Software available to anyone.
-
-    (b) Indemnity. Licensee will indemnify (and, at Microchip's election, defend) Microchip from and against any and all claims, costs, damages, expenses (including reasonable attorneys' fees), liabilities, and losses, arising out of or related to: (i) Licensee's modification, disclosure, or distribution of the Software or Third Party Materials; (ii) the use, sale, or distribution of Licensee Products; and (iii) an allegation that Licensee Products or Licensee's modification of the Software infringe third party intellectual property rights.
-
-    (c) Licensee Products. Licensee understands and agrees that Licensee remains responsible for using its independent analysis, evaluation, and judgment in designing Licensee Products and systems and has full and exclusive responsibility to assure the safety of its products and compliance of its products (and of all Microchip Products used in or for such Licensee Products) with applicable laws and requirements.
-
-5. Confidentiality.
-
-    (a) Licensee agrees that the Software, underlying inventions, algorithms, know-how, and ideas relating to the Software, and any other non-public business or technical information disclosed by Microchip to Licensee are confidential and proprietary information, including information derived therefrom, belonging to Microchip and its licensors (collectively, "Confidential Information"). Licensee will use Confidential Information only to exercise its rights and perform its obligations under this Agreement and will take all reasonable measures to protect the secrecy of and avoid unauthorized access, disclosure, and use of Confidential Information. Such measures include, but are not limited to, the highest degree of care that it uses to protect its own information of a similar nature, but not less than reasonable care. Licensee will only disclose Confidential Information to its employees, subcontractors, consultants, auditors and representatives (collectively "Representatives") who have a need to know such information and who have use and confidentiality obligations to Licensee at least as restrictive as those set forth in this Agreement. Licensee is responsible for disclosure or misuse of Confidential Information by its Representatives. Use of Confidential Information for personal gain, for the benefit of a third party or to compete with Microchip, whether directly or indirectly, is a breach of this Agreement. Licensee will notify Microchip in writing of any actual or suspected misuse, misappropriation, or unauthorized disclosure of Confidential Information that comes to Licensee's attention. Confidential Information will not include information that: (i) is or becomes publicly available without breach of this Agreement; (ii) is known or becomes known to Licensee from a source other than Microchip without restriction and without breach of this Agreement or violation of Microchip's rights, as demonstrated by credible evidence in existence at the time of disclosure; (iii) is independently developed by Licensee without use of or reference to the Confidential Information, as demonstrated by credible evidence in existence at the time of independent development; or (iv) is disclosed generally to third parties by Microchip without restrictions similar to those contained in this Agreement. Licensee may disclose Confidential Information to the extent required under law, rule, or regulation (including those of any national securities exchange), by subpoena, civil investigative demand, or similar process, or by a court or administrative agency (each a "Requirement"'), provided, that to the extent permitted by applicable law, Licensee will provide prompt notice of such Requirement to Microchip to enable Microchip to seek a protective order or otherwise prevent or restrict such disclosure.
-
-    (b) Return of Materials. Upon Microchip's request and direction, Licensee will promptly return or destroy the Confidential Information, including any physical information or materials provided to Licensee (together with any copies, excerpts, syntheses, CD ROMS, diskettes, etc.), and, in the case of information derived therefrom, provide written certification that all the Confidential Information has been expunged from any such materials or that all such materials have been destroyed. Further, if Licensee or its affiliates become competitors of Microchip, and Microchip notifies Licensee in writing of its status as a competitor in a given market, then Licensee will promptly engage in the return and certification process described above in this Section 5(b).
-
-6. Ownership and Retention of Rights. All rights, title, and interest (including all intellectual property rights) in and to the Software, including any derivative works of the Software and any incremental modifications to the Software whether made by or for Licensee or Microchip (collectively, "Microchip Property"), are and will remain the sole and exclusive property of Microchip, whether such Microchip Property is separate or combined with any other products. Licensee, on behalf of itself and its affiliates, agrees to, and does hereby, assign to Microchip or its designee all right, title and interest (including all intellectual property rights) in and to derivative works of and any incremental modifications to the Software. Licensee will take (and will cause its affiliates, their subcontractors, and all related individuals to take) all action as may be reasonably necessary, proper or advisable to perfect and secure the ownership, licenses, intellectual property and other rights of or to Microchip as set forth in this Agreement. All rights not expressly granted under this Agreement are reserved to Microchip and its licensors and suppliers, and there are no implied rights. Licensee retains all right, title, and interest in and to any technology independently developed by Licensee not derived, directly or indirectly, from the Microchip Property or any other item of tangible property provided to Licensee by Microchip hereunder.
-
-7. Termination. This Agreement will start once accepted by Licensee and continue unless and until terminated as provided in this Agreement. This Agreement automatically terminates immediately if Licensee violates the restrictions set forth in Sections 1, 2 or 4(a). Microchip may terminate this Agreement immediately upon notice if (a) Licensee or its affiliates become competitors of Microchip, or (b) Licensee breaches any other term of this Agreement and does not cure such breach within 30 days after receipt of written notice of such breach from Microchip. Upon termination of this Agreement, (i) the license grants in Sections 1 and 2(b) terminate, and (ii) Licensee will return to Microchip or destroy (and certify the destruction of) all Microchip Property and Confidential Information in its possession or under its control, and all copies thereof. The following sections survive termination of this Agreement: 3, 4, 5, 6, 7, 8, 9, 10, 11 and 12.
-
-8. Dangerous Applications. The Software is not fault-tolerant and is not designed, manufactured, or intended for use in hazardous environments requiring failsafe performance ("Dangerous Applications"). Dangerous Applications include the operation of nuclear facilities, aircraft navigation, aircraft communication systems, air traffic control, direct life support machines, weapons systems, or any environment or system in which the failure of the Software could lead directly or indirectly to death, personal injury, or severe physical or environmental damage. Microchip specifically disclaims (a) any express or implied warranty of fitness for use of the Software in Dangerous Applications; and (b) any and all liability for loss, damages and claims resulting from the use of the Software in Dangerous Applications.
-
-9. EU Consumers � Applicable Terms. WHERE LICENSEE IS A CONSUMER LOCATED IN EUROPE, THE FOLLOWING PROVISIONS APPLY INSTEAD OF SECTIONS 9 AND 10 BELOW: Microchip and its licensors will not be liable (a) for any loss suffered by Licensee in connection with the Software where such loss was not reasonably foreseeable when the Software was first downloaded by Licensee, even if such loss was the result of negligence or the failure of Microchip and its licensors to comply with this Agreement; or (b) irrespective of the basis of claim, for any loss of revenue, profit or other business or economic loss suffered. Some Software is made available to Licensee free of charge, and Licensee may at any time download further copies without charge to replace the Software initially downloaded and others may require a fee to be downloaded, or to download any further copies. In all circumstances, to the extent liability may lawfully be limited or excluded, the cumulative liability of Microchip and its licensors will not exceed USD$1,000 (or equivalent sum in the currency of the country in which Licensee resides). However, none of the foregoing limits or excludes any liability for death or personal injury arising from negligence, or for fraud, fraudulent misrepresentation or any other cause that by law cannot be excluded and limited.
-
-10. Warranty Disclaimers. EXCEPT FOR CONSUMERS TO WHOM SECTION 8 APPLIES, THE SOFTWARE IS LICENSED ON AN "AS-IS" BASIS. MICROCHIP MAKES NO WARRANTIES OF ANY KIND WITH RESPECT TO THE SOFTWARE, WHETHER EXPRESS, IMPLIED, STAUTORY OR OTHERWISE, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR NON-INFRINGEMENT AND ANY WARRANTIES THAT MAY ARISE FROM USAGE OF TRADE OR COURSE OF DEALING. MICROCHIP AND ITS LICENSORS HAVE NO OBLIGATION TO CORRECT ANY DEFECTS IN THE SOFTWARE. TECHNICAL ASSISTANCE, IF PROVIDED, WILL NOT EXPAND THESE WARRANTIES. IF CUSTOMER IS A CONSUMER, THE ABOVE WILL NOT ACT TO EXCLUDE YOUR STATUTORY RIGHTS.
-
-11. Limited Liability. EXCEPT FOR CONSUMERS TO WHOM SECTION 8 APPLIES, IN NO EVENT WILL MICROCHIP BE LIABLE, WHETHER IN CONTRACT, WARRANTY, REPRESENTATION, TORT, STRICT LIABILITY, INDEMNITY, CONTRIBUTION OR OTHERWISE, FOR ANY INDIRECT, SPECIAL, PUNITIVE, EXEMPLARY, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER, HOWEVER CAUSED, OR ANY LOSS OF PRODUCTION, COST OF PROCUREMENT OF SUBSTITUTE PRODUCTS OR SERVICES, ANY LOSS OF PROFITS, LOSS OF BUSINESS, LOSS OF USE OR LOSS OF DATA, OR INTERRUPTION OF BUSINESS ARISING OUT OF THIS AGREEMENT, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, EVEN IF MICROCHIP  HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS, AND NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED REMEDY. MICROCHIP'S TOTAL AGGREGATE LIABILITY UNDER THIS AGREEMENT WILL NOT EXCEED USD$1,000.
-
-12. General. (a) This Agreement will be governed by and construed in accordance with the laws of the State of Arizona and the United States, without regard to conflicts of law provisions. The parties hereby irrevocably consent to the exclusive personal jurisdiction and venue of the state and federal courts in Maricopa County, Arizona for any dispute relating to this Agreement. WHERE LICENSEE IS A CONSUMER LOCATED IN EUROPE, this Agreement is subject to the laws of the country in which the Software is downloaded, and, to the extent so mandated by such laws, subject to the jurisdiction of the courts of that country. The parties expressly disclaim the applicability of the United Nations Convention on Contracts for the International Sale of Goods in connection with this Agreement. (b) Unless the parties have a mutually executed agreement relating to the licensing of this Software by Microchip to Licensee ("Signed Agreement"), this Agreement constitutes the entire agreement between the parties with respect to the Software, and supersedes and replaces prior or contemporaneous written or verbal agreements or communications between the parties regarding the Software, including any purchase orders. If the parties have a Signed Agreement, this Agreement does not supersede or replace that Signed Agreement. This Agreement will not be modified except by a written agreement signed by an authorized representative of Microchip. If any provision of this Agreement is held by a court of competent jurisdiction to be illegal, invalid, or unenforceable, that provision will be limited or eliminated to the minimum extent necessary so that this Agreement will otherwise remain in full force and effect and enforceable. No waiver of any breach of any provision of this Agreement constitutes a waiver of any prior, concurrent, or subsequent breach of the same or any other provisions of this Agreement, and no waiver will be effective unless made in writing and signed by an authorized representative of the waiving party. (c) Licensee agrees to comply with all import and export laws and restrictions and regulations of the Department of Commerce or other United States or foreign agency or authority. (d) This Agreement will bind and inure to the benefit of each party's permitted successors and assigns. Licensee may not assign this Agreement in whole or in part, whether by law or otherwise, without Microchip's prior written consent. Any merger, consolidation, amalgamation, reorganization, transfer of all or substantially all assets or other change in control or majority ownership ("Change of Control") is considered an assignment for the purpose of this Section. Any attempt to assign this Agreement without such consent will be null and void. However, Microchip may assign this Agreement to an affiliate, or to another entity in the event of a Change of Control. (e) Licensee acknowledges its breach of any confidentiality or proprietary rights provision of this Agreement would cause Microchip irreparable damage, for which the award of damages would not be an adequate remedy. Licensee, therefore, agrees if Microchip alleges that Licensee has breached or violated any such provisions then Microchip may seek equitable relief, in addition to all other remedies at law or in equity. (f) Authorized representatives of Microchip shall have the right to reasonably inspect Licensee's premises and to audit Licensee's records and inventory of Licensee Products, whether located on Licensee's premises or elsewhere at any time, announced or unannounced, and in its sole and absolute discretion, in order to ensure Licensee's adherence to the terms of this Agreement. (g) Consistent with 48 C.F.R. �12.212 or 48 C.F.R. �227.7202-1 through 227.7202-4, as applicable, the Software is being licensed to U.S. Government end users (i) only as Commercial Items, and (ii) with only those rights as are granted to all other end users pursuant to the terms and conditions of the applicable Microchip licenses. To the extent the Software (or a portion thereof) qualifies as �technical data' as such term is defined in 48 C.F.R. �252.227-7015(a)(5), then its use, duplication, or disclosure by the U.S. Government is subject to the restrictions set forth in subparagraphs (a) through (e) of the Rights in Technical Data clause at 48 C.F.R. �252.227-7015. Contractor/manufacturer is Microchip Technology Inc., 2355 W. Chandler Blvd., Chandler, AZ 85224-6199.
-

Questions about this Agreement should be sent to: Microchip Technology Inc., 2355 W. Chandler Blvd., Chandler, AZ 85224-6199 USA. ATTN: Marketing.

v.3.3.2021



Copyright © 2020 Microchip Technology.

diff --git a/docs/package.yml b/docs/package.yml deleted file mode 100644 index 9f09926..0000000 --- a/docs/package.yml +++ /dev/null @@ -1,12 +0,0 @@ -package: - format-version: "1.0.0" - name: "mc_apps_sam_d7x_s7x_v7x" - type: "application" - status: "production" - required: true - version: "3.4.0" - - dependencies: - - name: "motor_control" - type: "package" - version: "v3.10.0" \ No newline at end of file diff --git a/docs/release_notes.html b/docs/release_notes.html deleted file mode 100644 index 4d2961b..0000000 --- a/docs/release_notes.html +++ /dev/null @@ -1 +0,0 @@ - Release notes | Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family Link Search Menu Expand Document

Microchip logo Harmony logo small

Microchip MPLAB® Harmony 3 Release Notes

Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family v3.4.0

Applications

New Features

  • MISRA-C Compliance for motor control files
  • Deprecated static projects for PLL based sensorless FOC
  • Deprecated static projects for encoder based sensored FOC

Known Issues

  • same as v3.1.0

Required MPLAB Harmony v3 Modules

  • motor_control v3.10.0
  • x2c v1.4.0

Development Tools

Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family v3.3.0

Applications

New Features

  • Added PLL based sensorless FOC for MCHV3 in Harmony QSpin
  • Added Encoder based sensored FOC for MCHV3 in Harmony QSpin

Known Issues

  • same as v3.1.0

Required MPLAB Harmony v3 Modules

  • bsp v3.14.0
  • motor_control v3.9.0
  • x2c v1.3.0
  • mcc H3 Library v1.1.5

Development Tools

Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family v3.2.0

Applications

New Features

  • Added Motor Control Plant generated motor control firmware for PLL based sensorless FOC for MCLV2
  • Added Motor Control Plant generated motor control firmware for Encoder based sensored FOC for MCLV2
  • Migrated MHC generated code to MCC generated code

Known Issues

  • same as v3.1.0

Required MPLAB Harmony v3 Modules

  • csp v3.11.0
  • x2c v1.4.0
  • bsp v3.11.1
  • motor_control v3.8.0
  • dev_packs v3.11.0
  • mcc v1.1.0

Development Tools

Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family v3.1.0

Applications

New Features

None

Known Issues

  • Isolated EDBG Card
    • The Isolated EDBG Card may appear “grayed out” (disabled) under the list of tools in MPLABX v5.50. In order to resolve this issue, please go to Tools -> Options ->Embedded->Generic Settings and enable “Exclude device checks for kits” by selecting the check box.

    Exclude_Device_Checks

    • If programming failure occurs with message “java.lang.RuntimeException:RDDI_DAP_OPERATION_FAILED”, then reset the Isolated EDBG Card’s configuration by Go to File -> Project Properties -> EDBG -> Reset
  • pmsm_foc_encoder_sam_e70_mchv3 application running on dsPICDEM MCHV-3 requires increasing bandwidth of the quadrature encoder signal filter to maintain signal integrity of quadrature sensor signals at higher motor speeds. Without these modifications, motor operation may fail at higher speeds.
    • Reduce the capacitance value of C25, C26 and C27 from 100pF to 10pF 50V NPO 0805

Required MPLAB Harmony v3 Modules

  • csp v3.9.1
  • x2c v1.1.4
  • motor_control v3.7.0
  • dev_packs v3.9.0
  • mhc v3.8.0

Development Tools

Microchip MPLAB® Harmony 3 Motor Control Application Examples for SAM E7x/S7x/V7x family v3.0.0

Applications

Applications migrated from motor_control repository to this application repository for SAME7x/S7x/V7x family.

Required MPLAB Harmony v3 Modules

  • csp v3.8.3
  • x2c v1.1.3
  • motor_control v3.6.0
  • dev_packs v3.8.0
  • mhc v3.6.5

Known Issues

  • Isolated EDBG Card
    • The Isolated EDBG Card may appear “grayed out” (disabled) under the list of tools in MPLABX v5.45. In order to resolve this issue, please go to Tools -> Options ->Embedded->Generic Settings and enable “Exclude device checks for kits” by selecting the check box.

    Exclude_Device_Checks

    • If programming failure occurs with message “java.lang.RuntimeException:RDDI_DAP_OPERATION_FAILED”, then reset the Isolated EDBG Card’s configuration by Go to File -> Project Properties -> EDBG -> Reset
  • pmsm_foc_encoder_sam_e70_mchv3 application running on dsPICDEM MCHV-3 requires increasing bandwidth of the quadrature encoder signal filter to maintain signal integrity of quadrature sensor signals at higher motor speeds. Without these modifications, motor operation may fail at higher speeds.
    • Reduce the capacitance value of C25, C26 and C27 from 100pF to 10pF 50V NPO 0805

Development Tools



Copyright © 2020 Microchip Technology.

diff --git a/readme.md b/readme.md index bb10ae3..68e7156 100644 --- a/readme.md +++ b/readme.md @@ -29,8 +29,16 @@ notes and licensing information. | Folder | Description | |------------|-----------------------------------------------------------| | apps | Demonstration applications for Motor Control | -| docs | Contains documentation in html format for offline viewing (to be used only after cloning this repository onto a local machine). Use [github pages](https://microchip-mplab-harmony.github.io/mc_apps_sam_e7x_s7x_v7x/) of this repository for viewing it online. | +||| +## Documentation + +Click [here](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=MC_APPS_SAM_E7X_S7X_V7X_INTRODUCTION&redirect=true) to view the online documentation of code examples hosted in this repository. + +To view the documentation offline, follow these steps: + - Download the publication as a zip file from [here](https://onlinedocs.microchip.com/download/GUID-A4FA5B29-A18C-4B66-B6FE-172C03A7301B?type=webhelp). + - Extract the zip file into a folder. + - Navigate to the folder and open **index.html** in a web browser of your choice. ## Configurable Motor Control Examples (MCC with Harmony QSpin Motor Control) @@ -38,9 +46,9 @@ The following applications are provided to demonstrate the Harmony QSpin to gene | Name | Description|Control Board|Inverter Board| |:-----|:-----------|:------------|:-------------| -| [PMSM FOC using PLL Estimator ](apps/mcp_pmsm_foc_pll_estimator_sam_e70/readme.md) | Sensorless Field Oriented Control of PMSM using PLL Estimator | [ATSAME70 Motor Control Plugin Module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203) | [dsPICDEM™ MCLV-2 Support](https://www.microchip.com/DevelopmentTools/ProductDetails/DM330021-2)
[dsPICDEM™ MCHV-3 Support](https://www.microchip.com/developmenttools/ProductDetails/dm330023-3) | -| [PMSM FOC using Quadrature Encoder](apps/mcp_pmsm_foc_encoder_sam_e70/readme.md) | Sensored Field Oriented Control of PMSM using Quadrature Encoder |[ATSAME70 Motor Control Plugin Module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203)| [dsPICDEM™ MCLV-2 Support](https://www.microchip.com/DevelopmentTools/ProductDetails/DM330021-2)
[dsPICDEM™ MCHV-3 Support](https://www.microchip.com/developmenttools/ProductDetails/dm330023-3) | -| [PMSM FOC using Sliding Mode Observer](apps/pmsm_foc_smo_sam_e70/readme.md) | Sensorless Field Oriented Control of PMSM using Sliding Mode Observer |[ATSAME70 Motor Control Plugin Module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203) | [dsPICDEM™ MCLV-2 Support](https://www.microchip.com/DevelopmentTools/ProductDetails/DM330021-2) | +| [PMSM FOC using PLL Estimator ](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=MC_APPS_SAM_E7X_S7X_V7X_PMSM_FOC_PLL_ESTIMATOR&redirect=true) | Sensorless Field Oriented Control of PMSM using PLL Estimator | [ATSAME70 Motor Control Plugin Module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203) | [dsPICDEM™ MCLV-2 Support](https://www.microchip.com/DevelopmentTools/ProductDetails/DM330021-2)
[dsPICDEM™ MCHV-3 Support](https://www.microchip.com/developmenttools/ProductDetails/dm330023-3) | +| [PMSM FOC using Quadrature Encoder](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=MC_APPS_SAM_E7X_S7X_V7X_PMSM_FOC_QUADRATURE_ENCODER&redirect=true) | Sensored Field Oriented Control of PMSM using Quadrature Encoder |[ATSAME70 Motor Control Plugin Module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203)| [dsPICDEM™ MCLV-2 Support](https://www.microchip.com/DevelopmentTools/ProductDetails/DM330021-2)
[dsPICDEM™ MCHV-3 Support](https://www.microchip.com/developmenttools/ProductDetails/dm330023-3) | +| [PMSM FOC using Sliding Mode Observer](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=MC_APPS_SAM_E7X_S7X_V7X_PMSM_FOC_SLIDING_MODE_OBSERVER&redirect=true) | Sensorless Field Oriented Control of PMSM using Sliding Mode Observer |[ATSAME70 Motor Control Plugin Module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203) | [dsPICDEM™ MCLV-2 Support](https://www.microchip.com/DevelopmentTools/ProductDetails/DM330021-2) | ||||| ## Static Motor Control Examples @@ -49,7 +57,7 @@ These applications contain static algorithm code and peripherals are configured | Name | Description|Control Board|Inverter Board| |:-----|:-----------|:------------|:-------------| -| [PFC and PMSM FOC using PLL Estimator](apps/pmsm_pfc_foc_pll_estimator_sam_e70/readme.md) | Power Factor Correction and Sensorless Field Oriented Control of PMSM using PLL Estimator |[ATSAME70 Motor Control Plugin Module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203) |[dsPICDEM™ MCHV-3 Support](https://www.microchip.com/developmenttools/ProductDetails/dm330023-3) | +| [PFC and PMSM FOC using PLL Estimator](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=MC_APPS_SAM_E7X_S7X_V7X_POWER_FACTOR_CORRECTION_PMSM_FOC_PLL_ESTIMATOR&redirect=true) | Power Factor Correction and Sensorless Field Oriented Control of PMSM using PLL Estimator |[ATSAME70 Motor Control Plugin Module](https://www.microchip.com/Developmenttools/ProductDetails/MA320203) |[dsPICDEM™ MCHV-3 Support](https://www.microchip.com/developmenttools/ProductDetails/dm330023-3) | ||||| @@ -67,4 +75,4 @@ ____ [![Follow us on Twitter](https://img.shields.io/twitter/follow/MicrochipTech.svg?style=social)](https://twitter.com/MicrochipTech) [![](https://img.shields.io/github/stars/Microchip-MPLAB-Harmony/mc.svg?style=social)]() -[![](https://img.shields.io/github/watchers/Microchip-MPLAB-Harmony/mc.svg?style=social)]() +[![](https://img.shields.io/github/watchers/Microchip-MPLAB-Harmony/mc.svg?style=social)]() \ No newline at end of file