<html><body><div>I rebased on the latest commit on master:<br><br>commit 61e7c698a44137afbc1447ed328b14a0d9e55016<br>Author: Andre Marques <andre.lousa.marques@gmail.com><br>Date: Mon Jul 27 17:01:44 2015 +0100<br> Raspberry Pi implementation for the RTEMS GPIO API.<br><br>I've just cloned it and the patches are all applied. Maybe I misunderstand which commit to rebase on?<br></div><div><br>On Aug 13, 2015, at 09:16 AM, Joel Sherrill <joel.sherrill@oarcorp.com> wrote:<br><br><div><blockquote type="cite"><div class="msg-quote"><div class="_stretch"><span class="body-text-content"><span class="body-text-content">This still doesn't apply for me.<br><br>Did you pull the latest changes and rebase?<br><br>--joel<br><br>On 8/12/2015 5:08 PM, YANG QIAO wrote:<br></span></span><blockquote class="quoted-plain-text" type="cite">From: YANG Qiao <yangqiao0505@me.com></blockquote><blockquote class="quoted-plain-text" type="cite"><br></blockquote><blockquote class="quoted-plain-text" type="cite">---</blockquote><blockquote class="quoted-plain-text" type="cite">c/src/lib/libbsp/arm/raspberrypi/Makefile.am | 4 ++</blockquote><blockquote class="quoted-plain-text" type="cite">c/src/lib/libbsp/arm/raspberrypi/include/mailbox.h | 32 +++++++++++++</blockquote><blockquote class="quoted-plain-text" type="cite">.../libbsp/arm/raspberrypi/include/raspberrypi.h | 49 +++++++++++++++++++</blockquote><blockquote class="quoted-plain-text" type="cite">c/src/lib/libbsp/arm/raspberrypi/misc/mailbox.c | 56 ++++++++++++++++++++++</blockquote><blockquote class="quoted-plain-text" type="cite">c/src/lib/libbsp/arm/raspberrypi/preinstall.am | 4 ++</blockquote><blockquote class="quoted-plain-text" type="cite">5 files changed, 145 insertions(+)</blockquote><blockquote class="quoted-plain-text" type="cite">create mode 100644 c/src/lib/libbsp/arm/raspberrypi/include/mailbox.h</blockquote><blockquote class="quoted-plain-text" type="cite">create mode 100644 c/src/lib/libbsp/arm/raspberrypi/misc/mailbox.c</blockquote><blockquote class="quoted-plain-text" type="cite"><br></blockquote><blockquote class="quoted-plain-text" type="cite">diff --git a/c/src/lib/libbsp/arm/raspberrypi/Makefile.am b/c/src/lib/libbsp/arm/raspberrypi/Makefile.am</blockquote><blockquote class="quoted-plain-text" type="cite">index 03be711..e1398bb 100644</blockquote><blockquote class="quoted-plain-text" type="cite">--- a/c/src/lib/libbsp/arm/raspberrypi/Makefile.am</blockquote><blockquote class="quoted-plain-text" type="cite">+++ b/c/src/lib/libbsp/arm/raspberrypi/Makefile.am</blockquote><blockquote class="quoted-plain-text" type="cite">@@ -45,6 +45,7 @@ include_bsp_HEADERS += include/mmu.h</blockquote><blockquote class="quoted-plain-text" type="cite">include_bsp_HEADERS += include/usart.h</blockquote><blockquote class="quoted-plain-text" type="cite">include_bsp_HEADERS += include/raspberrypi.h</blockquote><blockquote class="quoted-plain-text" type="cite">include_bsp_HEADERS += include/rpi-gpio.h</blockquote><blockquote class="quoted-plain-text" type="cite">+include_bsp_HEADERS += include/mailbox.h</blockquote><blockquote class="quoted-plain-text" type="cite"><br></blockquote><blockquote class="quoted-plain-text" type="cite">include_libcpu_HEADERS = ../../../libcpu/arm/shared/include/cache_.h \</blockquote><blockquote class="quoted-plain-text" type="cite">../../../libcpu/arm/shared/include/arm-cp15.h</blockquote><blockquote class="quoted-plain-text" type="cite">@@ -128,6 +129,9 @@ libbsp_a_SOURCES += gpio/rpi-gpio.c</blockquote><blockquote class="quoted-plain-text" type="cite"><br></blockquote><blockquote class="quoted-plain-text" type="cite"># I2C</blockquote><blockquote class="quoted-plain-text" type="cite"><br></blockquote><blockquote class="quoted-plain-text" type="cite">+# Mailbox</blockquote><blockquote class="quoted-plain-text" type="cite">+libbsp_a_SOURCES += misc/mailbox.c</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite"># Cache</blockquote><blockquote class="quoted-plain-text" type="cite">libbsp_a_SOURCES += ../../../libcpu/shared/src/cache_manager.c</blockquote><blockquote class="quoted-plain-text" type="cite">libbsp_a_SOURCES += ../../../libcpu/arm/shared/include/cache_.h</blockquote><blockquote class="quoted-plain-text" type="cite">diff --git a/c/src/lib/libbsp/arm/raspberrypi/include/mailbox.h b/c/src/lib/libbsp/arm/raspberrypi/include/mailbox.h</blockquote><blockquote class="quoted-plain-text" type="cite">new file mode 100644</blockquote><blockquote class="quoted-plain-text" type="cite">index 0000000..e6cb0f8</blockquote><blockquote class="quoted-plain-text" type="cite">--- /dev/null</blockquote><blockquote class="quoted-plain-text" type="cite">+++ b/c/src/lib/libbsp/arm/raspberrypi/include/mailbox.h</blockquote><blockquote class="quoted-plain-text" type="cite">@@ -0,0 +1,32 @@</blockquote><blockquote class="quoted-plain-text" type="cite">+/**</blockquote><blockquote class="quoted-plain-text" type="cite">+ * @file</blockquote><blockquote class="quoted-plain-text" type="cite">+ *</blockquote><blockquote class="quoted-plain-text" type="cite">+ * @ingroup raspberrypi</blockquote><blockquote class="quoted-plain-text" type="cite">+ *</blockquote><blockquote class="quoted-plain-text" type="cite">+ * @brief mailbox support.</blockquote><blockquote class="quoted-plain-text" type="cite">+ */</blockquote><blockquote class="quoted-plain-text" type="cite">+/*</blockquote><blockquote class="quoted-plain-text" type="cite">+ * Copyright (c) 2015 Yang Qiao</blockquote><blockquote class="quoted-plain-text" type="cite">+ *</blockquote><blockquote class="quoted-plain-text" type="cite">+ * The license and distribution terms for this file may be</blockquote><blockquote class="quoted-plain-text" type="cite">+ * found in the file LICENSE in this distribution or at</blockquote><blockquote class="quoted-plain-text" type="cite">+ *</blockquote><blockquote class="quoted-plain-text" type="cite">+ * <a href="http://www.rtems.org/license/LICENSE" data-mce-href="http://www.rtems.org/license/LICENSE">http://www.rtems.org/license/LICENSE</a><div style="width:0px; height:0px;"> </div></blockquote><blockquote class="quoted-plain-text" type="cite">+ *</blockquote><blockquote class="quoted-plain-text" type="cite">+ */</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+#ifndef LIBBSP_ARM_RASPBERRYPI_MAILBOX_H</blockquote><blockquote class="quoted-plain-text" type="cite">+#define LIBBSP_ARM_RASPBERRYPI_MAILBOX_H</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+#ifdef __cplusplus</blockquote><blockquote class="quoted-plain-text" type="cite">+extern "C" {</blockquote><blockquote class="quoted-plain-text" type="cite">+#endif /* __cplusplus */</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+extern unsigned int raspberrypi_mailbox_read(unsigned int channel);</blockquote><blockquote class="quoted-plain-text" type="cite">+extern void raspberrypi_mailbox_write(unsigned int channel, unsigned int data);</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+#ifdef __cplusplus</blockquote><blockquote class="quoted-plain-text" type="cite">+}</blockquote><blockquote class="quoted-plain-text" type="cite">+#endif /* __cplusplus */</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+#endif /* LIBBSP_ARM_RASPBERRYPI_MAILBOX_H */</blockquote><blockquote class="quoted-plain-text" type="cite">diff --git a/c/src/lib/libbsp/arm/raspberrypi/include/raspberrypi.h b/c/src/lib/libbsp/arm/raspberrypi/include/raspberrypi.h</blockquote><blockquote class="quoted-plain-text" type="cite">index ddcd4ff..ef7a061 100644</blockquote><blockquote class="quoted-plain-text" type="cite">--- a/c/src/lib/libbsp/arm/raspberrypi/include/raspberrypi.h</blockquote><blockquote class="quoted-plain-text" type="cite">+++ b/c/src/lib/libbsp/arm/raspberrypi/include/raspberrypi.h</blockquote><blockquote class="quoted-plain-text" type="cite">@@ -7,6 +7,7 @@</blockquote><blockquote class="quoted-plain-text" type="cite">*/</blockquote><blockquote class="quoted-plain-text" type="cite"><br></blockquote><blockquote class="quoted-plain-text" type="cite">/*</blockquote><blockquote class="quoted-plain-text" type="cite">+ * Copyright (c) 2015 Yang Qiao</blockquote><blockquote class="quoted-plain-text" type="cite">* Copyright (c) 2014 Andre Marques <andre.lousa.marques at <a href="http://gmail.com" data-mce-href="http://gmail.com">gmail.com</a>></blockquote><blockquote class="quoted-plain-text" type="cite">* Copyright (c) 2013 Alan Cudmore.</blockquote><blockquote class="quoted-plain-text" type="cite">*</blockquote><blockquote class="quoted-plain-text" type="cite">@@ -272,6 +273,54 @@</blockquote><blockquote class="quoted-plain-text" type="cite"><br></blockquote><blockquote class="quoted-plain-text" type="cite">/** @} */</blockquote><blockquote class="quoted-plain-text" type="cite"><br></blockquote><blockquote class="quoted-plain-text" type="cite">+/**</blockquote><blockquote class="quoted-plain-text" type="cite">+* @name Mailbox Registers</blockquote><blockquote class="quoted-plain-text" type="cite">+*</blockquote><blockquote class="quoted-plain-text" type="cite">+* @{</blockquote><blockquote class="quoted-plain-text" type="cite">+*/</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_BASE (RPI_PERIPHERAL_BASE+0xB880)</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_PEEK (BCM2835_MBOX_BASE+0x10)</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_READ (BCM2835_MBOX_BASE+0x00)</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_WRITE (BCM2835_MBOX_BASE+0x20)</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_STATUS (BCM2835_MBOX_BASE+0x18)</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_SENDER (BCM2835_MBOX_BASE+0x14)</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_CONFIG (BCM2835_MBOX_BASE+0x1C)</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_FULL (BCM2835_MBOX_BASE+0x80000000)</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_EMPTY (BCM2835_MBOX_BASE+0x40000000)</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+/** @} */</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+/**</blockquote><blockquote class="quoted-plain-text" type="cite">+* @name Mailbox Channels</blockquote><blockquote class="quoted-plain-text" type="cite">+*</blockquote><blockquote class="quoted-plain-text" type="cite">+* @{</blockquote><blockquote class="quoted-plain-text" type="cite">+*/</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+/* Power Manager channel */</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_CHANNEL_PM 0</blockquote><blockquote class="quoted-plain-text" type="cite">+/* Framebuffer channel */</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_CHANNEL_FB 1</blockquote><blockquote class="quoted-plain-text" type="cite">+ /* Virtual UART channel */</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_CHANNEL_VUART 2</blockquote><blockquote class="quoted-plain-text" type="cite">+ /* VCHIQ channel */</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_CHANNEL_VCHIQ 3</blockquote><blockquote class="quoted-plain-text" type="cite">+ /* LEDs channel */</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_CHANNEL_LED 4</blockquote><blockquote class="quoted-plain-text" type="cite">+ /* Button channel */</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_CHANNEL_BUTTON 5</blockquote><blockquote class="quoted-plain-text" type="cite">+ /* Touch screen channel */</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_CHANNEL_TOUCHS 6</blockquote><blockquote class="quoted-plain-text" type="cite">+/* Property tags (ARM <-> VC) channel */</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_CHANNEL_PROP_AVC 8</blockquote><blockquote class="quoted-plain-text" type="cite">+ /* Property tags (VC <-> ARM) channel */</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_CHANNEL_PROP_VCA 9</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+/** @} */</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">/** @} */</blockquote><blockquote class="quoted-plain-text" type="cite"><br></blockquote><blockquote class="quoted-plain-text" type="cite">#endif /* LIBBSP_ARM_RASPBERRYPI_RASPBERRYPI_H */</blockquote><blockquote class="quoted-plain-text" type="cite">diff --git a/c/src/lib/libbsp/arm/raspberrypi/misc/mailbox.c b/c/src/lib/libbsp/arm/raspberrypi/misc/mailbox.c</blockquote><blockquote class="quoted-plain-text" type="cite">new file mode 100644</blockquote><blockquote class="quoted-plain-text" type="cite">index 0000000..8ec730a</blockquote><blockquote class="quoted-plain-text" type="cite">--- /dev/null</blockquote><blockquote class="quoted-plain-text" type="cite">+++ b/c/src/lib/libbsp/arm/raspberrypi/misc/mailbox.c</blockquote><blockquote class="quoted-plain-text" type="cite">@@ -0,0 +1,56 @@</blockquote><blockquote class="quoted-plain-text" type="cite">+/**</blockquote><blockquote class="quoted-plain-text" type="cite">+ * @file</blockquote><blockquote class="quoted-plain-text" type="cite">+ *</blockquote><blockquote class="quoted-plain-text" type="cite">+ * @ingroup raspberrypi</blockquote><blockquote class="quoted-plain-text" type="cite">+ *</blockquote><blockquote class="quoted-plain-text" type="cite">+ * @brief mailbox support.</blockquote><blockquote class="quoted-plain-text" type="cite">+ */</blockquote><blockquote class="quoted-plain-text" type="cite">+/*</blockquote><blockquote class="quoted-plain-text" type="cite">+ * Copyright (c) 2015 Yang Qiao</blockquote><blockquote class="quoted-plain-text" type="cite">+ *</blockquote><blockquote class="quoted-plain-text" type="cite">+ * The license and distribution terms for this file may be</blockquote><blockquote class="quoted-plain-text" type="cite">+ * found in the file LICENSE in this distribution or at</blockquote><blockquote class="quoted-plain-text" type="cite">+ *</blockquote><blockquote class="quoted-plain-text" type="cite">+ * <a href="http://www.rtems.org/license/LICENSE" data-mce-href="http://www.rtems.org/license/LICENSE">http://www.rtems.org/license/LICENSE</a><div style="width:0px; height:0px;"> </div></blockquote><blockquote class="quoted-plain-text" type="cite">+ *</blockquote><blockquote class="quoted-plain-text" type="cite">+ */</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+#include <stdint.h></blockquote><blockquote class="quoted-plain-text" type="cite">+#include <stdbool.h></blockquote><blockquote class="quoted-plain-text" type="cite">+#include <bsp/raspberrypi.h></blockquote><blockquote class="quoted-plain-text" type="cite">+#include <bsp/mailbox.h></blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_DATA_MASK(data) (data & 0xFFFFFFF0U)</blockquote><blockquote class="quoted-plain-text" type="cite">+#define BCM2835_MBOX_CHANNEL_MASK(data) (data & 0xFU)</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+static inline bool bcm2835_mailbox_is_empty()</blockquote><blockquote class="quoted-plain-text" type="cite">+{</blockquote><blockquote class="quoted-plain-text" type="cite">+ return (BCM2835_REG(BCM2835_MBOX_STATUS) & BCM2835_MBOX_EMPTY);</blockquote><blockquote class="quoted-plain-text" type="cite">+}</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+static inline bool bcm2835_mailbox_is_full()</blockquote><blockquote class="quoted-plain-text" type="cite">+{</blockquote><blockquote class="quoted-plain-text" type="cite">+ return (BCM2835_REG(BCM2835_MBOX_STATUS) & BCM2835_MBOX_FULL);</blockquote><blockquote class="quoted-plain-text" type="cite">+}</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+unsigned int raspberrypi_mailbox_read(unsigned int channel)</blockquote><blockquote class="quoted-plain-text" type="cite">+{</blockquote><blockquote class="quoted-plain-text" type="cite">+ unsigned int raw;</blockquote><blockquote class="quoted-plain-text" type="cite">+ unsigned int read_channel;</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+ while (1){</blockquote><blockquote class="quoted-plain-text" type="cite">+ while (bcm2835_mailbox_is_empty());</blockquote><blockquote class="quoted-plain-text" type="cite">+ raw = BCM2835_REG (BCM2835_MBOX_READ );</blockquote><blockquote class="quoted-plain-text" type="cite">+ read_channel = BCM2835_MBOX_CHANNEL_MASK(raw) ;</blockquote><blockquote class="quoted-plain-text" type="cite">+ if (read_channel == channel)</blockquote><blockquote class="quoted-plain-text" type="cite">+ return BCM2835_MBOX_DATA_MASK(raw);</blockquote><blockquote class="quoted-plain-text" type="cite">+ }</blockquote><blockquote class="quoted-plain-text" type="cite">+}</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">+void raspberrypi_mailbox_write(unsigned int channel, unsigned int data)</blockquote><blockquote class="quoted-plain-text" type="cite">+{</blockquote><blockquote class="quoted-plain-text" type="cite">+ while (bcm2835_mailbox_is_full());</blockquote><blockquote class="quoted-plain-text" type="cite">+ BCM2835_REG(BCM2835_MBOX_WRITE) =</blockquote><blockquote class="quoted-plain-text" type="cite">+ BCM2835_MBOX_DATA_MASK(data) |</blockquote><blockquote class="quoted-plain-text" type="cite">+ BCM2835_MBOX_CHANNEL_MASK(channel);</blockquote><blockquote class="quoted-plain-text" type="cite">+}</blockquote><blockquote class="quoted-plain-text" type="cite">diff --git a/c/src/lib/libbsp/arm/raspberrypi/preinstall.am b/c/src/lib/libbsp/arm/raspberrypi/preinstall.am</blockquote><blockquote class="quoted-plain-text" type="cite">index 122bc00..346e557 100644</blockquote><blockquote class="quoted-plain-text" type="cite">--- a/c/src/lib/libbsp/arm/raspberrypi/preinstall.am</blockquote><blockquote class="quoted-plain-text" type="cite">+++ b/c/src/lib/libbsp/arm/raspberrypi/preinstall.am</blockquote><blockquote class="quoted-plain-text" type="cite">@@ -134,6 +134,10 @@ $(PROJECT_INCLUDE)/bsp/rpi-gpio.h: include/rpi-gpio.h $(PROJECT_INCLUDE)/bsp/$(d</blockquote><blockquote class="quoted-plain-text" type="cite"> $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/rpi-gpio.h</blockquote><blockquote class="quoted-plain-text" type="cite">PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/rpi-gpio.h</blockquote><blockquote class="quoted-plain-text" type="cite"><br></blockquote><blockquote class="quoted-plain-text" type="cite">+$(PROJECT_INCLUDE)/bsp/mailbox.h: include/mailbox.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)</blockquote><blockquote class="quoted-plain-text" type="cite">+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/mailbox.h</blockquote><blockquote class="quoted-plain-text" type="cite">+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/mailbox.h</blockquote><blockquote class="quoted-plain-text" type="cite">+</blockquote><blockquote class="quoted-plain-text" type="cite">$(PROJECT_INCLUDE)/libcpu/cache_.h: ../../../libcpu/arm/shared/include/cache_.h $(PROJECT_INCLUDE)/libcpu/$(dirstamp)</blockquote><blockquote class="quoted-plain-text" type="cite"> $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/libcpu/cache_.h</blockquote><blockquote class="quoted-plain-text" type="cite">PREINSTALL_FILES += $(PROJECT_INCLUDE)/libcpu/cache_.h</blockquote><blockquote class="quoted-plain-text" type="cite"><br></blockquote><span class="body-text-content"><br>-- <br>Joel Sherrill, Ph.D. Director of Research & Development<br><a href="mailto:joel.sherrill@OARcorp.com" data-mce-href="mailto:joel.sherrill@OARcorp.com">joel.sherrill@OARcorp.com</a> On-Line Applications Research<br>Ask me about RTEMS: a free RTOS Huntsville AL 35805<br>Support Available (256) 722-9985<br></span></div></div></blockquote></div></div></body></html>