-                               #if defined(__AVR32__)\r
-                                       #if !defined(CONTROL_ONLY_DEVICE)\r
-                                               #define Endpoint_GetCurrentEndpoint()     USB_SelectedEPNumber\r
-                                               #define Endpoint_SelectEndpoint(epnum)    MACROS{ USB_SelectedEPNumber = (epnum); }MACROE                                       \r
-                                               #define Endpoint_IsReadWriteAllowed()     (__AVR32_EPREG_X(UESTA0) & AVR32_USBB_RWALL_MASK)\r
-                                       #else\r
-                                               #define Endpoint_GetCurrentEndpoint()     ENDPOINT_CONTROLEP\r
-                                               #define Endpoint_SelectEndpoint(epnum)    (void)(epnum)\r
-                                       #endif\r
-\r
-                                       #define Endpoint_ResetFIFO(epnum)             MACROS{ AVR32_USBB.uerst |=  (AVR32_USBB_EPRST0_MASK << (epnum)); \\r
-                                                                                             AVR32_USBB.uerst &= ~(AVR32_USBB_EPRST0_MASK << (epnum));     }MACROE\r
-                                       #define Endpoint_EnableEndpoint()             MACROS{ AVR32_USBB.uerst |=  (AVR32_USBB_UERST_EPEN0_MASK << USB_SelectedEPNumber); }MACROE\r
-                                       #define Endpoint_DisableEndpoint()            MACROS{ AVR32_USBB.uerst &= ~(AVR32_USBB_UERST_EPEN0_MASK << USB_SelectedEPNumber); }MACROE\r
-                                       #define Endpoint_IsEnabled()                        ((AVR32_USBB.uerst & (AVR32_USBB_UERST_EPEN0_MASK << USB_SelectedEPNumber)) ? true : false)\r
-                                       \r
-                                       #define Endpoint_IsConfigured()                     ((__AVR32_EPREG_X(UESTA0) & AVR32_USBB_UESTA0_CFGOK_MASK) ? true : false)\r
-                                       #define Endpoint_GetEndpointInterrupts()             (AVR32_USBB.UDINT >> AVR32_USBB_EP0INT)\r
-                                       #define Endpoint_HasEndpointInterrupted(n)          ((AVR32_USBB.UDINT & (AVR32_USBB_EP0INT << (n))) ? true : false)\r
-                                       #define Endpoint_IsINReady()                        ((__AVR32_EPREG_X(UESTA0) & AVR32_USBB_TXINI)  ? true : false)\r
-                                       #define Endpoint_IsOUTReceived()                    ((__AVR32_EPREG_X(UESTA0) & AVR32_USBB_RXOUTI) ? true : false)\r
-                                       #define Endpoint_IsSETUPReceived()                  ((__AVR32_EPREG_X(UESTA0) & AVR32_USBB_RXSTPI) ? true : false)\r
-                                       #define Endpoint_ClearSETUP()                 MACROS{ __AVR32_EPREG_X(UESTA0CLR) = AVR32_USBB_RXSTPIC;  }MACROE\r
-                                       #define Endpoint_ClearIN()                    MACROS{ __AVR32_EPREG_X(UESTA0CLR) = AVR32_USBB_TXINIC; \\r
-                                                                                                                                                 __AVR32_EPREG_X(UECON0CLR) = AVR32_USBB_FIFOCONC; }MACROE\r
-                                       #define Endpoint_ClearOUT()                   MACROS{ __AVR32_EPREG_X(UESTA0CLR) = AVR32_USBB_RXOUTI; \\r
-                                                                                                                                                 __AVR32_EPREG_X(UECON0CLR) = AVR32_USBB_FIFOCONC; }MACROE\r
-                                       #define Endpoint_StallTransaction()           MACROS{ __AVR32_EPREG_X(UECON0SET) = AVR32_USBB_STALLRQS; }MACROE\r
-                                       #define Endpoint_ClearStall()                 MACROS{ __AVR32_EPREG_X(UECON0CLR) = AVR32_USBB_STALLRQC; }MACROE\r
-                                       #define Endpoint_IsStalled()                        ((__AVR32_EPREG_X(UECON0) & AVR32_USBB_STALLRQ) ? true : false)\r
-                                       #define Endpoint_ResetDataToggle()            MACROS{ __AVR32_EPREG_X(UECON0CLR) = AVR32_USBB_RSTDTS;   }MACROE\r
-                                       #define Endpoint_GetEndpointDirection()       ((__AVR32_EPREG_X(UECFG0) & ENDPOINT_DIR_IN) ? true : false)\r
-                                       #define Endpoint_SetEndpointDirection(dir)    MACROS{ __AVR32_EPREG_X(UECFG0) = \\r
-                                                                                             ((__AVR32_EPREG_X(UECFG0) & ENDPOINT_DIR_IN) | (dir)); }MACROE\r
-                               #elif defined(__AVR__)\r
-                                       #if !defined(CONTROL_ONLY_DEVICE)\r
-                                               #define Endpoint_GetCurrentEndpoint()     (UENUM & ENDPOINT_EPNUM_MASK)\r
-                                               #define Endpoint_SelectEndpoint(epnum)    MACROS{ UENUM = (epnum); }MACROE\r
-                                               #define Endpoint_IsReadWriteAllowed()     ((UEINTX & (1 << RWAL)) ? true : false)\r
-                                       #else\r
-                                               #define Endpoint_GetCurrentEndpoint()     ENDPOINT_CONTROLEP\r
-                                               #define Endpoint_SelectEndpoint(epnum)    (void)(epnum)\r
-                                       #endif\r
-\r
-                                       #define Endpoint_ResetFIFO(epnum)             MACROS{ UERST = (1 << (epnum)); UERST = 0; }MACROE\r
-                                       #define Endpoint_EnableEndpoint()             MACROS{ UECONX |= (1 << EPEN); }MACROE\r
-                                       #define Endpoint_DisableEndpoint()            MACROS{ UECONX &= ~(1 << EPEN); }MACROE\r
-                                       #define Endpoint_IsEnabled()                  ((UECONX & (1 << EPEN)) ? true : false)\r
-                                       \r
-                                       #define Endpoint_IsConfigured()               ((UESTA0X & (1 << CFGOK)) ? true : false)\r
-                                       #define Endpoint_GetEndpointInterrupts()      UEINT\r
-                                       #define Endpoint_HasEndpointInterrupted(n)    ((UEINT & (1 << (n))) ? true : false)\r
-                                       #define Endpoint_IsINReady()                  ((UEINTX & (1 << TXINI))  ? true : false)\r
-                                       #define Endpoint_IsOUTReceived()              ((UEINTX & (1 << RXOUTI)) ? true : false)\r
-                                       #define Endpoint_IsSETUPReceived()            ((UEINTX & (1 << RXSTPI)) ? true : false)\r
-                                       #define Endpoint_ClearSETUP()                 MACROS{ UEINTX &= ~(1 << RXSTPI); }MACROE\r
-\r
-                                       #if !defined(CONTROL_ONLY_DEVICE)\r
-                                               #define Endpoint_ClearIN()                MACROS{ uint8_t Temp = UEINTX; UEINTX = (Temp & ~(1 << TXINI)); \\r
-                                                                                                                                                 UEINTX = (Temp & ~(1 << FIFOCON)); }MACROE\r
-                                               #define Endpoint_ClearOUT()               MACROS{ uint8_t Temp = UEINTX; UEINTX = (Temp & ~(1 << RXOUTI)); \\r
-                                                                                                                                                 UEINTX = (Temp & ~(1 << FIFOCON)); }MACROE\r
-                                       #else\r
-                                               #define Endpoint_ClearIN()                MACROS{ UEINTX &= ~(1 << TXINI); }MACROE\r
-                                               #define Endpoint_ClearOUT()               MACROS{ UEINTX &= ~(1 << RXOUTI); }MACROE                     \r
-                                       #endif\r
-\r
-                                       #define Endpoint_StallTransaction()           MACROS{ UECONX |= (1 << STALLRQ); }MACROE\r
-                                       #define Endpoint_ClearStall()                 MACROS{ UECONX |= (1 << STALLRQC); }MACROE\r
-                                       #define Endpoint_IsStalled()                  ((UECONX & (1 << STALLRQ)) ? true : false)\r
-                                       #define Endpoint_ResetDataToggle()            MACROS{ UECONX |= (1 << RSTDT); }MACROE\r
-                                       #define Endpoint_GetEndpointDirection()       (UECFG0X & ENDPOINT_DIR_IN)\r
-                                       #define Endpoint_SetEndpointDirection(dir)    MACROS{ UECFG0X = ((UECFG0X & ~ENDPOINT_DIR_IN) | (dir)); }MACROE                         \r
+                               #if !defined(CONTROL_ONLY_DEVICE)\r
+                                       #define Endpoint_GetCurrentEndpoint()     (UENUM & ENDPOINT_EPNUM_MASK)\r
+                               #else\r
+                                       #define Endpoint_GetCurrentEndpoint()     ENDPOINT_CONTROLEP\r
+                               #endif\r
+                               \r
+                               #if !defined(CONTROL_ONLY_DEVICE)\r
+                                       #define Endpoint_SelectEndpoint(epnum)    MACROS{ UENUM = (epnum); }MACROE\r
+                               #else\r
+                                       #define Endpoint_SelectEndpoint(epnum)    (void)(epnum)\r
+                               #endif\r
+\r
+                               #define Endpoint_ResetFIFO(epnum)             MACROS{ UERST = (1 << (epnum)); UERST = 0; }MACROE\r
+\r
+                               #define Endpoint_EnableEndpoint()             MACROS{ UECONX |= (1 << EPEN); }MACROE\r
+\r
+                               #define Endpoint_DisableEndpoint()            MACROS{ UECONX &= ~(1 << EPEN); }MACROE\r
+\r
+                               #define Endpoint_IsEnabled()                  ((UECONX & (1 << EPEN)) ? true : false)\r
+\r
+                               #if !defined(CONTROL_ONLY_DEVICE)\r
+                                       #define Endpoint_IsReadWriteAllowed()     ((UEINTX & (1 << RWAL)) ? true : false)\r
+                               #endif\r
+                               \r
+                               #define Endpoint_IsConfigured()               ((UESTA0X & (1 << CFGOK)) ? true : false)\r
+\r
+                               #define Endpoint_GetEndpointInterrupts()      UEINT\r
+\r
+                               #define Endpoint_HasEndpointInterrupted(n)    ((UEINT & (1 << (n))) ? true : false)\r
+                               \r
+                               #define Endpoint_IsINReady()                  ((UEINTX & (1 << TXINI))  ? true : false)\r
+                               \r
+                               #define Endpoint_IsOUTReceived()              ((UEINTX & (1 << RXOUTI)) ? true : false)\r
+\r
+                               #define Endpoint_IsSETUPReceived()            ((UEINTX & (1 << RXSTPI)) ? true : false)\r
+\r
+                               #define Endpoint_ClearSETUP()                 MACROS{ UEINTX &= ~(1 << RXSTPI); }MACROE\r
+\r
+                               #if !defined(CONTROL_ONLY_DEVICE)\r
+                                       #define Endpoint_ClearIN()                MACROS{ UEINTX &= ~((1 << TXINI) | (1 << FIFOCON)); }MACROE\r
+                               #else\r
+                                       #define Endpoint_ClearIN()                MACROS{ UEINTX &= ~(1 << TXINI); }MACROE\r
+                               #endif\r
+\r
+                               #if !defined(CONTROL_ONLY_DEVICE)\r
+                                       #define Endpoint_ClearOUT()               MACROS{ UEINTX &= ~((1 << RXOUTI) | (1 << FIFOCON)); }MACROE\r
+                               #else\r
+                                       #define Endpoint_ClearOUT()               MACROS{ UEINTX &= ~(1 << RXOUTI); }MACROE                     \r