From 43627a46acfa181bbd7989b3e0c9cdbec49fed86 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 10 Feb 2015 14:45:50 +0000 Subject: [PATCH 1/3] fixed ZWNJ and ZWJ chars input in Qt --- .../widgets/widgets/qwidgetlinecontrol.cpp | 1904 ++++++++++ .../widgets/widgets/qwidgettextcontrol.cpp | 3310 +++++++++++++++++ 2 files changed, 5214 insertions(+) create mode 100644 Telegram/_qt_5_3_1_patch/qtbase/src/widgets/widgets/qwidgetlinecontrol.cpp create mode 100644 Telegram/_qt_5_3_1_patch/qtbase/src/widgets/widgets/qwidgettextcontrol.cpp diff --git a/Telegram/_qt_5_3_1_patch/qtbase/src/widgets/widgets/qwidgetlinecontrol.cpp b/Telegram/_qt_5_3_1_patch/qtbase/src/widgets/widgets/qwidgetlinecontrol.cpp new file mode 100644 index 000000000..b91a92436 --- /dev/null +++ b/Telegram/_qt_5_3_1_patch/qtbase/src/widgets/widgets/qwidgetlinecontrol.cpp @@ -0,0 +1,1904 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtWidgets module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qwidgetlinecontrol_p.h" + +#ifndef QT_NO_LINEEDIT + +#include "qabstractitemview.h" +#include "qclipboard.h" +#include +#include +#include +#ifndef QT_NO_ACCESSIBILITY +#include "qaccessible.h" +#endif + +#include "qapplication.h" +#ifndef QT_NO_GRAPHICSVIEW +#include "qgraphicssceneevent.h" +#endif + +QT_BEGIN_NAMESPACE + + +/*! + \internal + + Updates the internal text layout. Returns the ascent of the + created QTextLine. +*/ +int QWidgetLineControl::redoTextLayout() const +{ + m_textLayout.clearLayout(); + + m_textLayout.beginLayout(); + QTextLine l = m_textLayout.createLine(); + m_textLayout.endLayout(); + +#if defined(Q_WS_MAC) + if (m_threadChecks) + m_textLayoutThread = QThread::currentThread(); +#endif + + return qRound(l.ascent()); +} + +/*! + \internal + + Updates the display text based of the current edit text + If the text has changed will emit displayTextChanged() +*/ +void QWidgetLineControl::updateDisplayText(bool forceUpdate) +{ + QString orig = m_textLayout.text(); + QString str; + if (m_echoMode == QLineEdit::NoEcho) + str = QString::fromLatin1(""); + else + str = m_text; + + if (m_echoMode == QLineEdit::Password) { + str.fill(m_passwordCharacter); + if (m_passwordEchoTimer != 0 && m_cursor > 0 && m_cursor <= m_text.length()) { + int cursor = m_cursor - 1; + QChar uc = m_text.at(cursor); + str[cursor] = uc; + if (cursor > 0 && uc.isLowSurrogate()) { + // second half of a surrogate, check if we have the first half as well, + // if yes restore both at once + uc = m_text.at(cursor - 1); + if (uc.isHighSurrogate()) + str[cursor - 1] = uc; + } + } + } else if (m_echoMode == QLineEdit::PasswordEchoOnEdit && !m_passwordEchoEditing) { + str.fill(m_passwordCharacter); + } + + // replace certain non-printable characters with spaces (to avoid + // drawing boxes when using fonts that don't have glyphs for such + // characters) + QChar* uc = str.data(); + for (int i = 0; i < (int)str.length(); ++i) { + if ((uc[i] < 0x20 && uc[i] != 0x09) + || uc[i] == QChar::LineSeparator + || uc[i] == QChar::ParagraphSeparator + || uc[i] == QChar::ObjectReplacementCharacter) + uc[i] = QChar(0x0020); + } + + m_textLayout.setText(str); + + QTextOption option = m_textLayout.textOption(); + option.setTextDirection(m_layoutDirection); + option.setFlags(QTextOption::IncludeTrailingSpaces); + m_textLayout.setTextOption(option); + + m_ascent = redoTextLayout(); + + if (str != orig || forceUpdate) + emit displayTextChanged(str); +} + +#ifndef QT_NO_CLIPBOARD +/*! + \internal + + Copies the currently selected text into the clipboard using the given + \a mode. + + \note If the echo mode is set to a mode other than Normal then copy + will not work. This is to prevent using copy as a method of bypassing + password features of the line control. +*/ +void QWidgetLineControl::copy(QClipboard::Mode mode) const +{ + QString t = selectedText(); + if (!t.isEmpty() && m_echoMode == QLineEdit::Normal) { + disconnect(QApplication::clipboard(), SIGNAL(selectionChanged()), this, 0); + QApplication::clipboard()->setText(t, mode); + connect(QApplication::clipboard(), SIGNAL(selectionChanged()), + this, SLOT(_q_clipboardChanged())); + } +} + +/*! + \internal + + Inserts the text stored in the application clipboard into the line + control. + + \sa insert() +*/ +void QWidgetLineControl::paste(QClipboard::Mode clipboardMode) +{ + QString clip = QApplication::clipboard()->text(clipboardMode); + if (!clip.isEmpty() || hasSelectedText()) { + separate(); //make it a separate undo/redo command + insert(clip); + separate(); + } +} + +#endif // !QT_NO_CLIPBOARD + +/*! + \internal +*/ +void QWidgetLineControl::commitPreedit() +{ + if (!composeMode()) + return; + + qApp->inputMethod()->commit(); + if (!composeMode()) + return; + + m_preeditCursor = 0; + setPreeditArea(-1, QString()); + m_textLayout.clearAdditionalFormats(); + updateDisplayText(/*force*/ true); +} + + +/*! + \internal + + Handles the behavior for the backspace key or function. + Removes the current selection if there is a selection, otherwise + removes the character prior to the cursor position. + + \sa del() +*/ +void QWidgetLineControl::backspace() +{ + int priorState = m_undoState; + if (hasSelectedText()) { + removeSelectedText(); + } else if (m_cursor) { + --m_cursor; + if (m_maskData) + m_cursor = prevMaskBlank(m_cursor); + QChar uc = m_text.at(m_cursor); + if (m_cursor > 0 && uc.isLowSurrogate()) { + // second half of a surrogate, check if we have the first half as well, + // if yes delete both at once + uc = m_text.at(m_cursor - 1); + if (uc.isHighSurrogate()) { + internalDelete(true); + --m_cursor; + } + } + internalDelete(true); + } + finishChange(priorState); +} + +/*! + \internal + + Handles the behavior for the delete key or function. + Removes the current selection if there is a selection, otherwise + removes the character after the cursor position. + + \sa del() +*/ +void QWidgetLineControl::del() +{ + int priorState = m_undoState; + if (hasSelectedText()) { + removeSelectedText(); + } else { + int n = textLayout()->nextCursorPosition(m_cursor) - m_cursor; + while (n--) + internalDelete(); + } + finishChange(priorState); +} + +/*! + \internal + + Inserts the given \a newText at the current cursor position. + If there is any selected text it is removed prior to insertion of + the new text. +*/ +void QWidgetLineControl::insert(const QString &newText) +{ + int priorState = m_undoState; + removeSelectedText(); + internalInsert(newText); + finishChange(priorState); +} + +/*! + \internal + + Clears the line control text. +*/ +void QWidgetLineControl::clear() +{ + int priorState = m_undoState; + m_selstart = 0; + m_selend = m_text.length(); + removeSelectedText(); + separate(); + finishChange(priorState, /*update*/false, /*edited*/false); +} + +/*! + \internal + + Sets \a length characters from the given \a start position as selected. + The given \a start position must be within the current text for + the line control. If \a length characters cannot be selected, then + the selection will extend to the end of the current text. +*/ +void QWidgetLineControl::setSelection(int start, int length) +{ + commitPreedit(); + + if(start < 0 || start > (int)m_text.length()){ + qWarning("QWidgetLineControl::setSelection: Invalid start position"); + return; + } + + if (length > 0) { + if (start == m_selstart && start + length == m_selend && m_cursor == m_selend) + return; + m_selstart = start; + m_selend = qMin(start + length, (int)m_text.length()); + m_cursor = m_selend; + } else if (length < 0){ + if (start == m_selend && start + length == m_selstart && m_cursor == m_selstart) + return; + m_selstart = qMax(start + length, 0); + m_selend = start; + m_cursor = m_selstart; + } else if (m_selstart != m_selend) { + m_selstart = 0; + m_selend = 0; + m_cursor = start; + } else { + m_cursor = start; + emitCursorPositionChanged(); + return; + } + emit selectionChanged(); + emitCursorPositionChanged(); +} + +void QWidgetLineControl::_q_clipboardChanged() +{ +} + +void QWidgetLineControl::_q_deleteSelected() +{ + if (!hasSelectedText()) + return; + + int priorState = m_undoState; + emit resetInputContext(); + removeSelectedText(); + separate(); + finishChange(priorState); +} + +/*! + \internal + + Initializes the line control with a starting text value of \a txt. +*/ +void QWidgetLineControl::init(const QString &txt) +{ + m_textLayout.setCacheEnabled(true); + m_text = txt; + updateDisplayText(); + m_cursor = m_text.length(); + if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) + m_keyboardScheme = theme->themeHint(QPlatformTheme::KeyboardScheme).toInt(); + // Generalize for X11 + if (m_keyboardScheme == QPlatformTheme::KdeKeyboardScheme + || m_keyboardScheme == QPlatformTheme::GnomeKeyboardScheme + || m_keyboardScheme == QPlatformTheme::CdeKeyboardScheme) { + m_keyboardScheme = QPlatformTheme::X11KeyboardScheme; + } +} + +/*! + \internal + + Sets the password echo editing to \a editing. If password echo editing + is true, then the text of the password is displayed even if the echo + mode is set to QLineEdit::PasswordEchoOnEdit. Password echoing editing + does not affect other echo modes. +*/ +void QWidgetLineControl::updatePasswordEchoEditing(bool editing) +{ + cancelPasswordEchoTimer(); + m_passwordEchoEditing = editing; + updateDisplayText(); +} + +/*! + \internal + + Returns the cursor position of the given \a x pixel value in relation + to the displayed text. The given \a betweenOrOn specified what kind + of cursor position is requested. +*/ +int QWidgetLineControl::xToPos(int x, QTextLine::CursorPosition betweenOrOn) const +{ + return textLayout()->lineAt(0).xToCursor(x, betweenOrOn); +} + +/*! + \internal + + Returns the bounds of the current cursor, as defined as a + between characters cursor. +*/ +QRect QWidgetLineControl::cursorRect() const +{ + QTextLine l = textLayout()->lineAt(0); + int c = m_cursor; + if (m_preeditCursor != -1) + c += m_preeditCursor; + int cix = qRound(l.cursorToX(c)); + int w = m_cursorWidth; + int ch = l.height() + 1; + + return QRect(cix-5, 0, w+9, ch); +} + +/*! + \internal + + Fixes the current text so that it is valid given any set validators. + + Returns \c true if the text was changed. Otherwise returns \c false. +*/ +bool QWidgetLineControl::fixup() // this function assumes that validate currently returns != Acceptable +{ +#ifndef QT_NO_VALIDATOR + if (m_validator) { + QString textCopy = m_text; + int cursorCopy = m_cursor; + m_validator->fixup(textCopy); + if (m_validator->validate(textCopy, cursorCopy) == QValidator::Acceptable) { + if (textCopy != m_text || cursorCopy != m_cursor) + internalSetText(textCopy, cursorCopy, false); + return true; + } + } +#endif + return false; +} + +/*! + \internal + + Moves the cursor to the given position \a pos. If \a mark is true will + adjust the currently selected text. +*/ +void QWidgetLineControl::moveCursor(int pos, bool mark) +{ + commitPreedit(); + + if (pos != m_cursor) { + separate(); + if (m_maskData) + pos = pos > m_cursor ? nextMaskBlank(pos) : prevMaskBlank(pos); + } + if (mark) { + int anchor; + if (m_selend > m_selstart && m_cursor == m_selstart) + anchor = m_selend; + else if (m_selend > m_selstart && m_cursor == m_selend) + anchor = m_selstart; + else + anchor = m_cursor; + m_selstart = qMin(anchor, pos); + m_selend = qMax(anchor, pos); + updateDisplayText(); + } else { + internalDeselect(); + } + m_cursor = pos; + if (mark || m_selDirty) { + m_selDirty = false; + emit selectionChanged(); + } + emitCursorPositionChanged(); +} + +/*! + \internal + + Applies the given input method event \a event to the text of the line + control +*/ +void QWidgetLineControl::processInputMethodEvent(QInputMethodEvent *event) +{ + int priorState = -1; + bool isGettingInput = !event->commitString().isEmpty() + || event->preeditString() != preeditAreaText() + || event->replacementLength() > 0; + bool cursorPositionChanged = false; + bool selectionChange = false; + + if (isGettingInput) { + // If any text is being input, remove selected text. + priorState = m_undoState; + if (echoMode() == QLineEdit::PasswordEchoOnEdit && !passwordEchoEditing()) { + updatePasswordEchoEditing(true); + m_selstart = 0; + m_selend = m_text.length(); + } + removeSelectedText(); + } + + int c = m_cursor; // cursor position after insertion of commit string + if (event->replacementStart() <= 0) + c += event->commitString().length() - qMin(-event->replacementStart(), event->replacementLength()); + + m_cursor += event->replacementStart(); + if (m_cursor < 0) + m_cursor = 0; + + // insert commit string + if (event->replacementLength()) { + m_selstart = m_cursor; + m_selend = m_selstart + event->replacementLength(); + removeSelectedText(); + } + if (!event->commitString().isEmpty()) { + internalInsert(event->commitString()); + cursorPositionChanged = true; + } + + m_cursor = qBound(0, c, m_text.length()); + + for (int i = 0; i < event->attributes().size(); ++i) { + const QInputMethodEvent::Attribute &a = event->attributes().at(i); + if (a.type == QInputMethodEvent::Selection) { + m_cursor = qBound(0, a.start + a.length, m_text.length()); + if (a.length) { + m_selstart = qMax(0, qMin(a.start, m_text.length())); + m_selend = m_cursor; + if (m_selend < m_selstart) { + qSwap(m_selstart, m_selend); + } + selectionChange = true; + } else { + if (m_selstart != m_selend) + selectionChange = true; + m_selstart = m_selend = 0; + } + cursorPositionChanged = true; + } + } +#ifndef QT_NO_IM + setPreeditArea(m_cursor, event->preeditString()); +#endif //QT_NO_IM + const int oldPreeditCursor = m_preeditCursor; + m_preeditCursor = event->preeditString().length(); + m_hideCursor = false; + QList formats; + for (int i = 0; i < event->attributes().size(); ++i) { + const QInputMethodEvent::Attribute &a = event->attributes().at(i); + if (a.type == QInputMethodEvent::Cursor) { + m_preeditCursor = a.start; + m_hideCursor = !a.length; + } else if (a.type == QInputMethodEvent::TextFormat) { + QTextCharFormat f = qvariant_cast(a.value).toCharFormat(); + if (f.isValid()) { + QTextLayout::FormatRange o; + o.start = a.start + m_cursor; + o.length = a.length; + o.format = f; + formats.append(o); + } + } + } + m_textLayout.setAdditionalFormats(formats); + updateDisplayText(/*force*/ true); + if (cursorPositionChanged) + emitCursorPositionChanged(); + else if (m_preeditCursor != oldPreeditCursor) + emit updateMicroFocus(); + + if (isGettingInput) + finishChange(priorState); + + if (selectionChange) + emit selectionChanged(); +} + +/*! + \internal + + Draws the display text for the line control using the given + \a painter, \a clip, and \a offset. Which aspects of the display text + are drawn is specified by the given \a flags. + + If the flags contain DrawSelections, then the selection or input mask + backgrounds and foregrounds will be applied before drawing the text. + + If the flags contain DrawCursor a cursor of the current cursorWidth() + will be drawn after drawing the text. + + The display text will only be drawn if the flags contain DrawText +*/ +void QWidgetLineControl::draw(QPainter *painter, const QPoint &offset, const QRect &clip, int flags) +{ + QVector selections; + if (flags & DrawSelections) { + QTextLayout::FormatRange o; + if (m_selstart < m_selend) { + o.start = m_selstart; + o.length = m_selend - m_selstart; + o.format.setBackground(m_palette.brush(QPalette::Highlight)); + o.format.setForeground(m_palette.brush(QPalette::HighlightedText)); + } else { + // mask selection + if(!m_blinkPeriod || m_blinkStatus){ + o.start = m_cursor; + o.length = 1; + o.format.setBackground(m_palette.brush(QPalette::Text)); + o.format.setForeground(m_palette.brush(QPalette::Window)); + } + } + selections.append(o); + } + + if (flags & DrawText) + textLayout()->draw(painter, offset, selections, clip); + + if (flags & DrawCursor){ + int cursor = m_cursor; + if (m_preeditCursor != -1) + cursor += m_preeditCursor; + if (!m_hideCursor && (!m_blinkPeriod || m_blinkStatus)) + textLayout()->drawCursor(painter, offset, cursor, m_cursorWidth); + } +} + +/*! + \internal + + Sets the selection to cover the word at the given cursor position. + The word boundaries are defined by the behavior of QTextLayout::SkipWords + cursor mode. +*/ +void QWidgetLineControl::selectWordAtPos(int cursor) +{ + int next = cursor + 1; + if(next > end()) + --next; + int c = textLayout()->previousCursorPosition(next, QTextLayout::SkipWords); + moveCursor(c, false); + // ## text layout should support end of words. + int end = textLayout()->nextCursorPosition(c, QTextLayout::SkipWords); + while (end > cursor && m_text[end-1].isSpace()) + --end; + moveCursor(end, true); +} + +/*! + \internal + + Completes a change to the line control text. If the change is not valid + will undo the line control state back to the given \a validateFromState. + + If \a edited is true and the change is valid, will emit textEdited() in + addition to textChanged(). Otherwise only emits textChanged() on a valid + change. + + The \a update value is currently unused. +*/ +bool QWidgetLineControl::finishChange(int validateFromState, bool update, bool edited) +{ + Q_UNUSED(update) + + if (m_textDirty) { + // do validation + bool wasValidInput = m_validInput; + m_validInput = true; +#ifndef QT_NO_VALIDATOR + if (m_validator) { + QString textCopy = m_text; + int cursorCopy = m_cursor; + m_validInput = (m_validator->validate(textCopy, cursorCopy) != QValidator::Invalid); + if (m_validInput) { + if (m_text != textCopy) { + internalSetText(textCopy, cursorCopy, false); + return true; + } + m_cursor = cursorCopy; + } + } +#endif + if (validateFromState >= 0 && wasValidInput && !m_validInput) { + if (m_transactions.count()) + return false; + internalUndo(validateFromState); + m_history.resize(m_undoState); + if (m_modifiedState > m_undoState) + m_modifiedState = -1; + m_validInput = true; + m_textDirty = false; + } + updateDisplayText(); + + if (m_textDirty) { + m_textDirty = false; + QString actualText = text(); + if (edited) + emit textEdited(actualText); + emit textChanged(actualText); + } + } + if (m_selDirty) { + m_selDirty = false; + emit selectionChanged(); + } + if (m_cursor == m_lastCursorPos) + updateMicroFocus(); + emitCursorPositionChanged(); + return true; +} + +/*! + \internal + + An internal function for setting the text of the line control. +*/ +void QWidgetLineControl::internalSetText(const QString &txt, int pos, bool edited) +{ + cancelPasswordEchoTimer(); + internalDeselect(); + emit resetInputContext(); + QString oldText = m_text; + if (m_maskData) { + m_text = maskString(0, txt, true); + m_text += clearString(m_text.length(), m_maxLength - m_text.length()); + } else { + m_text = txt.isEmpty() ? txt : txt.left(m_maxLength); + } + m_history.clear(); + m_modifiedState = m_undoState = 0; + m_cursor = (pos < 0 || pos > m_text.length()) ? m_text.length() : pos; + m_textDirty = (oldText != m_text); + const bool changed = finishChange(-1, true, edited); + +#ifndef QT_NO_ACCESSIBILITY + if (changed) { + if (oldText.isEmpty()) { + QAccessibleTextInsertEvent event(parent(), 0, txt); + event.setCursorPosition(m_cursor); + QAccessible::updateAccessibility(&event); + } else if (txt.isEmpty()) { + QAccessibleTextRemoveEvent event(parent(), 0, oldText); + event.setCursorPosition(m_cursor); + QAccessible::updateAccessibility(&event); + } else { + QAccessibleTextUpdateEvent event(parent(), 0, oldText, txt); + event.setCursorPosition(m_cursor); + QAccessible::updateAccessibility(&event); + } + } +#else + Q_UNUSED(changed) +#endif +} + + +/*! + \internal + + Adds the given \a command to the undo history + of the line control. Does not apply the command. +*/ +void QWidgetLineControl::addCommand(const Command &cmd) +{ + if (m_separator && m_undoState && m_history[m_undoState - 1].type != Separator) { + m_history.resize(m_undoState + 2); + m_history[m_undoState++] = Command(Separator, m_cursor, 0, m_selstart, m_selend); + } else { + m_history.resize(m_undoState + 1); + } + m_separator = false; + m_history[m_undoState++] = cmd; +} + +/*! + \internal + + Inserts the given string \a s into the line + control. + + Also adds the appropriate commands into the undo history. + This function does not call finishChange(), and may leave the text + in an invalid state. +*/ +void QWidgetLineControl::internalInsert(const QString &s) +{ + if (m_echoMode == QLineEdit::Password) { + if (m_passwordEchoTimer != 0) + killTimer(m_passwordEchoTimer); + int delay = qGuiApp->styleHints()->passwordMaskDelay(); +#ifdef QT_BUILD_INTERNAL + if (m_passwordMaskDelayOverride >= 0) + delay = m_passwordMaskDelayOverride; +#endif + + if (delay > 0) + m_passwordEchoTimer = startTimer(delay); + } + if (hasSelectedText()) + addCommand(Command(SetSelection, m_cursor, 0, m_selstart, m_selend)); + if (m_maskData) { + QString ms = maskString(m_cursor, s); +#ifndef QT_NO_ACCESSIBILITY + QAccessibleTextInsertEvent insertEvent(parent(), m_cursor, ms); + QAccessible::updateAccessibility(&insertEvent); +#endif + for (int i = 0; i < (int) ms.length(); ++i) { + addCommand (Command(DeleteSelection, m_cursor + i, m_text.at(m_cursor + i), -1, -1)); + addCommand(Command(Insert, m_cursor + i, ms.at(i), -1, -1)); + } + m_text.replace(m_cursor, ms.length(), ms); + m_cursor += ms.length(); + m_cursor = nextMaskBlank(m_cursor); + m_textDirty = true; +#ifndef QT_NO_ACCESSIBILITY + QAccessibleTextCursorEvent event(parent(), m_cursor); + QAccessible::updateAccessibility(&event); +#endif + } else { + int remaining = m_maxLength - m_text.length(); + if (remaining != 0) { +#ifndef QT_NO_ACCESSIBILITY + QAccessibleTextInsertEvent insertEvent(parent(), m_cursor, s); + QAccessible::updateAccessibility(&insertEvent); +#endif + m_text.insert(m_cursor, s.left(remaining)); + for (int i = 0; i < (int) s.left(remaining).length(); ++i) + addCommand(Command(Insert, m_cursor++, s.at(i), -1, -1)); + m_textDirty = true; + } + } +} + +/*! + \internal + + deletes a single character from the current text. If \a wasBackspace, + the character prior to the cursor is removed. Otherwise the character + after the cursor is removed. + + Also adds the appropriate commands into the undo history. + This function does not call finishChange(), and may leave the text + in an invalid state. +*/ +void QWidgetLineControl::internalDelete(bool wasBackspace) +{ + if (m_cursor < (int) m_text.length()) { + cancelPasswordEchoTimer(); + if (hasSelectedText()) + addCommand(Command(SetSelection, m_cursor, 0, m_selstart, m_selend)); + addCommand(Command((CommandType)((m_maskData ? 2 : 0) + (wasBackspace ? Remove : Delete)), + m_cursor, m_text.at(m_cursor), -1, -1)); +#ifndef QT_NO_ACCESSIBILITY + QAccessibleTextRemoveEvent event(parent(), m_cursor, m_text.at(m_cursor)); + QAccessible::updateAccessibility(&event); +#endif + if (m_maskData) { + m_text.replace(m_cursor, 1, clearString(m_cursor, 1)); + addCommand(Command(Insert, m_cursor, m_text.at(m_cursor), -1, -1)); + } else { + m_text.remove(m_cursor, 1); + } + m_textDirty = true; + } +} + +/*! + \internal + + removes the currently selected text from the line control. + + Also adds the appropriate commands into the undo history. + This function does not call finishChange(), and may leave the text + in an invalid state. +*/ +void QWidgetLineControl::removeSelectedText() +{ + if (m_selstart < m_selend && m_selend <= (int) m_text.length()) { + cancelPasswordEchoTimer(); + separate(); + int i ; + addCommand(Command(SetSelection, m_cursor, 0, m_selstart, m_selend)); + if (m_selstart <= m_cursor && m_cursor < m_selend) { + // cursor is within the selection. Split up the commands + // to be able to restore the correct cursor position + for (i = m_cursor; i >= m_selstart; --i) + addCommand (Command(DeleteSelection, i, m_text.at(i), -1, 1)); + for (i = m_selend - 1; i > m_cursor; --i) + addCommand (Command(DeleteSelection, i - m_cursor + m_selstart - 1, m_text.at(i), -1, -1)); + } else { + for (i = m_selend-1; i >= m_selstart; --i) + addCommand (Command(RemoveSelection, i, m_text.at(i), -1, -1)); + } +#ifndef QT_NO_ACCESSIBILITY + QAccessibleTextRemoveEvent event(parent(), m_selstart, m_text.mid(m_selstart, m_selend - m_selstart)); + QAccessible::updateAccessibility(&event); +#endif + if (m_maskData) { + m_text.replace(m_selstart, m_selend - m_selstart, clearString(m_selstart, m_selend - m_selstart)); + for (int i = 0; i < m_selend - m_selstart; ++i) + addCommand(Command(Insert, m_selstart + i, m_text.at(m_selstart + i), -1, -1)); + } else { + m_text.remove(m_selstart, m_selend - m_selstart); + } + if (m_cursor > m_selstart) + m_cursor -= qMin(m_cursor, m_selend) - m_selstart; + internalDeselect(); + m_textDirty = true; + } +} + +/*! + \internal + + Parses the input mask specified by \a maskFields to generate + the mask data used to handle input masks. +*/ +void QWidgetLineControl::parseInputMask(const QString &maskFields) +{ + int delimiter = maskFields.indexOf(QLatin1Char(';')); + if (maskFields.isEmpty() || delimiter == 0) { + if (m_maskData) { + delete [] m_maskData; + m_maskData = 0; + m_maxLength = 32767; + internalSetText(QString()); + } + return; + } + + if (delimiter == -1) { + m_blank = QLatin1Char(' '); + m_inputMask = maskFields; + } else { + m_inputMask = maskFields.left(delimiter); + m_blank = (delimiter + 1 < maskFields.length()) ? maskFields[delimiter + 1] : QLatin1Char(' '); + } + + // calculate m_maxLength / m_maskData length + m_maxLength = 0; + QChar c = 0; + for (int i=0; i 0 && m_inputMask.at(i-1) == QLatin1Char('\\')) { + m_maxLength++; + continue; + } + if (c != QLatin1Char('\\') && c != QLatin1Char('!') && + c != QLatin1Char('<') && c != QLatin1Char('>') && + c != QLatin1Char('{') && c != QLatin1Char('}') && + c != QLatin1Char('[') && c != QLatin1Char(']')) + m_maxLength++; + } + + delete [] m_maskData; + m_maskData = new MaskInputData[m_maxLength]; + + MaskInputData::Casemode m = MaskInputData::NoCaseMode; + c = 0; + bool s; + bool escape = false; + int index = 0; + for (int i = 0; i < m_inputMask.length(); i++) { + c = m_inputMask.at(i); + if (escape) { + s = true; + m_maskData[index].maskChar = c; + m_maskData[index].separator = s; + m_maskData[index].caseMode = m; + index++; + escape = false; + } else if (c == QLatin1Char('<')) { + m = MaskInputData::Lower; + } else if (c == QLatin1Char('>')) { + m = MaskInputData::Upper; + } else if (c == QLatin1Char('!')) { + m = MaskInputData::NoCaseMode; + } else if (c != QLatin1Char('{') && c != QLatin1Char('}') && c != QLatin1Char('[') && c != QLatin1Char(']')) { + switch (c.unicode()) { + case 'A': + case 'a': + case 'N': + case 'n': + case 'X': + case 'x': + case '9': + case '0': + case 'D': + case 'd': + case '#': + case 'H': + case 'h': + case 'B': + case 'b': + s = false; + break; + case '\\': + escape = true; + default: + s = true; + break; + } + + if (!escape) { + m_maskData[index].maskChar = c; + m_maskData[index].separator = s; + m_maskData[index].caseMode = m; + index++; + } + } + } + internalSetText(m_text); +} + + +/*! + \internal + + checks if the key is valid compared to the inputMask +*/ +bool QWidgetLineControl::isValidInput(QChar key, QChar mask) const +{ + switch (mask.unicode()) { + case 'A': + if (key.isLetter()) + return true; + break; + case 'a': + if (key.isLetter() || key == m_blank) + return true; + break; + case 'N': + if (key.isLetterOrNumber()) + return true; + break; + case 'n': + if (key.isLetterOrNumber() || key == m_blank) + return true; + break; + case 'X': + if (key.isPrint()) + return true; + break; + case 'x': + if (key.isPrint() || key == m_blank) + return true; + break; + case '9': + if (key.isNumber()) + return true; + break; + case '0': + if (key.isNumber() || key == m_blank) + return true; + break; + case 'D': + if (key.isNumber() && key.digitValue() > 0) + return true; + break; + case 'd': + if ((key.isNumber() && key.digitValue() > 0) || key == m_blank) + return true; + break; + case '#': + if (key.isNumber() || key == QLatin1Char('+') || key == QLatin1Char('-') || key == m_blank) + return true; + break; + case 'B': + if (key == QLatin1Char('0') || key == QLatin1Char('1')) + return true; + break; + case 'b': + if (key == QLatin1Char('0') || key == QLatin1Char('1') || key == m_blank) + return true; + break; + case 'H': + if (key.isNumber() || (key >= QLatin1Char('a') && key <= QLatin1Char('f')) || (key >= QLatin1Char('A') && key <= QLatin1Char('F'))) + return true; + break; + case 'h': + if (key.isNumber() || (key >= QLatin1Char('a') && key <= QLatin1Char('f')) || (key >= QLatin1Char('A') && key <= QLatin1Char('F')) || key == m_blank) + return true; + break; + default: + break; + } + return false; +} + +/*! + \internal + + Returns \c true if the given text \a str is valid for any + validator or input mask set for the line control. + + Otherwise returns \c false +*/ +bool QWidgetLineControl::hasAcceptableInput(const QString &str) const +{ +#ifndef QT_NO_VALIDATOR + QString textCopy = str; + int cursorCopy = m_cursor; + if (m_validator && m_validator->validate(textCopy, cursorCopy) + != QValidator::Acceptable) + return false; +#endif + + if (!m_maskData) + return true; + + if (str.length() != m_maxLength) + return false; + + for (int i=0; i < m_maxLength; ++i) { + if (m_maskData[i].separator) { + if (str.at(i) != m_maskData[i].maskChar) + return false; + } else { + if (!isValidInput(str.at(i), m_maskData[i].maskChar)) + return false; + } + } + return true; +} + +/*! + \internal + + Applies the inputMask on \a str starting from position \a pos in the mask. \a clear + specifies from where characters should be gotten when a separator is met in \a str - true means + that blanks will be used, false that previous input is used. + Calling this when no inputMask is set is undefined. +*/ +QString QWidgetLineControl::maskString(uint pos, const QString &str, bool clear) const +{ + if (pos >= (uint)m_maxLength) + return QString::fromLatin1(""); + + QString fill; + fill = clear ? clearString(0, m_maxLength) : m_text; + + int strIndex = 0; + QString s = QString::fromLatin1(""); + int i = pos; + while (i < m_maxLength) { + if (strIndex < str.length()) { + if (m_maskData[i].separator) { + s += m_maskData[i].maskChar; + if (str[(int)strIndex] == m_maskData[i].maskChar) + strIndex++; + ++i; + } else { + if (isValidInput(str[(int)strIndex], m_maskData[i].maskChar)) { + switch (m_maskData[i].caseMode) { + case MaskInputData::Upper: + s += str[(int)strIndex].toUpper(); + break; + case MaskInputData::Lower: + s += str[(int)strIndex].toLower(); + break; + default: + s += str[(int)strIndex]; + } + ++i; + } else { + // search for separator first + int n = findInMask(i, true, true, str[(int)strIndex]); + if (n != -1) { + if (str.length() != 1 || i == 0 || (i > 0 && (!m_maskData[i-1].separator || m_maskData[i-1].maskChar != str[(int)strIndex]))) { + s += fill.mid(i, n-i+1); + i = n + 1; // update i to find + 1 + } + } else { + // search for valid m_blank if not + n = findInMask(i, true, false, str[(int)strIndex]); + if (n != -1) { + s += fill.mid(i, n-i); + switch (m_maskData[n].caseMode) { + case MaskInputData::Upper: + s += str[(int)strIndex].toUpper(); + break; + case MaskInputData::Lower: + s += str[(int)strIndex].toLower(); + break; + default: + s += str[(int)strIndex]; + } + i = n + 1; // updates i to find + 1 + } + } + } + ++strIndex; + } + } else + break; + } + + return s; +} + + + +/*! + \internal + + Returns a "cleared" string with only separators and blank chars. + Calling this when no inputMask is set is undefined. +*/ +QString QWidgetLineControl::clearString(uint pos, uint len) const +{ + if (pos >= (uint)m_maxLength) + return QString(); + + QString s; + int end = qMin((uint)m_maxLength, pos + len); + for (int i = pos; i < end; ++i) + if (m_maskData[i].separator) + s += m_maskData[i].maskChar; + else + s += m_blank; + + return s; +} + +/*! + \internal + + Strips blank parts of the input in a QWidgetLineControl when an inputMask is set, + separators are still included. Typically "127.0__.0__.1__" becomes "127.0.0.1". +*/ +QString QWidgetLineControl::stripString(const QString &str) const +{ + if (!m_maskData) + return str; + + QString s; + int end = qMin(m_maxLength, (int)str.length()); + for (int i = 0; i < end; ++i) + if (m_maskData[i].separator) + s += m_maskData[i].maskChar; + else + if (str[i] != m_blank) + s += str[i]; + + return s; +} + +/*! + \internal + searches forward/backward in m_maskData for either a separator or a m_blank +*/ +int QWidgetLineControl::findInMask(int pos, bool forward, bool findSeparator, QChar searchChar) const +{ + if (pos >= m_maxLength || pos < 0) + return -1; + + int end = forward ? m_maxLength : -1; + int step = forward ? 1 : -1; + int i = pos; + + while (i != end) { + if (findSeparator) { + if (m_maskData[i].separator && m_maskData[i].maskChar == searchChar) + return i; + } else { + if (!m_maskData[i].separator) { + if (searchChar.isNull()) + return i; + else if (isValidInput(searchChar, m_maskData[i].maskChar)) + return i; + } + } + i += step; + } + return -1; +} + +void QWidgetLineControl::internalUndo(int until) +{ + if (!isUndoAvailable()) + return; + cancelPasswordEchoTimer(); + internalDeselect(); + + // Undo works only for clearing the line when in any of password the modes + if (m_echoMode != QLineEdit::Normal) { + clear(); + return; + } + + while (m_undoState && m_undoState > until) { + Command& cmd = m_history[--m_undoState]; + switch (cmd.type) { + case Insert: + m_text.remove(cmd.pos, 1); + m_cursor = cmd.pos; + break; + case SetSelection: + m_selstart = cmd.selStart; + m_selend = cmd.selEnd; + m_cursor = cmd.pos; + break; + case Remove: + case RemoveSelection: + m_text.insert(cmd.pos, cmd.uc); + m_cursor = cmd.pos + 1; + break; + case Delete: + case DeleteSelection: + m_text.insert(cmd.pos, cmd.uc); + m_cursor = cmd.pos; + break; + case Separator: + continue; + } + if (until < 0 && m_undoState) { + Command& next = m_history[m_undoState-1]; + if (next.type != cmd.type && next.type < RemoveSelection + && (cmd.type < RemoveSelection || next.type == Separator)) + break; + } + } + m_textDirty = true; + emitCursorPositionChanged(); +} + +void QWidgetLineControl::internalRedo() +{ + if (!isRedoAvailable()) + return; + internalDeselect(); + while (m_undoState < (int)m_history.size()) { + Command& cmd = m_history[m_undoState++]; + switch (cmd.type) { + case Insert: + m_text.insert(cmd.pos, cmd.uc); + m_cursor = cmd.pos + 1; + break; + case SetSelection: + m_selstart = cmd.selStart; + m_selend = cmd.selEnd; + m_cursor = cmd.pos; + break; + case Remove: + case Delete: + case RemoveSelection: + case DeleteSelection: + m_text.remove(cmd.pos, 1); + m_selstart = cmd.selStart; + m_selend = cmd.selEnd; + m_cursor = cmd.pos; + break; + case Separator: + m_selstart = cmd.selStart; + m_selend = cmd.selEnd; + m_cursor = cmd.pos; + break; + } + if (m_undoState < (int)m_history.size()) { + Command& next = m_history[m_undoState]; + if (next.type != cmd.type && cmd.type < RemoveSelection && next.type != Separator + && (next.type < RemoveSelection || cmd.type == Separator)) + break; + } + } + m_textDirty = true; + emitCursorPositionChanged(); +} + +/*! + \internal + + If the current cursor position differs from the last emitted cursor + position, emits cursorPositionChanged(). +*/ +void QWidgetLineControl::emitCursorPositionChanged() +{ + if (m_cursor != m_lastCursorPos) { + const int oldLast = m_lastCursorPos; + m_lastCursorPos = m_cursor; + cursorPositionChanged(oldLast, m_cursor); +#ifndef QT_NO_ACCESSIBILITY + // otherwise we send a selection update which includes the cursor + if (!hasSelectedText()) { + QAccessibleTextCursorEvent event(parent(), m_cursor); + QAccessible::updateAccessibility(&event); + } +#endif + } +} + +#ifndef QT_NO_COMPLETER +// iterating forward(dir=1)/backward(dir=-1) from the +// current row based. dir=0 indicates a new completion prefix was set. +bool QWidgetLineControl::advanceToEnabledItem(int dir) +{ + int start = m_completer->currentRow(); + if (start == -1) + return false; + int i = start + dir; + if (dir == 0) dir = 1; + do { + if (!m_completer->setCurrentRow(i)) { + if (!m_completer->wrapAround()) + break; + i = i > 0 ? 0 : m_completer->completionCount() - 1; + } else { + QModelIndex currentIndex = m_completer->currentIndex(); + if (m_completer->completionModel()->flags(currentIndex) & Qt::ItemIsEnabled) + return true; + i += dir; + } + } while (i != start); + + m_completer->setCurrentRow(start); // restore + return false; +} + +void QWidgetLineControl::complete(int key) +{ + if (!m_completer || isReadOnly() || echoMode() != QLineEdit::Normal) + return; + + QString text = this->text(); + if (m_completer->completionMode() == QCompleter::InlineCompletion) { + if (key == Qt::Key_Backspace) + return; + int n = 0; + if (key == Qt::Key_Up || key == Qt::Key_Down) { + if (textAfterSelection().length()) + return; + QString prefix = hasSelectedText() ? textBeforeSelection() + : text; + if (text.compare(m_completer->currentCompletion(), m_completer->caseSensitivity()) != 0 + || prefix.compare(m_completer->completionPrefix(), m_completer->caseSensitivity()) != 0) { + m_completer->setCompletionPrefix(prefix); + } else { + n = (key == Qt::Key_Up) ? -1 : +1; + } + } else { + m_completer->setCompletionPrefix(text); + } + if (!advanceToEnabledItem(n)) + return; + } else { +#ifndef QT_KEYPAD_NAVIGATION + if (text.isEmpty()) { + m_completer->popup()->hide(); + return; + } +#endif + m_completer->setCompletionPrefix(text); + } + + m_completer->complete(); +} +#endif + +void QWidgetLineControl::setReadOnly(bool enable) +{ + m_readOnly = enable; + if (enable) + setCursorBlinkPeriod(0); + else + setCursorBlinkPeriod(QApplication::cursorFlashTime()); +} + +void QWidgetLineControl::setCursorBlinkPeriod(int msec) +{ + if (msec == m_blinkPeriod) + return; + if (m_blinkTimer) { + killTimer(m_blinkTimer); + } + if (msec && !m_readOnly) { + m_blinkTimer = startTimer(msec / 2); + m_blinkStatus = 1; + } else { + m_blinkTimer = 0; + if (m_blinkStatus == 1) + emit updateNeeded(inputMask().isEmpty() ? cursorRect() : QRect()); + } + m_blinkPeriod = msec; +} + +// This is still used by QDeclarativeTextInput in the qtquick1 repo +void QWidgetLineControl::resetCursorBlinkTimer() +{ + if (m_blinkPeriod == 0 || m_blinkTimer == 0) + return; + killTimer(m_blinkTimer); + m_blinkTimer = startTimer(m_blinkPeriod / 2); + m_blinkStatus = 1; +} + +void QWidgetLineControl::timerEvent(QTimerEvent *event) +{ + if (event->timerId() == m_blinkTimer) { + m_blinkStatus = !m_blinkStatus; + emit updateNeeded(inputMask().isEmpty() ? cursorRect() : QRect()); + } else if (event->timerId() == m_deleteAllTimer) { + killTimer(m_deleteAllTimer); + m_deleteAllTimer = 0; + clear(); + } else if (event->timerId() == m_tripleClickTimer) { + killTimer(m_tripleClickTimer); + m_tripleClickTimer = 0; + } else if (event->timerId() == m_passwordEchoTimer) { + killTimer(m_passwordEchoTimer); + m_passwordEchoTimer = 0; + updateDisplayText(); + } +} + +#ifndef QT_NO_SHORTCUT +void QWidgetLineControl::processShortcutOverrideEvent(QKeyEvent *ke) +{ + if (isReadOnly()) + return; + + if (ke == QKeySequence::Copy + || ke == QKeySequence::Paste + || ke == QKeySequence::Cut + || ke == QKeySequence::Redo + || ke == QKeySequence::Undo + || ke == QKeySequence::MoveToNextWord + || ke == QKeySequence::MoveToPreviousWord + || ke == QKeySequence::MoveToEndOfLine + || ke == QKeySequence::MoveToStartOfDocument + || ke == QKeySequence::MoveToEndOfDocument + || ke == QKeySequence::SelectNextWord + || ke == QKeySequence::SelectPreviousWord + || ke == QKeySequence::SelectStartOfLine + || ke == QKeySequence::SelectEndOfLine + || ke == QKeySequence::SelectStartOfBlock + || ke == QKeySequence::SelectEndOfBlock + || ke == QKeySequence::SelectStartOfDocument + || ke == QKeySequence::SelectAll + || ke == QKeySequence::SelectEndOfDocument + || ke == QKeySequence::DeleteCompleteLine) { + ke->accept(); + } else if (ke->modifiers() == Qt::NoModifier || ke->modifiers() == Qt::ShiftModifier + || ke->modifiers() == Qt::KeypadModifier) { + if (ke->key() < Qt::Key_Escape) { + ke->accept(); + } else { + switch (ke->key()) { + case Qt::Key_Delete: + case Qt::Key_Home: + case Qt::Key_End: + case Qt::Key_Backspace: + case Qt::Key_Left: + case Qt::Key_Right: + ke->accept(); + default: + break; + } + } + } +} +#endif + +void QWidgetLineControl::processKeyEvent(QKeyEvent* event) +{ + bool inlineCompletionAccepted = false; + +#ifndef QT_NO_COMPLETER + if (m_completer) { + QCompleter::CompletionMode completionMode = m_completer->completionMode(); + if ((completionMode == QCompleter::PopupCompletion + || completionMode == QCompleter::UnfilteredPopupCompletion) + && m_completer->popup() + && m_completer->popup()->isVisible()) { + // The following keys are forwarded by the completer to the widget + // Ignoring the events lets the completer provide suitable default behavior + switch (event->key()) { + case Qt::Key_Escape: + event->ignore(); + return; + case Qt::Key_Enter: + case Qt::Key_Return: + case Qt::Key_F4: +#ifdef QT_KEYPAD_NAVIGATION + case Qt::Key_Select: + if (!QApplication::keypadNavigationEnabled()) + break; +#endif + m_completer->popup()->hide(); // just hide. will end up propagating to parent + default: + break; // normal key processing + } + } else if (completionMode == QCompleter::InlineCompletion) { + switch (event->key()) { + case Qt::Key_Enter: + case Qt::Key_Return: + case Qt::Key_F4: +#ifdef QT_KEYPAD_NAVIGATION + case Qt::Key_Select: + if (!QApplication::keypadNavigationEnabled()) + break; +#endif + if (!m_completer->currentCompletion().isEmpty() && hasSelectedText() + && textAfterSelection().isEmpty()) { + setText(m_completer->currentCompletion()); + inlineCompletionAccepted = true; + } + default: + break; // normal key processing + } + } + } +#endif // QT_NO_COMPLETER + + if (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return) { + if (hasAcceptableInput() || fixup()) { + emit accepted(); + emit editingFinished(); + } + if (inlineCompletionAccepted) + event->accept(); + else + event->ignore(); + return; + } + + if (echoMode() == QLineEdit::PasswordEchoOnEdit + && !passwordEchoEditing() + && !isReadOnly() + && !event->text().isEmpty() +#ifdef QT_KEYPAD_NAVIGATION + && event->key() != Qt::Key_Select + && event->key() != Qt::Key_Up + && event->key() != Qt::Key_Down + && event->key() != Qt::Key_Back +#endif + && !(event->modifiers() & Qt::ControlModifier)) { + // Clear the edit and reset to normal echo mode while editing; the + // echo mode switches back when the edit loses focus + // ### resets current content. dubious code; you can + // navigate with keys up, down, back, and select(?), but if you press + // "left" or "right" it clears? + updatePasswordEchoEditing(true); + clear(); + } + + bool unknown = false; + bool visual = cursorMoveStyle() == Qt::VisualMoveStyle; + + if (false) { + } +#ifndef QT_NO_SHORTCUT + else if (event == QKeySequence::Undo) { + if (!isReadOnly()) + undo(); + } + else if (event == QKeySequence::Redo) { + if (!isReadOnly()) + redo(); + } + else if (event == QKeySequence::SelectAll) { + selectAll(); + } +#ifndef QT_NO_CLIPBOARD + else if (event == QKeySequence::Copy) { + copy(); + } + else if (event == QKeySequence::Paste) { + if (!isReadOnly()) { + QClipboard::Mode mode = QClipboard::Clipboard; + if (m_keyboardScheme == QPlatformTheme::X11KeyboardScheme + && event->modifiers() == (Qt::CTRL | Qt::SHIFT) + && event->key() == Qt::Key_Insert) { + mode = QClipboard::Selection; + } + paste(mode); + } + } + else if (event == QKeySequence::Cut) { + if (!isReadOnly()) { + copy(); + del(); + } + } + else if (event == QKeySequence::DeleteEndOfLine) { + if (!isReadOnly()) { + setSelection(cursor(), end()); + copy(); + del(); + } + } +#endif //QT_NO_CLIPBOARD + else if (event == QKeySequence::MoveToStartOfLine || event == QKeySequence::MoveToStartOfBlock) { + home(0); + } + else if (event == QKeySequence::MoveToEndOfLine || event == QKeySequence::MoveToEndOfBlock) { + end(0); + } + else if (event == QKeySequence::SelectStartOfLine || event == QKeySequence::SelectStartOfBlock) { + home(1); + } + else if (event == QKeySequence::SelectEndOfLine || event == QKeySequence::SelectEndOfBlock) { + end(1); + } + else if (event == QKeySequence::MoveToNextChar) { +#if defined(QT_NO_COMPLETER) + const bool inlineCompletion = false; +#else + const bool inlineCompletion = m_completer && m_completer->completionMode() == QCompleter::InlineCompletion; +#endif + if (hasSelectedText() + && (m_keyboardScheme != QPlatformTheme::WindowsKeyboardScheme + || inlineCompletion)) { + moveCursor(selectionEnd(), false); + } else { + cursorForward(0, visual ? 1 : (layoutDirection() == Qt::LeftToRight ? 1 : -1)); + } + } + else if (event == QKeySequence::SelectNextChar) { + cursorForward(1, visual ? 1 : (layoutDirection() == Qt::LeftToRight ? 1 : -1)); + } + else if (event == QKeySequence::MoveToPreviousChar) { +#if defined(QT_NO_COMPLETER) + const bool inlineCompletion = false; +#else + const bool inlineCompletion = m_completer && m_completer->completionMode() == QCompleter::InlineCompletion; +#endif + if (hasSelectedText() + && (m_keyboardScheme != QPlatformTheme::WindowsKeyboardScheme + || inlineCompletion)) { + moveCursor(selectionStart(), false); + } else { + cursorForward(0, visual ? -1 : (layoutDirection() == Qt::LeftToRight ? -1 : 1)); + } + } + else if (event == QKeySequence::SelectPreviousChar) { + cursorForward(1, visual ? -1 : (layoutDirection() == Qt::LeftToRight ? -1 : 1)); + } + else if (event == QKeySequence::MoveToNextWord) { + if (echoMode() == QLineEdit::Normal) + layoutDirection() == Qt::LeftToRight ? cursorWordForward(0) : cursorWordBackward(0); + else + layoutDirection() == Qt::LeftToRight ? end(0) : home(0); + } + else if (event == QKeySequence::MoveToPreviousWord) { + if (echoMode() == QLineEdit::Normal) + layoutDirection() == Qt::LeftToRight ? cursorWordBackward(0) : cursorWordForward(0); + else if (!isReadOnly()) { + layoutDirection() == Qt::LeftToRight ? home(0) : end(0); + } + } + else if (event == QKeySequence::SelectNextWord) { + if (echoMode() == QLineEdit::Normal) + layoutDirection() == Qt::LeftToRight ? cursorWordForward(1) : cursorWordBackward(1); + else + layoutDirection() == Qt::LeftToRight ? end(1) : home(1); + } + else if (event == QKeySequence::SelectPreviousWord) { + if (echoMode() == QLineEdit::Normal) + layoutDirection() == Qt::LeftToRight ? cursorWordBackward(1) : cursorWordForward(1); + else + layoutDirection() == Qt::LeftToRight ? home(1) : end(1); + } + else if (event == QKeySequence::Delete) { + if (!isReadOnly()) + del(); + } + else if (event == QKeySequence::DeleteEndOfWord) { + if (!isReadOnly()) { + cursorWordForward(true); + del(); + } + } + else if (event == QKeySequence::DeleteStartOfWord) { + if (!isReadOnly()) { + cursorWordBackward(true); + del(); + } + } else if (event == QKeySequence::DeleteCompleteLine) { + if (!isReadOnly()) { + setSelection(0, text().size()); +#ifndef QT_NO_CLIPBOARD + copy(); +#endif + del(); + } + } +#endif // QT_NO_SHORTCUT + else { + bool handled = false; + if (m_keyboardScheme == QPlatformTheme::MacKeyboardScheme + && (event->key() == Qt::Key_Up || event->key() == Qt::Key_Down)) { + Qt::KeyboardModifiers myModifiers = (event->modifiers() & ~Qt::KeypadModifier); + if (myModifiers & Qt::ShiftModifier) { + if (myModifiers == (Qt::ControlModifier|Qt::ShiftModifier) + || myModifiers == (Qt::AltModifier|Qt::ShiftModifier) + || myModifiers == Qt::ShiftModifier) { + + event->key() == Qt::Key_Up ? home(1) : end(1); + } + } else { + if ((myModifiers == Qt::ControlModifier + || myModifiers == Qt::AltModifier + || myModifiers == Qt::NoModifier)) { + event->key() == Qt::Key_Up ? home(0) : end(0); + } + } + handled = true; + } + if (event->modifiers() & Qt::ControlModifier) { + switch (event->key()) { + case Qt::Key_Backspace: + if (!isReadOnly()) { + cursorWordBackward(true); + del(); + } + break; +#ifndef QT_NO_COMPLETER + case Qt::Key_Up: + case Qt::Key_Down: + complete(event->key()); + break; +#endif + default: + if (!handled) + unknown = true; + } + } else { // ### check for *no* modifier + switch (event->key()) { + case Qt::Key_Backspace: + if (!isReadOnly()) { + backspace(); +#ifndef QT_NO_COMPLETER + complete(Qt::Key_Backspace); +#endif + } + break; +#ifdef QT_KEYPAD_NAVIGATION + case Qt::Key_Back: + if (QApplication::keypadNavigationEnabled() && !event->isAutoRepeat() + && !isReadOnly()) { + if (text().length() == 0) { + setText(m_cancelText); + + if (passwordEchoEditing()) + updatePasswordEchoEditing(false); + + emit editFocusChange(false); + } else if (!m_deleteAllTimer) { + m_deleteAllTimer = startTimer(750); + } + } else { + unknown = true; + } + break; +#endif + default: + if (!handled) + unknown = true; + } + } + } + + if (event->key() == Qt::Key_Direction_L || event->key() == Qt::Key_Direction_R) { + setLayoutDirection((event->key() == Qt::Key_Direction_L) ? Qt::LeftToRight : Qt::RightToLeft); + unknown = false; + } + + if (unknown && !isReadOnly()) { + QString t = event->text(); + if (!t.isEmpty() && (t.at(0).isPrint() || t.at(0).unicode() == 0x200C || t.at(0).unicode() == 0x200D)) { + insert(t); +#ifndef QT_NO_COMPLETER + complete(event->key()); +#endif + event->accept(); + return; + } + } + + if (unknown) + event->ignore(); + else + event->accept(); +} + +bool QWidgetLineControl::isUndoAvailable() const +{ + // For security reasons undo is not available in any password mode (NoEcho included) + // with the exception that the user can clear the password with undo. + return !m_readOnly && m_undoState + && (m_echoMode == QLineEdit::Normal || m_history[m_undoState - 1].type == QWidgetLineControl::Insert); +} + +bool QWidgetLineControl::isRedoAvailable() const +{ + // Same as with undo. Disabled for password modes. + return !m_readOnly + && m_echoMode == QLineEdit::Normal + && m_undoState < m_history.size(); +} + +QT_END_NAMESPACE + +#endif diff --git a/Telegram/_qt_5_3_1_patch/qtbase/src/widgets/widgets/qwidgettextcontrol.cpp b/Telegram/_qt_5_3_1_patch/qtbase/src/widgets/widgets/qwidgettextcontrol.cpp new file mode 100644 index 000000000..e6a8a6e4c --- /dev/null +++ b/Telegram/_qt_5_3_1_patch/qtbase/src/widgets/widgets/qwidgettextcontrol.cpp @@ -0,0 +1,3310 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtWidgets module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qwidgettextcontrol_p.h" +#include "qwidgettextcontrol_p_p.h" + +#ifndef QT_NO_TEXTCONTROL + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "private/qtextdocumentlayout_p.h" +#include "private/qabstracttextdocumentlayout_p.h" +#include "private/qtextedit_p.h" +#include "qtextdocument.h" +#include "private/qtextdocument_p.h" +#include "qtextlist.h" +#include "private/qwidgettextcontrol_p.h" +#include "qgraphicssceneevent.h" +#include "qpagedpaintdevice.h" +#include "private/qpagedpaintdevice_p.h" +#include "qtextdocumentwriter.h" +#include "qstylehints.h" +#include "private/qtextcursor_p.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef QT_NO_SHORTCUT +#include "private/qapplication_p.h" +#include "private/qshortcutmap_p.h" +#include +#define ACCEL_KEY(k) (!qApp->d_func()->shortcutMap.hasShortcutForKeySequence(k) ? \ + QLatin1Char('\t') + QKeySequence(k).toString(QKeySequence::NativeText) : QString()) + +#else +#define ACCEL_KEY(k) QString() +#endif + +#include + +QT_BEGIN_NAMESPACE + +// could go into QTextCursor... +static QTextLine currentTextLine(const QTextCursor &cursor) +{ + const QTextBlock block = cursor.block(); + if (!block.isValid()) + return QTextLine(); + + const QTextLayout *layout = block.layout(); + if (!layout) + return QTextLine(); + + const int relativePos = cursor.position() - block.position(); + return layout->lineForTextPosition(relativePos); +} + +QWidgetTextControlPrivate::QWidgetTextControlPrivate() + : doc(0), cursorOn(false), cursorIsFocusIndicator(false), +#ifndef Q_OS_ANDROID + interactionFlags(Qt::TextEditorInteraction), +#else + interactionFlags(Qt::TextEditable), +#endif + dragEnabled(true), +#ifndef QT_NO_DRAGANDDROP + mousePressed(false), mightStartDrag(false), +#endif + lastSelectionPosition(0), lastSelectionAnchor(0), + ignoreAutomaticScrollbarAdjustement(false), + overwriteMode(false), + acceptRichText(true), + preeditCursor(0), hideCursor(false), + hasFocus(false), +#ifdef QT_KEYPAD_NAVIGATION + hasEditFocus(false), +#endif + isEnabled(true), + hadSelectionOnMousePress(false), + ignoreUnusedNavigationEvents(false), + openExternalLinks(false), + wordSelectionEnabled(false) +{} + +bool QWidgetTextControlPrivate::cursorMoveKeyEvent(QKeyEvent *e) +{ +#ifdef QT_NO_SHORTCUT + Q_UNUSED(e); +#endif + + Q_Q(QWidgetTextControl); + if (cursor.isNull()) + return false; + + const QTextCursor oldSelection = cursor; + const int oldCursorPos = cursor.position(); + + QTextCursor::MoveMode mode = QTextCursor::MoveAnchor; + QTextCursor::MoveOperation op = QTextCursor::NoMove; + + if (false) { + } +#ifndef QT_NO_SHORTCUT + if (e == QKeySequence::MoveToNextChar) { + op = QTextCursor::Right; + } + else if (e == QKeySequence::MoveToPreviousChar) { + op = QTextCursor::Left; + } + else if (e == QKeySequence::SelectNextChar) { + op = QTextCursor::Right; + mode = QTextCursor::KeepAnchor; + } + else if (e == QKeySequence::SelectPreviousChar) { + op = QTextCursor::Left; + mode = QTextCursor::KeepAnchor; + } + else if (e == QKeySequence::SelectNextWord) { + op = QTextCursor::WordRight; + mode = QTextCursor::KeepAnchor; + } + else if (e == QKeySequence::SelectPreviousWord) { + op = QTextCursor::WordLeft; + mode = QTextCursor::KeepAnchor; + } + else if (e == QKeySequence::SelectStartOfLine) { + op = QTextCursor::StartOfLine; + mode = QTextCursor::KeepAnchor; + } + else if (e == QKeySequence::SelectEndOfLine) { + op = QTextCursor::EndOfLine; + mode = QTextCursor::KeepAnchor; + } + else if (e == QKeySequence::SelectStartOfBlock) { + op = QTextCursor::StartOfBlock; + mode = QTextCursor::KeepAnchor; + } + else if (e == QKeySequence::SelectEndOfBlock) { + op = QTextCursor::EndOfBlock; + mode = QTextCursor::KeepAnchor; + } + else if (e == QKeySequence::SelectStartOfDocument) { + op = QTextCursor::Start; + mode = QTextCursor::KeepAnchor; + } + else if (e == QKeySequence::SelectEndOfDocument) { + op = QTextCursor::End; + mode = QTextCursor::KeepAnchor; + } + else if (e == QKeySequence::SelectPreviousLine) { + op = QTextCursor::Up; + mode = QTextCursor::KeepAnchor; + } + else if (e == QKeySequence::SelectNextLine) { + op = QTextCursor::Down; + mode = QTextCursor::KeepAnchor; + { + QTextBlock block = cursor.block(); + QTextLine line = currentTextLine(cursor); + if (!block.next().isValid() + && line.isValid() + && line.lineNumber() == block.layout()->lineCount() - 1) + op = QTextCursor::End; + } + } + else if (e == QKeySequence::MoveToNextWord) { + op = QTextCursor::WordRight; + } + else if (e == QKeySequence::MoveToPreviousWord) { + op = QTextCursor::WordLeft; + } + else if (e == QKeySequence::MoveToEndOfBlock) { + op = QTextCursor::EndOfBlock; + } + else if (e == QKeySequence::MoveToStartOfBlock) { + op = QTextCursor::StartOfBlock; + } + else if (e == QKeySequence::MoveToNextLine) { + op = QTextCursor::Down; + } + else if (e == QKeySequence::MoveToPreviousLine) { + op = QTextCursor::Up; + } + else if (e == QKeySequence::MoveToStartOfLine) { + op = QTextCursor::StartOfLine; + } + else if (e == QKeySequence::MoveToEndOfLine) { + op = QTextCursor::EndOfLine; + } + else if (e == QKeySequence::MoveToStartOfDocument) { + op = QTextCursor::Start; + } + else if (e == QKeySequence::MoveToEndOfDocument) { + op = QTextCursor::End; + } +#endif // QT_NO_SHORTCUT + else { + return false; + } + +// Except for pageup and pagedown, Mac OS X has very different behavior, we don't do it all, but +// here's the breakdown: +// Shift still works as an anchor, but only one of the other keys can be down Ctrl (Command), +// Alt (Option), or Meta (Control). +// Command/Control + Left/Right -- Move to left or right of the line +// + Up/Down -- Move to top bottom of the file. (Control doesn't move the cursor) +// Option + Left/Right -- Move one word Left/right. +// + Up/Down -- Begin/End of Paragraph. +// Home/End Top/Bottom of file. (usually don't move the cursor, but will select) + + bool visualNavigation = cursor.visualNavigation(); + cursor.setVisualNavigation(true); + const bool moved = cursor.movePosition(op, mode); + cursor.setVisualNavigation(visualNavigation); + q->ensureCursorVisible(); + + bool ignoreNavigationEvents = ignoreUnusedNavigationEvents; + bool isNavigationEvent = e->key() == Qt::Key_Up || e->key() == Qt::Key_Down; + +#ifdef QT_KEYPAD_NAVIGATION + ignoreNavigationEvents = ignoreNavigationEvents || QApplication::keypadNavigationEnabled(); + isNavigationEvent = isNavigationEvent || + (QApplication::navigationMode() == Qt::NavigationModeKeypadDirectional + && (e->key() == Qt::Key_Left || e->key() == Qt::Key_Right)); +#else + isNavigationEvent = isNavigationEvent || e->key() == Qt::Key_Left || e->key() == Qt::Key_Right; +#endif + + if (moved) { + if (cursor.position() != oldCursorPos) + emit q->cursorPositionChanged(); + emit q->microFocusChanged(); + } else if (ignoreNavigationEvents && isNavigationEvent && oldSelection.anchor() == cursor.anchor()) { + return false; + } + + selectionChanged(/*forceEmitSelectionChanged =*/(mode == QTextCursor::KeepAnchor)); + + repaintOldAndNewSelection(oldSelection); + + return true; +} + +void QWidgetTextControlPrivate::updateCurrentCharFormat() +{ + Q_Q(QWidgetTextControl); + + QTextCharFormat fmt = cursor.charFormat(); + if (fmt == lastCharFormat) + return; + lastCharFormat = fmt; + + emit q->currentCharFormatChanged(fmt); + emit q->microFocusChanged(); +} + +void QWidgetTextControlPrivate::indent() +{ + QTextBlockFormat blockFmt = cursor.blockFormat(); + + QTextList *list = cursor.currentList(); + if (!list) { + QTextBlockFormat modifier; + modifier.setIndent(blockFmt.indent() + 1); + cursor.mergeBlockFormat(modifier); + } else { + QTextListFormat format = list->format(); + format.setIndent(format.indent() + 1); + + if (list->itemNumber(cursor.block()) == 1) + list->setFormat(format); + else + cursor.createList(format); + } +} + +void QWidgetTextControlPrivate::outdent() +{ + QTextBlockFormat blockFmt = cursor.blockFormat(); + + QTextList *list = cursor.currentList(); + + if (!list) { + QTextBlockFormat modifier; + modifier.setIndent(blockFmt.indent() - 1); + cursor.mergeBlockFormat(modifier); + } else { + QTextListFormat listFmt = list->format(); + listFmt.setIndent(listFmt.indent() - 1); + list->setFormat(listFmt); + } +} + +void QWidgetTextControlPrivate::gotoNextTableCell() +{ + QTextTable *table = cursor.currentTable(); + QTextTableCell cell = table->cellAt(cursor); + + int newColumn = cell.column() + cell.columnSpan(); + int newRow = cell.row(); + + if (newColumn >= table->columns()) { + newColumn = 0; + ++newRow; + if (newRow >= table->rows()) + table->insertRows(table->rows(), 1); + } + + cell = table->cellAt(newRow, newColumn); + cursor = cell.firstCursorPosition(); +} + +void QWidgetTextControlPrivate::gotoPreviousTableCell() +{ + QTextTable *table = cursor.currentTable(); + QTextTableCell cell = table->cellAt(cursor); + + int newColumn = cell.column() - 1; + int newRow = cell.row(); + + if (newColumn < 0) { + newColumn = table->columns() - 1; + --newRow; + if (newRow < 0) + return; + } + + cell = table->cellAt(newRow, newColumn); + cursor = cell.firstCursorPosition(); +} + +void QWidgetTextControlPrivate::createAutoBulletList() +{ + cursor.beginEditBlock(); + + QTextBlockFormat blockFmt = cursor.blockFormat(); + + QTextListFormat listFmt; + listFmt.setStyle(QTextListFormat::ListDisc); + listFmt.setIndent(blockFmt.indent() + 1); + + blockFmt.setIndent(0); + cursor.setBlockFormat(blockFmt); + + cursor.createList(listFmt); + + cursor.endEditBlock(); +} + +void QWidgetTextControlPrivate::init(Qt::TextFormat format, const QString &text, QTextDocument *document) +{ + Q_Q(QWidgetTextControl); + setContent(format, text, document); + + doc->setUndoRedoEnabled(interactionFlags & Qt::TextEditable); + q->setCursorWidth(-1); +} + +void QWidgetTextControlPrivate::setContent(Qt::TextFormat format, const QString &text, QTextDocument *document) +{ + Q_Q(QWidgetTextControl); + + // for use when called from setPlainText. we may want to re-use the currently + // set char format then. + const QTextCharFormat charFormatForInsertion = cursor.charFormat(); + + bool clearDocument = true; + if (!doc) { + if (document) { + doc = document; + clearDocument = false; + } else { + palette = QApplication::palette("QWidgetTextControl"); + doc = new QTextDocument(q); + } + _q_documentLayoutChanged(); + cursor = QTextCursor(doc); + +// #### doc->documentLayout()->setPaintDevice(viewport); + + QObject::connect(doc, SIGNAL(contentsChanged()), q, SLOT(_q_updateCurrentCharFormatAndSelection())); + QObject::connect(doc, SIGNAL(cursorPositionChanged(QTextCursor)), q, SLOT(_q_emitCursorPosChanged(QTextCursor))); + QObject::connect(doc, SIGNAL(documentLayoutChanged()), q, SLOT(_q_documentLayoutChanged())); + + // convenience signal forwards + QObject::connect(doc, SIGNAL(undoAvailable(bool)), q, SIGNAL(undoAvailable(bool))); + QObject::connect(doc, SIGNAL(redoAvailable(bool)), q, SIGNAL(redoAvailable(bool))); + QObject::connect(doc, SIGNAL(modificationChanged(bool)), q, SIGNAL(modificationChanged(bool))); + QObject::connect(doc, SIGNAL(blockCountChanged(int)), q, SIGNAL(blockCountChanged(int))); + } + + bool previousUndoRedoState = doc->isUndoRedoEnabled(); + if (!document) + doc->setUndoRedoEnabled(false); + + //Saving the index save some time. + static int contentsChangedIndex = QMetaMethod::fromSignal(&QTextDocument::contentsChanged).methodIndex(); + static int textChangedIndex = QMetaMethod::fromSignal(&QWidgetTextControl::textChanged).methodIndex(); + // avoid multiple textChanged() signals being emitted + QMetaObject::disconnect(doc, contentsChangedIndex, q, textChangedIndex); + + if (!text.isEmpty()) { + // clear 'our' cursor for insertion to prevent + // the emission of the cursorPositionChanged() signal. + // instead we emit it only once at the end instead of + // at the end of the document after loading and when + // positioning the cursor again to the start of the + // document. + cursor = QTextCursor(); + if (format == Qt::PlainText) { + QTextCursor formatCursor(doc); + // put the setPlainText and the setCharFormat into one edit block, + // so that the syntax highlight triggers only /once/ for the entire + // document, not twice. + formatCursor.beginEditBlock(); + doc->setPlainText(text); + doc->setUndoRedoEnabled(false); + formatCursor.select(QTextCursor::Document); + formatCursor.setCharFormat(charFormatForInsertion); + formatCursor.endEditBlock(); + } else { +#ifndef QT_NO_TEXTHTMLPARSER + doc->setHtml(text); +#else + doc->setPlainText(text); +#endif + doc->setUndoRedoEnabled(false); + } + cursor = QTextCursor(doc); + } else if (clearDocument) { + doc->clear(); + } + cursor.setCharFormat(charFormatForInsertion); + + QMetaObject::connect(doc, contentsChangedIndex, q, textChangedIndex); + emit q->textChanged(); + if (!document) + doc->setUndoRedoEnabled(previousUndoRedoState); + _q_updateCurrentCharFormatAndSelection(); + if (!document) + doc->setModified(false); + + q->ensureCursorVisible(); + emit q->cursorPositionChanged(); + + QObject::connect(doc, SIGNAL(contentsChange(int,int,int)), q, SLOT(_q_contentsChanged(int,int,int)), Qt::UniqueConnection); +} + +void QWidgetTextControlPrivate::startDrag() +{ +#ifndef QT_NO_DRAGANDDROP + Q_Q(QWidgetTextControl); + mousePressed = false; + if (!contextWidget) + return; + QMimeData *data = q->createMimeDataFromSelection(); + + QDrag *drag = new QDrag(contextWidget); + drag->setMimeData(data); + + Qt::DropActions actions = Qt::CopyAction; + Qt::DropAction action; + if (interactionFlags & Qt::TextEditable) { + actions |= Qt::MoveAction; + action = drag->exec(actions, Qt::MoveAction); + } else { + action = drag->exec(actions, Qt::CopyAction); + } + + if (action == Qt::MoveAction && drag->target() != contextWidget) + cursor.removeSelectedText(); +#endif +} + +void QWidgetTextControlPrivate::setCursorPosition(const QPointF &pos) +{ + Q_Q(QWidgetTextControl); + const int cursorPos = q->hitTest(pos, Qt::FuzzyHit); + if (cursorPos == -1) + return; + cursor.setPosition(cursorPos); +} + +void QWidgetTextControlPrivate::setCursorPosition(int pos, QTextCursor::MoveMode mode) +{ + cursor.setPosition(pos, mode); + + if (mode != QTextCursor::KeepAnchor) { + selectedWordOnDoubleClick = QTextCursor(); + selectedBlockOnTrippleClick = QTextCursor(); + } +} + +void QWidgetTextControlPrivate::repaintCursor() +{ + Q_Q(QWidgetTextControl); + emit q->updateRequest(cursorRectPlusUnicodeDirectionMarkers(cursor)); +} + +void QWidgetTextControlPrivate::repaintOldAndNewSelection(const QTextCursor &oldSelection) +{ + Q_Q(QWidgetTextControl); + if (cursor.hasSelection() + && oldSelection.hasSelection() + && cursor.currentFrame() == oldSelection.currentFrame() + && !cursor.hasComplexSelection() + && !oldSelection.hasComplexSelection() + && cursor.anchor() == oldSelection.anchor() + ) { + QTextCursor differenceSelection(doc); + differenceSelection.setPosition(oldSelection.position()); + differenceSelection.setPosition(cursor.position(), QTextCursor::KeepAnchor); + emit q->updateRequest(q->selectionRect(differenceSelection)); + } else { + if (!oldSelection.isNull()) + emit q->updateRequest(q->selectionRect(oldSelection) | cursorRectPlusUnicodeDirectionMarkers(oldSelection)); + emit q->updateRequest(q->selectionRect() | cursorRectPlusUnicodeDirectionMarkers(cursor)); + } +} + +void QWidgetTextControlPrivate::selectionChanged(bool forceEmitSelectionChanged /*=false*/) +{ + Q_Q(QWidgetTextControl); + if (forceEmitSelectionChanged) { + emit q->selectionChanged(); +#ifndef QT_NO_ACCESSIBILITY + if (q->parent() && q->parent()->isWidgetType()) { + QAccessibleTextSelectionEvent ev(q->parent(), cursor.anchor(), cursor.position()); + QAccessible::updateAccessibility(&ev); + } +#endif + } + + if (cursor.position() == lastSelectionPosition + && cursor.anchor() == lastSelectionAnchor) + return; + + bool selectionStateChange = (cursor.hasSelection() + != (lastSelectionPosition != lastSelectionAnchor)); + if (selectionStateChange) + emit q->copyAvailable(cursor.hasSelection()); + + if (!forceEmitSelectionChanged + && (selectionStateChange + || (cursor.hasSelection() + && (cursor.position() != lastSelectionPosition + || cursor.anchor() != lastSelectionAnchor)))) { + emit q->selectionChanged(); +#ifndef QT_NO_ACCESSIBILITY + if (q->parent() && q->parent()->isWidgetType()) { + QAccessibleTextSelectionEvent ev(q->parent(), cursor.anchor(), cursor.position()); + QAccessible::updateAccessibility(&ev); + } +#endif + } + emit q->microFocusChanged(); + lastSelectionPosition = cursor.position(); + lastSelectionAnchor = cursor.anchor(); +} + +void QWidgetTextControlPrivate::_q_updateCurrentCharFormatAndSelection() +{ + updateCurrentCharFormat(); + selectionChanged(); +} + +#ifndef QT_NO_CLIPBOARD +void QWidgetTextControlPrivate::setClipboardSelection() +{ + QClipboard *clipboard = QApplication::clipboard(); + if (!cursor.hasSelection() || !clipboard->supportsSelection()) + return; + Q_Q(QWidgetTextControl); + QMimeData *data = q->createMimeDataFromSelection(); + clipboard->setMimeData(data, QClipboard::Selection); +} +#endif + +void QWidgetTextControlPrivate::_q_emitCursorPosChanged(const QTextCursor &someCursor) +{ + Q_Q(QWidgetTextControl); + if (someCursor.isCopyOf(cursor)) { + emit q->cursorPositionChanged(); + emit q->microFocusChanged(); + } +} + +void QWidgetTextControlPrivate::_q_contentsChanged(int from, int charsRemoved, int charsAdded) +{ + Q_Q(QWidgetTextControl); +#ifndef QT_NO_ACCESSIBILITY + + if (QAccessible::isActive() && q->parent() && q->parent()->isWidgetType()) { + QTextCursor tmp(doc); + tmp.setPosition(from); + tmp.setPosition(from + charsAdded, QTextCursor::KeepAnchor); + QString newText = tmp.selectedText(); + + // always report the right number of removed chars, but in lack of the real string use spaces + QString oldText = QString(charsRemoved, QLatin1Char(' ')); + + QAccessibleEvent *ev = 0; + if (charsRemoved == 0) { + ev = new QAccessibleTextInsertEvent(q->parent(), from, newText); + } else if (charsAdded == 0) { + ev = new QAccessibleTextRemoveEvent(q->parent(), from, oldText); + } else { + ev = new QAccessibleTextUpdateEvent(q->parent(), from, oldText, newText); + } + QAccessible::updateAccessibility(ev); + delete ev; + } +#endif +} + +void QWidgetTextControlPrivate::_q_documentLayoutChanged() +{ + Q_Q(QWidgetTextControl); + QAbstractTextDocumentLayout *layout = doc->documentLayout(); + QObject::connect(layout, SIGNAL(update(QRectF)), q, SIGNAL(updateRequest(QRectF))); + QObject::connect(layout, SIGNAL(updateBlock(QTextBlock)), q, SLOT(_q_updateBlock(QTextBlock))); + QObject::connect(layout, SIGNAL(documentSizeChanged(QSizeF)), q, SIGNAL(documentSizeChanged(QSizeF))); + +} + +void QWidgetTextControlPrivate::setBlinkingCursorEnabled(bool enable) +{ + Q_Q(QWidgetTextControl); + + if (enable && QApplication::cursorFlashTime() > 0) + cursorBlinkTimer.start(QApplication::cursorFlashTime() / 2, q); + else + cursorBlinkTimer.stop(); + + cursorOn = enable; + + repaintCursor(); +} + +void QWidgetTextControlPrivate::extendWordwiseSelection(int suggestedNewPosition, qreal mouseXPosition) +{ + Q_Q(QWidgetTextControl); + + // if inside the initial selected word keep that + if (suggestedNewPosition >= selectedWordOnDoubleClick.selectionStart() + && suggestedNewPosition <= selectedWordOnDoubleClick.selectionEnd()) { + q->setTextCursor(selectedWordOnDoubleClick); + return; + } + + QTextCursor curs = selectedWordOnDoubleClick; + curs.setPosition(suggestedNewPosition, QTextCursor::KeepAnchor); + + if (!curs.movePosition(QTextCursor::StartOfWord)) + return; + const int wordStartPos = curs.position(); + + const int blockPos = curs.block().position(); + const QPointF blockCoordinates = q->blockBoundingRect(curs.block()).topLeft(); + + QTextLine line = currentTextLine(curs); + if (!line.isValid()) + return; + + const qreal wordStartX = line.cursorToX(curs.position() - blockPos) + blockCoordinates.x(); + + if (!curs.movePosition(QTextCursor::EndOfWord)) + return; + const int wordEndPos = curs.position(); + + const QTextLine otherLine = currentTextLine(curs); + if (otherLine.textStart() != line.textStart() + || wordEndPos == wordStartPos) + return; + + const qreal wordEndX = line.cursorToX(curs.position() - blockPos) + blockCoordinates.x(); + + if (!wordSelectionEnabled && (mouseXPosition < wordStartX || mouseXPosition > wordEndX)) + return; + + if (wordSelectionEnabled) { + if (suggestedNewPosition < selectedWordOnDoubleClick.position()) { + cursor.setPosition(selectedWordOnDoubleClick.selectionEnd()); + setCursorPosition(wordStartPos, QTextCursor::KeepAnchor); + } else { + cursor.setPosition(selectedWordOnDoubleClick.selectionStart()); + setCursorPosition(wordEndPos, QTextCursor::KeepAnchor); + } + } else { + // keep the already selected word even when moving to the left + // (#39164) + if (suggestedNewPosition < selectedWordOnDoubleClick.position()) + cursor.setPosition(selectedWordOnDoubleClick.selectionEnd()); + else + cursor.setPosition(selectedWordOnDoubleClick.selectionStart()); + + const qreal differenceToStart = mouseXPosition - wordStartX; + const qreal differenceToEnd = wordEndX - mouseXPosition; + + if (differenceToStart < differenceToEnd) + setCursorPosition(wordStartPos, QTextCursor::KeepAnchor); + else + setCursorPosition(wordEndPos, QTextCursor::KeepAnchor); + } + + if (interactionFlags & Qt::TextSelectableByMouse) { +#ifndef QT_NO_CLIPBOARD + setClipboardSelection(); +#endif + selectionChanged(true); + } +} + +void QWidgetTextControlPrivate::extendBlockwiseSelection(int suggestedNewPosition) +{ + Q_Q(QWidgetTextControl); + + // if inside the initial selected line keep that + if (suggestedNewPosition >= selectedBlockOnTrippleClick.selectionStart() + && suggestedNewPosition <= selectedBlockOnTrippleClick.selectionEnd()) { + q->setTextCursor(selectedBlockOnTrippleClick); + return; + } + + if (suggestedNewPosition < selectedBlockOnTrippleClick.position()) { + cursor.setPosition(selectedBlockOnTrippleClick.selectionEnd()); + cursor.setPosition(suggestedNewPosition, QTextCursor::KeepAnchor); + cursor.movePosition(QTextCursor::StartOfBlock, QTextCursor::KeepAnchor); + } else { + cursor.setPosition(selectedBlockOnTrippleClick.selectionStart()); + cursor.setPosition(suggestedNewPosition, QTextCursor::KeepAnchor); + cursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); + cursor.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor); + } + + if (interactionFlags & Qt::TextSelectableByMouse) { +#ifndef QT_NO_CLIPBOARD + setClipboardSelection(); +#endif + selectionChanged(true); + } +} + +void QWidgetTextControlPrivate::_q_deleteSelected() +{ + if (!(interactionFlags & Qt::TextEditable) || !cursor.hasSelection()) + return; + cursor.removeSelectedText(); +} + +void QWidgetTextControl::undo() +{ + Q_D(QWidgetTextControl); + d->repaintSelection(); + const int oldCursorPos = d->cursor.position(); + d->doc->undo(&d->cursor); + if (d->cursor.position() != oldCursorPos) + emit cursorPositionChanged(); + emit microFocusChanged(); + ensureCursorVisible(); +} + +void QWidgetTextControl::redo() +{ + Q_D(QWidgetTextControl); + d->repaintSelection(); + const int oldCursorPos = d->cursor.position(); + d->doc->redo(&d->cursor); + if (d->cursor.position() != oldCursorPos) + emit cursorPositionChanged(); + emit microFocusChanged(); + ensureCursorVisible(); +} + +QWidgetTextControl::QWidgetTextControl(QObject *parent) + : QObject(*new QWidgetTextControlPrivate, parent) +{ + Q_D(QWidgetTextControl); + d->init(); +} + +QWidgetTextControl::QWidgetTextControl(const QString &text, QObject *parent) + : QObject(*new QWidgetTextControlPrivate, parent) +{ + Q_D(QWidgetTextControl); + d->init(Qt::RichText, text); +} + +QWidgetTextControl::QWidgetTextControl(QTextDocument *doc, QObject *parent) + : QObject(*new QWidgetTextControlPrivate, parent) +{ + Q_D(QWidgetTextControl); + d->init(Qt::RichText, QString(), doc); +} + +QWidgetTextControl::~QWidgetTextControl() +{ +} + +void QWidgetTextControl::setDocument(QTextDocument *document) +{ + Q_D(QWidgetTextControl); + if (d->doc == document) + return; + + d->doc->disconnect(this); + d->doc->documentLayout()->disconnect(this); + d->doc->documentLayout()->setPaintDevice(0); + + if (d->doc->parent() == this) + delete d->doc; + + d->doc = 0; + d->setContent(Qt::RichText, QString(), document); +} + +QTextDocument *QWidgetTextControl::document() const +{ + Q_D(const QWidgetTextControl); + return d->doc; +} + +void QWidgetTextControl::setTextCursor(const QTextCursor &cursor) +{ + Q_D(QWidgetTextControl); + d->cursorIsFocusIndicator = false; + const bool posChanged = cursor.position() != d->cursor.position(); + const QTextCursor oldSelection = d->cursor; + d->cursor = cursor; + d->cursorOn = d->hasFocus && (d->interactionFlags & Qt::TextEditable); + d->_q_updateCurrentCharFormatAndSelection(); + ensureCursorVisible(); + d->repaintOldAndNewSelection(oldSelection); + if (posChanged) + emit cursorPositionChanged(); +} + +QTextCursor QWidgetTextControl::textCursor() const +{ + Q_D(const QWidgetTextControl); + return d->cursor; +} + +#ifndef QT_NO_CLIPBOARD + +void QWidgetTextControl::cut() +{ + Q_D(QWidgetTextControl); + if (!(d->interactionFlags & Qt::TextEditable) || !d->cursor.hasSelection()) + return; + copy(); + d->cursor.removeSelectedText(); +} + +void QWidgetTextControl::copy() +{ + Q_D(QWidgetTextControl); + if (!d->cursor.hasSelection()) + return; + QMimeData *data = createMimeDataFromSelection(); + QApplication::clipboard()->setMimeData(data); +} + +void QWidgetTextControl::paste(QClipboard::Mode mode) +{ + const QMimeData *md = QApplication::clipboard()->mimeData(mode); + if (md) + insertFromMimeData(md); +} +#endif + +void QWidgetTextControl::clear() +{ + Q_D(QWidgetTextControl); + // clears and sets empty content + d->extraSelections.clear(); + d->setContent(); +} + + +void QWidgetTextControl::selectAll() +{ + Q_D(QWidgetTextControl); + const int selectionLength = qAbs(d->cursor.position() - d->cursor.anchor()); + d->cursor.select(QTextCursor::Document); + d->selectionChanged(selectionLength != qAbs(d->cursor.position() - d->cursor.anchor())); + d->cursorIsFocusIndicator = false; + emit updateRequest(); +} + +void QWidgetTextControl::processEvent(QEvent *e, const QPointF &coordinateOffset, QWidget *contextWidget) +{ + QMatrix m; + m.translate(coordinateOffset.x(), coordinateOffset.y()); + processEvent(e, m, contextWidget); +} + +void QWidgetTextControl::processEvent(QEvent *e, const QMatrix &matrix, QWidget *contextWidget) +{ + Q_D(QWidgetTextControl); + if (d->interactionFlags == Qt::NoTextInteraction) { + e->ignore(); + return; + } + + d->contextWidget = contextWidget; + + if (!d->contextWidget) { + switch (e->type()) { +#ifndef QT_NO_GRAPHICSVIEW + case QEvent::GraphicsSceneMouseMove: + case QEvent::GraphicsSceneMousePress: + case QEvent::GraphicsSceneMouseRelease: + case QEvent::GraphicsSceneMouseDoubleClick: + case QEvent::GraphicsSceneContextMenu: + case QEvent::GraphicsSceneHoverEnter: + case QEvent::GraphicsSceneHoverMove: + case QEvent::GraphicsSceneHoverLeave: + case QEvent::GraphicsSceneHelp: + case QEvent::GraphicsSceneDragEnter: + case QEvent::GraphicsSceneDragMove: + case QEvent::GraphicsSceneDragLeave: + case QEvent::GraphicsSceneDrop: { + QGraphicsSceneEvent *ev = static_cast(e); + d->contextWidget = ev->widget(); + break; + } +#endif // QT_NO_GRAPHICSVIEW + default: break; + }; + } + + switch (e->type()) { + case QEvent::KeyPress: + d->keyPressEvent(static_cast(e)); + break; + case QEvent::MouseButtonPress: { + QMouseEvent *ev = static_cast(e); + d->mousePressEvent(ev, ev->button(), matrix.map(ev->pos()), ev->modifiers(), + ev->buttons(), ev->globalPos()); + break; } + case QEvent::MouseMove: { + QMouseEvent *ev = static_cast(e); + d->mouseMoveEvent(ev, ev->button(), matrix.map(ev->pos()), ev->modifiers(), + ev->buttons(), ev->globalPos()); + break; } + case QEvent::MouseButtonRelease: { + QMouseEvent *ev = static_cast(e); + d->mouseReleaseEvent(ev, ev->button(), matrix.map(ev->pos()), ev->modifiers(), + ev->buttons(), ev->globalPos()); + break; } + case QEvent::MouseButtonDblClick: { + QMouseEvent *ev = static_cast(e); + d->mouseDoubleClickEvent(ev, ev->button(), matrix.map(ev->pos()), ev->modifiers(), + ev->buttons(), ev->globalPos()); + break; } + case QEvent::InputMethod: + d->inputMethodEvent(static_cast(e)); + break; +#ifndef QT_NO_CONTEXTMENU + case QEvent::ContextMenu: { + QContextMenuEvent *ev = static_cast(e); + d->contextMenuEvent(ev->globalPos(), matrix.map(ev->pos()), contextWidget); + break; } +#endif // QT_NO_CONTEXTMENU + case QEvent::FocusIn: + case QEvent::FocusOut: + d->focusEvent(static_cast(e)); + break; + + case QEvent::EnabledChange: + d->isEnabled = e->isAccepted(); + break; + +#ifndef QT_NO_TOOLTIP + case QEvent::ToolTip: { + QHelpEvent *ev = static_cast(e); + d->showToolTip(ev->globalPos(), matrix.map(ev->pos()), contextWidget); + break; + } +#endif // QT_NO_TOOLTIP + +#ifndef QT_NO_DRAGANDDROP + case QEvent::DragEnter: { + QDragEnterEvent *ev = static_cast(e); + if (d->dragEnterEvent(e, ev->mimeData())) + ev->acceptProposedAction(); + break; + } + case QEvent::DragLeave: + d->dragLeaveEvent(); + break; + case QEvent::DragMove: { + QDragMoveEvent *ev = static_cast(e); + if (d->dragMoveEvent(e, ev->mimeData(), matrix.map(ev->pos()))) + ev->acceptProposedAction(); + break; + } + case QEvent::Drop: { + QDropEvent *ev = static_cast(e); + if (d->dropEvent(ev->mimeData(), matrix.map(ev->pos()), ev->dropAction(), ev->source())) + ev->acceptProposedAction(); + break; + } +#endif + +#ifndef QT_NO_GRAPHICSVIEW + case QEvent::GraphicsSceneMousePress: { + QGraphicsSceneMouseEvent *ev = static_cast(e); + d->mousePressEvent(ev, ev->button(), matrix.map(ev->pos()), ev->modifiers(), ev->buttons(), + ev->screenPos()); + break; } + case QEvent::GraphicsSceneMouseMove: { + QGraphicsSceneMouseEvent *ev = static_cast(e); + d->mouseMoveEvent(ev, ev->button(), matrix.map(ev->pos()), ev->modifiers(), ev->buttons(), + ev->screenPos()); + break; } + case QEvent::GraphicsSceneMouseRelease: { + QGraphicsSceneMouseEvent *ev = static_cast(e); + d->mouseReleaseEvent(ev, ev->button(), matrix.map(ev->pos()), ev->modifiers(), ev->buttons(), + ev->screenPos()); + break; } + case QEvent::GraphicsSceneMouseDoubleClick: { + QGraphicsSceneMouseEvent *ev = static_cast(e); + d->mouseDoubleClickEvent(ev, ev->button(), matrix.map(ev->pos()), ev->modifiers(), ev->buttons(), + ev->screenPos()); + break; } + case QEvent::GraphicsSceneContextMenu: { + QGraphicsSceneContextMenuEvent *ev = static_cast(e); + d->contextMenuEvent(ev->screenPos(), matrix.map(ev->pos()), contextWidget); + break; } + + case QEvent::GraphicsSceneHoverMove: { + QGraphicsSceneHoverEvent *ev = static_cast(e); + d->mouseMoveEvent(ev, Qt::NoButton, matrix.map(ev->pos()), ev->modifiers(),Qt::NoButton, + ev->screenPos()); + break; } + + case QEvent::GraphicsSceneDragEnter: { + QGraphicsSceneDragDropEvent *ev = static_cast(e); + if (d->dragEnterEvent(e, ev->mimeData())) + ev->acceptProposedAction(); + break; } + case QEvent::GraphicsSceneDragLeave: + d->dragLeaveEvent(); + break; + case QEvent::GraphicsSceneDragMove: { + QGraphicsSceneDragDropEvent *ev = static_cast(e); + if (d->dragMoveEvent(e, ev->mimeData(), matrix.map(ev->pos()))) + ev->acceptProposedAction(); + break; } + case QEvent::GraphicsSceneDrop: { + QGraphicsSceneDragDropEvent *ev = static_cast(e); + if (d->dropEvent(ev->mimeData(), matrix.map(ev->pos()), ev->dropAction(), ev->source())) + ev->accept(); + break; } +#endif // QT_NO_GRAPHICSVIEW +#ifdef QT_KEYPAD_NAVIGATION + case QEvent::EnterEditFocus: + case QEvent::LeaveEditFocus: + if (QApplication::keypadNavigationEnabled()) + d->editFocusEvent(e); + break; +#endif + case QEvent::ShortcutOverride: + if (d->interactionFlags & Qt::TextEditable) { + QKeyEvent* ke = static_cast(e); + if (ke->modifiers() == Qt::NoModifier + || ke->modifiers() == Qt::ShiftModifier + || ke->modifiers() == Qt::KeypadModifier) { + if (ke->key() < Qt::Key_Escape) { + ke->accept(); + } else { + switch (ke->key()) { + case Qt::Key_Return: + case Qt::Key_Enter: + case Qt::Key_Delete: + case Qt::Key_Home: + case Qt::Key_End: + case Qt::Key_Backspace: + case Qt::Key_Left: + case Qt::Key_Right: + case Qt::Key_Up: + case Qt::Key_Down: + case Qt::Key_Tab: + ke->accept(); + default: + break; + } + } +#ifndef QT_NO_SHORTCUT + } else if (ke == QKeySequence::Copy + || ke == QKeySequence::Paste + || ke == QKeySequence::Cut + || ke == QKeySequence::Redo + || ke == QKeySequence::Undo + || ke == QKeySequence::MoveToNextWord + || ke == QKeySequence::MoveToPreviousWord + || ke == QKeySequence::MoveToStartOfDocument + || ke == QKeySequence::MoveToEndOfDocument + || ke == QKeySequence::SelectNextWord + || ke == QKeySequence::SelectPreviousWord + || ke == QKeySequence::SelectStartOfLine + || ke == QKeySequence::SelectEndOfLine + || ke == QKeySequence::SelectStartOfBlock + || ke == QKeySequence::SelectEndOfBlock + || ke == QKeySequence::SelectStartOfDocument + || ke == QKeySequence::SelectEndOfDocument + || ke == QKeySequence::SelectAll + ) { + ke->accept(); +#endif + } + } + break; + default: + break; + } +} + +bool QWidgetTextControl::event(QEvent *e) +{ + return QObject::event(e); +} + +void QWidgetTextControl::timerEvent(QTimerEvent *e) +{ + Q_D(QWidgetTextControl); + if (e->timerId() == d->cursorBlinkTimer.timerId()) { + d->cursorOn = !d->cursorOn; + + if (d->cursor.hasSelection()) + d->cursorOn &= (QApplication::style()->styleHint(QStyle::SH_BlinkCursorWhenTextSelected) + != 0); + + d->repaintCursor(); + } else if (e->timerId() == d->trippleClickTimer.timerId()) { + d->trippleClickTimer.stop(); + } +} + +void QWidgetTextControl::setPlainText(const QString &text) +{ + Q_D(QWidgetTextControl); + d->setContent(Qt::PlainText, text); +} + +void QWidgetTextControl::setHtml(const QString &text) +{ + Q_D(QWidgetTextControl); + d->setContent(Qt::RichText, text); +} + +void QWidgetTextControlPrivate::keyPressEvent(QKeyEvent *e) +{ + Q_Q(QWidgetTextControl); +#ifndef QT_NO_SHORTCUT + if (e == QKeySequence::SelectAll) { + e->accept(); + q->selectAll(); + return; + } +#ifndef QT_NO_CLIPBOARD + else if (e == QKeySequence::Copy) { + e->accept(); + q->copy(); + return; + } +#endif +#endif // QT_NO_SHORTCUT + + if (interactionFlags & Qt::TextSelectableByKeyboard + && cursorMoveKeyEvent(e)) + goto accept; + + if (interactionFlags & Qt::LinksAccessibleByKeyboard) { + if ((e->key() == Qt::Key_Return + || e->key() == Qt::Key_Enter +#ifdef QT_KEYPAD_NAVIGATION + || e->key() == Qt::Key_Select +#endif + ) + && cursor.hasSelection()) { + + e->accept(); + activateLinkUnderCursor(); + return; + } + } + + if (!(interactionFlags & Qt::TextEditable)) { + e->ignore(); + return; + } + + if (e->key() == Qt::Key_Direction_L || e->key() == Qt::Key_Direction_R) { + QTextBlockFormat fmt; + fmt.setLayoutDirection((e->key() == Qt::Key_Direction_L) ? Qt::LeftToRight : Qt::RightToLeft); + cursor.mergeBlockFormat(fmt); + goto accept; + } + + // schedule a repaint of the region of the cursor, as when we move it we + // want to make sure the old cursor disappears (not noticeable when moving + // only a few pixels but noticeable when jumping between cells in tables for + // example) + repaintSelection(); + + if (e->key() == Qt::Key_Backspace && !(e->modifiers() & ~Qt::ShiftModifier)) { + QTextBlockFormat blockFmt = cursor.blockFormat(); + QTextList *list = cursor.currentList(); + if (list && cursor.atBlockStart() && !cursor.hasSelection()) { + list->remove(cursor.block()); + } else if (cursor.atBlockStart() && blockFmt.indent() > 0) { + blockFmt.setIndent(blockFmt.indent() - 1); + cursor.setBlockFormat(blockFmt); + } else { + QTextCursor localCursor = cursor; + localCursor.deletePreviousChar(); + } + goto accept; + } +#ifndef QT_NO_SHORTCUT + else if (e == QKeySequence::InsertParagraphSeparator) { + cursor.insertBlock(); + e->accept(); + goto accept; + } else if (e == QKeySequence::InsertLineSeparator) { + cursor.insertText(QString(QChar::LineSeparator)); + e->accept(); + goto accept; + } +#endif + if (false) { + } +#ifndef QT_NO_SHORTCUT + else if (e == QKeySequence::Undo) { + q->undo(); + } + else if (e == QKeySequence::Redo) { + q->redo(); + } +#ifndef QT_NO_CLIPBOARD + else if (e == QKeySequence::Cut) { + q->cut(); + } + else if (e == QKeySequence::Paste) { + QClipboard::Mode mode = QClipboard::Clipboard; + if (QGuiApplication::clipboard()->supportsSelection()) { + if (e->modifiers() == (Qt::CTRL | Qt::SHIFT) && e->key() == Qt::Key_Insert) + mode = QClipboard::Selection; + } + q->paste(mode); + } +#endif + else if (e == QKeySequence::Delete) { + QTextCursor localCursor = cursor; + localCursor.deleteChar(); + } + else if (e == QKeySequence::DeleteEndOfWord) { + if (!cursor.hasSelection()) + cursor.movePosition(QTextCursor::NextWord, QTextCursor::KeepAnchor); + cursor.removeSelectedText(); + } + else if (e == QKeySequence::DeleteStartOfWord) { + if (!cursor.hasSelection()) + cursor.movePosition(QTextCursor::PreviousWord, QTextCursor::KeepAnchor); + cursor.removeSelectedText(); + } + else if (e == QKeySequence::DeleteEndOfLine) { + QTextBlock block = cursor.block(); + if (cursor.position() == block.position() + block.length() - 2) + cursor.movePosition(QTextCursor::Right, QTextCursor::KeepAnchor); + else + cursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); + cursor.removeSelectedText(); + } +#endif // QT_NO_SHORTCUT + else { + goto process; + } + goto accept; + +process: + { + QString text = e->text(); + if (!text.isEmpty() && (text.at(0).isPrint() || text.at(0) == QLatin1Char('\t') || text.at(0).unicode() == 0x200C || text.at(0).unicode() == 0x200D)) { + if (overwriteMode + // no need to call deleteChar() if we have a selection, insertText + // does it already + && !cursor.hasSelection() + && !cursor.atBlockEnd()) + cursor.deleteChar(); + + cursor.insertText(text); + selectionChanged(); + } else { + e->ignore(); + return; + } + } + + accept: + + e->accept(); + cursorOn = true; + + q->ensureCursorVisible(); + + updateCurrentCharFormat(); +} + +QVariant QWidgetTextControl::loadResource(int type, const QUrl &name) +{ +#ifdef QT_NO_TEXTEDIT + Q_UNUSED(type); + Q_UNUSED(name); +#else + if (QTextEdit *textEdit = qobject_cast(parent())) { + QUrl resolvedName = textEdit->d_func()->resolveUrl(name); + return textEdit->loadResource(type, resolvedName); + } +#endif + return QVariant(); +} + +void QWidgetTextControlPrivate::_q_updateBlock(const QTextBlock &block) +{ + Q_Q(QWidgetTextControl); + QRectF br = q->blockBoundingRect(block); + br.setRight(qreal(INT_MAX)); // the block might have shrunk + emit q->updateRequest(br); +} + +QRectF QWidgetTextControlPrivate::rectForPosition(int position) const +{ + Q_Q(const QWidgetTextControl); + const QTextBlock block = doc->findBlock(position); + if (!block.isValid()) + return QRectF(); + const QAbstractTextDocumentLayout *docLayout = doc->documentLayout(); + const QTextLayout *layout = block.layout(); + const QPointF layoutPos = q->blockBoundingRect(block).topLeft(); + int relativePos = position - block.position(); + if (preeditCursor != 0) { + int preeditPos = layout->preeditAreaPosition(); + if (relativePos == preeditPos) + relativePos += preeditCursor; + else if (relativePos > preeditPos) + relativePos += layout->preeditAreaText().length(); + } + QTextLine line = layout->lineForTextPosition(relativePos); + + int cursorWidth; + { + bool ok = false; +#ifndef QT_NO_PROPERTIES + cursorWidth = docLayout->property("cursorWidth").toInt(&ok); +#endif + if (!ok) + cursorWidth = 1; + } + + QRectF r; + + if (line.isValid()) { + qreal x = line.cursorToX(relativePos); + qreal w = 0; + if (overwriteMode) { + if (relativePos < line.textLength() - line.textStart()) + w = line.cursorToX(relativePos + 1) - x; + else + w = QFontMetrics(block.layout()->font()).width(QLatin1Char(' ')); // in sync with QTextLine::draw() + } + r = QRectF(layoutPos.x() + x, layoutPos.y() + line.y(), + cursorWidth + w, line.height()); + } else { + r = QRectF(layoutPos.x(), layoutPos.y(), cursorWidth, 10); // #### correct height + } + + return r; +} + +namespace { +struct QTextFrameComparator { +#if defined(Q_CC_MSVC) && _MSC_VER < 1600 +//The STL implementation of MSVC 2008 requires the definition + bool operator()(QTextFrame *frame1, QTextFrame *frame2) { return frame1->firstPosition() < frame2->firstPosition(); } +#endif + bool operator()(QTextFrame *frame, int position) { return frame->firstPosition() < position; } + bool operator()(int position, QTextFrame *frame) { return position < frame->firstPosition(); } +}; +} + +static QRectF boundingRectOfFloatsInSelection(const QTextCursor &cursor) +{ + QRectF r; + QTextFrame *frame = cursor.currentFrame(); + const QList children = frame->childFrames(); + + const QList::ConstIterator firstFrame = std::lower_bound(children.constBegin(), children.constEnd(), + cursor.selectionStart(), QTextFrameComparator()); + const QList::ConstIterator lastFrame = std::upper_bound(children.constBegin(), children.constEnd(), + cursor.selectionEnd(), QTextFrameComparator()); + for (QList::ConstIterator it = firstFrame; it != lastFrame; ++it) { + if ((*it)->frameFormat().position() != QTextFrameFormat::InFlow) + r |= frame->document()->documentLayout()->frameBoundingRect(*it); + } + return r; +} + +QRectF QWidgetTextControl::selectionRect(const QTextCursor &cursor) const +{ + Q_D(const QWidgetTextControl); + + QRectF r = d->rectForPosition(cursor.selectionStart()); + + if (cursor.hasComplexSelection() && cursor.currentTable()) { + QTextTable *table = cursor.currentTable(); + + r = d->doc->documentLayout()->frameBoundingRect(table); + /* + int firstRow, numRows, firstColumn, numColumns; + cursor.selectedTableCells(&firstRow, &numRows, &firstColumn, &numColumns); + + const QTextTableCell firstCell = table->cellAt(firstRow, firstColumn); + const QTextTableCell lastCell = table->cellAt(firstRow + numRows - 1, firstColumn + numColumns - 1); + + const QAbstractTextDocumentLayout * const layout = doc->documentLayout(); + + QRectF tableSelRect = layout->blockBoundingRect(firstCell.firstCursorPosition().block()); + + for (int col = firstColumn; col < firstColumn + numColumns; ++col) { + const QTextTableCell cell = table->cellAt(firstRow, col); + const qreal y = layout->blockBoundingRect(cell.firstCursorPosition().block()).top(); + + tableSelRect.setTop(qMin(tableSelRect.top(), y)); + } + + for (int row = firstRow; row < firstRow + numRows; ++row) { + const QTextTableCell cell = table->cellAt(row, firstColumn); + const qreal x = layout->blockBoundingRect(cell.firstCursorPosition().block()).left(); + + tableSelRect.setLeft(qMin(tableSelRect.left(), x)); + } + + for (int col = firstColumn; col < firstColumn + numColumns; ++col) { + const QTextTableCell cell = table->cellAt(firstRow + numRows - 1, col); + const qreal y = layout->blockBoundingRect(cell.lastCursorPosition().block()).bottom(); + + tableSelRect.setBottom(qMax(tableSelRect.bottom(), y)); + } + + for (int row = firstRow; row < firstRow + numRows; ++row) { + const QTextTableCell cell = table->cellAt(row, firstColumn + numColumns - 1); + const qreal x = layout->blockBoundingRect(cell.lastCursorPosition().block()).right(); + + tableSelRect.setRight(qMax(tableSelRect.right(), x)); + } + + r = tableSelRect.toRect(); + */ + } else if (cursor.hasSelection()) { + const int position = cursor.selectionStart(); + const int anchor = cursor.selectionEnd(); + const QTextBlock posBlock = d->doc->findBlock(position); + const QTextBlock anchorBlock = d->doc->findBlock(anchor); + if (posBlock == anchorBlock && posBlock.isValid() && posBlock.layout()->lineCount()) { + const QTextLine posLine = posBlock.layout()->lineForTextPosition(position - posBlock.position()); + const QTextLine anchorLine = anchorBlock.layout()->lineForTextPosition(anchor - anchorBlock.position()); + + const int firstLine = qMin(posLine.lineNumber(), anchorLine.lineNumber()); + const int lastLine = qMax(posLine.lineNumber(), anchorLine.lineNumber()); + const QTextLayout *layout = posBlock.layout(); + r = QRectF(); + for (int i = firstLine; i <= lastLine; ++i) { + r |= layout->lineAt(i).rect(); + r |= layout->lineAt(i).naturalTextRect(); // might be bigger in the case of wrap not enabled + } + r.translate(blockBoundingRect(posBlock).topLeft()); + } else { + QRectF anchorRect = d->rectForPosition(cursor.selectionEnd()); + r |= anchorRect; + r |= boundingRectOfFloatsInSelection(cursor); + QRectF frameRect(d->doc->documentLayout()->frameBoundingRect(cursor.currentFrame())); + r.setLeft(frameRect.left()); + r.setRight(frameRect.right()); + } + if (r.isValid()) + r.adjust(-1, -1, 1, 1); + } + + return r; +} + +QRectF QWidgetTextControl::selectionRect() const +{ + Q_D(const QWidgetTextControl); + return selectionRect(d->cursor); +} + +void QWidgetTextControlPrivate::mousePressEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos, Qt::KeyboardModifiers modifiers, + Qt::MouseButtons buttons, const QPoint &globalPos) +{ + Q_Q(QWidgetTextControl); + + mousePressPos = pos.toPoint(); + +#ifndef QT_NO_DRAGANDDROP + mightStartDrag = false; +#endif + + if (sendMouseEventToInputContext( + e, QEvent::MouseButtonPress, button, pos, modifiers, buttons, globalPos)) { + return; + } + + if (interactionFlags & Qt::LinksAccessibleByMouse) { + anchorOnMousePress = q->anchorAt(pos); + + if (cursorIsFocusIndicator) { + cursorIsFocusIndicator = false; + repaintSelection(); + cursor.clearSelection(); + } + } + if (!(button & Qt::LeftButton) || + !((interactionFlags & Qt::TextSelectableByMouse) || (interactionFlags & Qt::TextEditable))) { + e->ignore(); + return; + } + + cursorIsFocusIndicator = false; + const QTextCursor oldSelection = cursor; + const int oldCursorPos = cursor.position(); + + mousePressed = (interactionFlags & Qt::TextSelectableByMouse); + + commitPreedit(); + + if (trippleClickTimer.isActive() + && ((pos - trippleClickPoint).toPoint().manhattanLength() < QApplication::startDragDistance())) { + + cursor.movePosition(QTextCursor::StartOfBlock); + cursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); + cursor.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor); + selectedBlockOnTrippleClick = cursor; + + anchorOnMousePress = QString(); + + trippleClickTimer.stop(); + } else { + int cursorPos = q->hitTest(pos, Qt::FuzzyHit); + if (cursorPos == -1) { + e->ignore(); + return; + } + + if (modifiers == Qt::ShiftModifier && (interactionFlags & Qt::TextSelectableByMouse)) { + if (wordSelectionEnabled && !selectedWordOnDoubleClick.hasSelection()) { + selectedWordOnDoubleClick = cursor; + selectedWordOnDoubleClick.select(QTextCursor::WordUnderCursor); + } + + if (selectedBlockOnTrippleClick.hasSelection()) + extendBlockwiseSelection(cursorPos); + else if (selectedWordOnDoubleClick.hasSelection()) + extendWordwiseSelection(cursorPos, pos.x()); + else if (!wordSelectionEnabled) + setCursorPosition(cursorPos, QTextCursor::KeepAnchor); + } else { + + if (dragEnabled + && cursor.hasSelection() + && !cursorIsFocusIndicator + && cursorPos >= cursor.selectionStart() + && cursorPos <= cursor.selectionEnd() + && q->hitTest(pos, Qt::ExactHit) != -1) { +#ifndef QT_NO_DRAGANDDROP + mightStartDrag = true; +#endif + return; + } + + setCursorPosition(cursorPos); + } + } + + if (interactionFlags & Qt::TextEditable) { + q->ensureCursorVisible(); + if (cursor.position() != oldCursorPos) + emit q->cursorPositionChanged(); + _q_updateCurrentCharFormatAndSelection(); + } else { + if (cursor.position() != oldCursorPos) { + emit q->cursorPositionChanged(); + emit q->microFocusChanged(); + } + selectionChanged(); + } + repaintOldAndNewSelection(oldSelection); + hadSelectionOnMousePress = cursor.hasSelection(); +} + +void QWidgetTextControlPrivate::mouseMoveEvent(QEvent *e, Qt::MouseButton button, const QPointF &mousePos, Qt::KeyboardModifiers modifiers, + Qt::MouseButtons buttons, const QPoint &globalPos) +{ + Q_Q(QWidgetTextControl); + + if (interactionFlags & Qt::LinksAccessibleByMouse) { + QString anchor = q->anchorAt(mousePos); + if (anchor != highlightedAnchor) { + highlightedAnchor = anchor; + emit q->linkHovered(anchor); + } + } + + if (buttons & Qt::LeftButton) { + const bool editable = interactionFlags & Qt::TextEditable; + + if (!(mousePressed + || editable + || mightStartDrag + || selectedWordOnDoubleClick.hasSelection() + || selectedBlockOnTrippleClick.hasSelection())) + return; + + const QTextCursor oldSelection = cursor; + const int oldCursorPos = cursor.position(); + + if (mightStartDrag) { + if ((mousePos.toPoint() - mousePressPos).manhattanLength() > QApplication::startDragDistance()) + startDrag(); + return; + } + + const qreal mouseX = qreal(mousePos.x()); + + int newCursorPos = q->hitTest(mousePos, Qt::FuzzyHit); + + if (isPreediting()) { + // note: oldCursorPos not including preedit + int selectionStartPos = q->hitTest(mousePressPos, Qt::FuzzyHit); + + if (newCursorPos != selectionStartPos) { + commitPreedit(); + // commit invalidates positions + newCursorPos = q->hitTest(mousePos, Qt::FuzzyHit); + selectionStartPos = q->hitTest(mousePressPos, Qt::FuzzyHit); + setCursorPosition(selectionStartPos); + } + } + + if (newCursorPos == -1) + return; + + if (mousePressed && wordSelectionEnabled && !selectedWordOnDoubleClick.hasSelection()) { + selectedWordOnDoubleClick = cursor; + selectedWordOnDoubleClick.select(QTextCursor::WordUnderCursor); + } + + if (selectedBlockOnTrippleClick.hasSelection()) + extendBlockwiseSelection(newCursorPos); + else if (selectedWordOnDoubleClick.hasSelection()) + extendWordwiseSelection(newCursorPos, mouseX); + else if (mousePressed && !isPreediting()) + setCursorPosition(newCursorPos, QTextCursor::KeepAnchor); + + if (interactionFlags & Qt::TextEditable) { + // don't call ensureVisible for the visible cursor to avoid jumping + // scrollbars. the autoscrolling ensures smooth scrolling if necessary. + //q->ensureCursorVisible(); + if (cursor.position() != oldCursorPos) + emit q->cursorPositionChanged(); + _q_updateCurrentCharFormatAndSelection(); +#ifndef QT_NO_IM + if (contextWidget) + qApp->inputMethod()->update(Qt::ImQueryInput); +#endif //QT_NO_IM + } else { + //emit q->visibilityRequest(QRectF(mousePos, QSizeF(1, 1))); + if (cursor.position() != oldCursorPos) { + emit q->cursorPositionChanged(); + emit q->microFocusChanged(); + } + } + selectionChanged(true); + repaintOldAndNewSelection(oldSelection); + } + + sendMouseEventToInputContext(e, QEvent::MouseMove, button, mousePos, modifiers, buttons, globalPos); +} + +void QWidgetTextControlPrivate::mouseReleaseEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos, Qt::KeyboardModifiers modifiers, + Qt::MouseButtons buttons, const QPoint &globalPos) +{ + Q_Q(QWidgetTextControl); + + const QTextCursor oldSelection = cursor; + if (sendMouseEventToInputContext( + e, QEvent::MouseButtonRelease, button, pos, modifiers, buttons, globalPos)) { + repaintOldAndNewSelection(oldSelection); + return; + } + + const int oldCursorPos = cursor.position(); + +#ifndef QT_NO_DRAGANDDROP + if (mightStartDrag && (button & Qt::LeftButton)) { + mousePressed = false; + setCursorPosition(pos); + cursor.clearSelection(); + selectionChanged(); + } +#endif + if (mousePressed) { + mousePressed = false; +#ifndef QT_NO_CLIPBOARD + setClipboardSelection(); + selectionChanged(true); + } else if (button == Qt::MidButton + && (interactionFlags & Qt::TextEditable) + && QApplication::clipboard()->supportsSelection()) { + setCursorPosition(pos); + const QMimeData *md = QApplication::clipboard()->mimeData(QClipboard::Selection); + if (md) + q->insertFromMimeData(md); +#endif + } + + repaintOldAndNewSelection(oldSelection); + + if (cursor.position() != oldCursorPos) { + emit q->cursorPositionChanged(); + emit q->microFocusChanged(); + } + + if (interactionFlags & Qt::LinksAccessibleByMouse) { + if (!(button & Qt::LeftButton)) + return; + + const QString anchor = q->anchorAt(pos); + + if (anchor.isEmpty()) + return; + + if (!cursor.hasSelection() + || (anchor == anchorOnMousePress && hadSelectionOnMousePress)) { + + const int anchorPos = q->hitTest(pos, Qt::ExactHit); + if (anchorPos != -1) { + cursor.setPosition(anchorPos); + + QString anchor = anchorOnMousePress; + anchorOnMousePress = QString(); + activateLinkUnderCursor(anchor); + } + } + } +} + +void QWidgetTextControlPrivate::mouseDoubleClickEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos, + Qt::KeyboardModifiers modifiers, Qt::MouseButtons buttons, + const QPoint &globalPos) +{ + Q_Q(QWidgetTextControl); + + if (button == Qt::LeftButton + && (interactionFlags & Qt::TextSelectableByMouse)) { + +#ifndef QT_NO_DRAGANDDROP + mightStartDrag = false; +#endif + commitPreedit(); + + const QTextCursor oldSelection = cursor; + setCursorPosition(pos); + QTextLine line = currentTextLine(cursor); + bool doEmit = false; + if (line.isValid() && line.textLength()) { + cursor.select(QTextCursor::WordUnderCursor); + doEmit = true; + } + repaintOldAndNewSelection(oldSelection); + + cursorIsFocusIndicator = false; + selectedWordOnDoubleClick = cursor; + + trippleClickPoint = pos; + trippleClickTimer.start(QApplication::doubleClickInterval(), q); + if (doEmit) { + selectionChanged(); +#ifndef QT_NO_CLIPBOARD + setClipboardSelection(); +#endif + emit q->cursorPositionChanged(); + } + } else if (!sendMouseEventToInputContext(e, QEvent::MouseButtonDblClick, button, pos, + modifiers, buttons, globalPos)) { + e->ignore(); + } +} + +bool QWidgetTextControlPrivate::sendMouseEventToInputContext( + QEvent *e, QEvent::Type eventType, Qt::MouseButton button, const QPointF &pos, + Qt::KeyboardModifiers modifiers, Qt::MouseButtons buttons, const QPoint &globalPos) +{ + Q_UNUSED(eventType); + Q_UNUSED(button); + Q_UNUSED(pos); + Q_UNUSED(modifiers); + Q_UNUSED(buttons); + Q_UNUSED(globalPos); +#if !defined(QT_NO_IM) + Q_Q(QWidgetTextControl); + + if (isPreediting()) { + QTextLayout *layout = cursor.block().layout(); + int cursorPos = q->hitTest(pos, Qt::FuzzyHit) - cursor.position(); + + if (cursorPos < 0 || cursorPos > layout->preeditAreaText().length()) + cursorPos = -1; + + if (cursorPos >= 0) { + if (eventType == QEvent::MouseButtonRelease) + qApp->inputMethod()->invokeAction(QInputMethod::Click, cursorPos); + + e->setAccepted(true); + return true; + } + } +#else + Q_UNUSED(e); +#endif + return false; +} + +void QWidgetTextControlPrivate::contextMenuEvent(const QPoint &screenPos, const QPointF &docPos, QWidget *contextWidget) +{ +#ifdef QT_NO_CONTEXTMENU + Q_UNUSED(screenPos); + Q_UNUSED(docPos); + Q_UNUSED(contextWidget); +#else + Q_Q(QWidgetTextControl); + if (!hasFocus) + return; + QMenu *menu = q->createStandardContextMenu(docPos, contextWidget); + if (!menu) + return; + menu->setAttribute(Qt::WA_DeleteOnClose); + menu->popup(screenPos); +#endif +} + +bool QWidgetTextControlPrivate::dragEnterEvent(QEvent *e, const QMimeData *mimeData) +{ + Q_Q(QWidgetTextControl); + if (!(interactionFlags & Qt::TextEditable) || !q->canInsertFromMimeData(mimeData)) { + e->ignore(); + return false; + } + + dndFeedbackCursor = QTextCursor(); + + return true; // accept proposed action +} + +void QWidgetTextControlPrivate::dragLeaveEvent() +{ + Q_Q(QWidgetTextControl); + + const QRectF crect = q->cursorRect(dndFeedbackCursor); + dndFeedbackCursor = QTextCursor(); + + if (crect.isValid()) + emit q->updateRequest(crect); +} + +bool QWidgetTextControlPrivate::dragMoveEvent(QEvent *e, const QMimeData *mimeData, const QPointF &pos) +{ + Q_Q(QWidgetTextControl); + if (!(interactionFlags & Qt::TextEditable) || !q->canInsertFromMimeData(mimeData)) { + e->ignore(); + return false; + } + + const int cursorPos = q->hitTest(pos, Qt::FuzzyHit); + if (cursorPos != -1) { + QRectF crect = q->cursorRect(dndFeedbackCursor); + if (crect.isValid()) + emit q->updateRequest(crect); + + dndFeedbackCursor = cursor; + dndFeedbackCursor.setPosition(cursorPos); + + crect = q->cursorRect(dndFeedbackCursor); + emit q->updateRequest(crect); + } + + return true; // accept proposed action +} + +bool QWidgetTextControlPrivate::dropEvent(const QMimeData *mimeData, const QPointF &pos, Qt::DropAction dropAction, QObject *source) +{ + Q_Q(QWidgetTextControl); + dndFeedbackCursor = QTextCursor(); + + if (!(interactionFlags & Qt::TextEditable) || !q->canInsertFromMimeData(mimeData)) + return false; + + repaintSelection(); + + QTextCursor insertionCursor = q->cursorForPosition(pos); + insertionCursor.beginEditBlock(); + + if (dropAction == Qt::MoveAction && source == contextWidget) + cursor.removeSelectedText(); + + cursor = insertionCursor; + q->insertFromMimeData(mimeData); + insertionCursor.endEditBlock(); + q->ensureCursorVisible(); + return true; // accept proposed action +} + +void QWidgetTextControlPrivate::inputMethodEvent(QInputMethodEvent *e) +{ + Q_Q(QWidgetTextControl); + if (!(interactionFlags & Qt::TextEditable) || cursor.isNull()) { + e->ignore(); + return; + } + bool isGettingInput = !e->commitString().isEmpty() + || e->preeditString() != cursor.block().layout()->preeditAreaText() + || e->replacementLength() > 0; + + cursor.beginEditBlock(); + if (isGettingInput) { + cursor.removeSelectedText(); + } + + // insert commit string + if (!e->commitString().isEmpty() || e->replacementLength()) { + QTextCursor c = cursor; + c.setPosition(c.position() + e->replacementStart()); + c.setPosition(c.position() + e->replacementLength(), QTextCursor::KeepAnchor); + c.insertText(e->commitString()); + } + + for (int i = 0; i < e->attributes().size(); ++i) { + const QInputMethodEvent::Attribute &a = e->attributes().at(i); + if (a.type == QInputMethodEvent::Selection) { + QTextCursor oldCursor = cursor; + int blockStart = a.start + cursor.block().position(); + cursor.setPosition(blockStart, QTextCursor::MoveAnchor); + cursor.setPosition(blockStart + a.length, QTextCursor::KeepAnchor); + q->ensureCursorVisible(); + repaintOldAndNewSelection(oldCursor); + } + } + + QTextBlock block = cursor.block(); + QTextLayout *layout = block.layout(); + if (isGettingInput) + layout->setPreeditArea(cursor.position() - block.position(), e->preeditString()); + QList overrides; + const int oldPreeditCursor = preeditCursor; + preeditCursor = e->preeditString().length(); + hideCursor = false; + for (int i = 0; i < e->attributes().size(); ++i) { + const QInputMethodEvent::Attribute &a = e->attributes().at(i); + if (a.type == QInputMethodEvent::Cursor) { + preeditCursor = a.start; + hideCursor = !a.length; + } else if (a.type == QInputMethodEvent::TextFormat) { + QTextCharFormat f = qvariant_cast(a.value).toCharFormat(); + if (f.isValid()) { + QTextLayout::FormatRange o; + o.start = a.start + cursor.position() - block.position(); + o.length = a.length; + o.format = f; + overrides.append(o); + } + } + } + layout->setAdditionalFormats(overrides); + + cursor.endEditBlock(); + + if (cursor.d) + cursor.d->setX(); + if (oldPreeditCursor != preeditCursor) + emit q->microFocusChanged(); +} + +QVariant QWidgetTextControl::inputMethodQuery(Qt::InputMethodQuery property, QVariant argument) const +{ + Q_D(const QWidgetTextControl); + QTextBlock block = d->cursor.block(); + switch(property) { + case Qt::ImCursorRectangle: + return cursorRect(); + case Qt::ImFont: + return QVariant(d->cursor.charFormat().font()); + case Qt::ImCursorPosition: + return QVariant(d->cursor.position() - block.position()); + case Qt::ImSurroundingText: + return QVariant(block.text()); + case Qt::ImCurrentSelection: + return QVariant(d->cursor.selectedText()); + case Qt::ImMaximumTextLength: + return QVariant(); // No limit. + case Qt::ImAnchorPosition: + return QVariant(d->cursor.anchor() - block.position()); + case Qt::ImAbsolutePosition: + return QVariant(d->cursor.position()); + case Qt::ImTextAfterCursor: + { + int maxLength = argument.isValid() ? argument.toInt() : 1024; + QTextCursor tmpCursor = d->cursor; + int localPos = d->cursor.position() - block.position(); + QString result = block.text().mid(localPos); + while (result.length() < maxLength) { + int currentBlock = tmpCursor.blockNumber(); + tmpCursor.movePosition(QTextCursor::NextBlock); + if (tmpCursor.blockNumber() == currentBlock) + break; + result += QLatin1Char('\n') + tmpCursor.block().text(); + } + return QVariant(result); + } + case Qt::ImTextBeforeCursor: + { + int maxLength = argument.isValid() ? argument.toInt() : 1024; + QTextCursor tmpCursor = d->cursor; + int localPos = d->cursor.position() - block.position(); + int numBlocks = 0; + int resultLen = localPos; + while (resultLen < maxLength) { + int currentBlock = tmpCursor.blockNumber(); + tmpCursor.movePosition(QTextCursor::PreviousBlock); + if (tmpCursor.blockNumber() == currentBlock) + break; + numBlocks++; + resultLen += tmpCursor.block().length(); + } + QString result; + while (numBlocks) { + result += tmpCursor.block().text() + QLatin1Char('\n'); + tmpCursor.movePosition(QTextCursor::NextBlock); + --numBlocks; + } + result += block.text().mid(0,localPos); + return QVariant(result); + } + default: + return QVariant(); + } +} + +void QWidgetTextControl::setFocus(bool focus, Qt::FocusReason reason) +{ + QFocusEvent ev(focus ? QEvent::FocusIn : QEvent::FocusOut, + reason); + processEvent(&ev); +} + +void QWidgetTextControlPrivate::focusEvent(QFocusEvent *e) +{ + Q_Q(QWidgetTextControl); + emit q->updateRequest(q->selectionRect()); + if (e->gotFocus()) { +#ifdef QT_KEYPAD_NAVIGATION + if (!QApplication::keypadNavigationEnabled() || (hasEditFocus && (e->reason() == Qt::PopupFocusReason))) { +#endif + cursorOn = (interactionFlags & Qt::TextSelectableByKeyboard); + if (interactionFlags & Qt::TextEditable) { + setBlinkingCursorEnabled(true); + } +#ifdef QT_KEYPAD_NAVIGATION + } +#endif + } else { + setBlinkingCursorEnabled(false); + + if (cursorIsFocusIndicator + && e->reason() != Qt::ActiveWindowFocusReason + && e->reason() != Qt::PopupFocusReason + && cursor.hasSelection()) { + cursor.clearSelection(); + } + } + hasFocus = e->gotFocus(); +} + +QString QWidgetTextControlPrivate::anchorForCursor(const QTextCursor &anchorCursor) const +{ + if (anchorCursor.hasSelection()) { + QTextCursor cursor = anchorCursor; + if (cursor.selectionStart() != cursor.position()) + cursor.setPosition(cursor.selectionStart()); + cursor.movePosition(QTextCursor::NextCharacter); + QTextCharFormat fmt = cursor.charFormat(); + if (fmt.isAnchor() && fmt.hasProperty(QTextFormat::AnchorHref)) + return fmt.stringProperty(QTextFormat::AnchorHref); + } + return QString(); +} + +#ifdef QT_KEYPAD_NAVIGATION +void QWidgetTextControlPrivate::editFocusEvent(QEvent *e) +{ + Q_Q(QWidgetTextControl); + + if (QApplication::keypadNavigationEnabled()) { + if (e->type() == QEvent::EnterEditFocus && interactionFlags & Qt::TextEditable) { + const QTextCursor oldSelection = cursor; + const int oldCursorPos = cursor.position(); + const bool moved = cursor.movePosition(QTextCursor::End, QTextCursor::MoveAnchor); + q->ensureCursorVisible(); + if (moved) { + if (cursor.position() != oldCursorPos) + emit q->cursorPositionChanged(); + emit q->microFocusChanged(); + } + selectionChanged(); + repaintOldAndNewSelection(oldSelection); + + setBlinkingCursorEnabled(true); + } else + setBlinkingCursorEnabled(false); + } + + hasEditFocus = e->type() == QEvent::EnterEditFocus ? true : false; +} +#endif + +#ifndef QT_NO_CONTEXTMENU +static inline void setActionIcon(QAction *action, const QString &name) +{ + const QIcon icon = QIcon::fromTheme(name); + if (!icon.isNull()) + action->setIcon(icon); +} + +QMenu *QWidgetTextControl::createStandardContextMenu(const QPointF &pos, QWidget *parent) +{ + Q_D(QWidgetTextControl); + + const bool showTextSelectionActions = d->interactionFlags & (Qt::TextEditable | Qt::TextSelectableByKeyboard | Qt::TextSelectableByMouse); + + d->linkToCopy = QString(); + if (!pos.isNull()) + d->linkToCopy = anchorAt(pos); + + if (d->linkToCopy.isEmpty() && !showTextSelectionActions) + return 0; + + QMenu *menu = new QMenu(parent); + QAction *a; + + if (d->interactionFlags & Qt::TextEditable) { + a = menu->addAction(tr("&Undo") + ACCEL_KEY(QKeySequence::Undo), this, SLOT(undo())); + a->setEnabled(d->doc->isUndoAvailable()); + setActionIcon(a, QStringLiteral("edit-undo")); + a = menu->addAction(tr("&Redo") + ACCEL_KEY(QKeySequence::Redo), this, SLOT(redo())); + a->setEnabled(d->doc->isRedoAvailable()); + setActionIcon(a, QStringLiteral("edit-redo")); + menu->addSeparator(); + +#ifndef QT_NO_CLIPBOARD + a = menu->addAction(tr("Cu&t") + ACCEL_KEY(QKeySequence::Cut), this, SLOT(cut())); + a->setEnabled(d->cursor.hasSelection()); + setActionIcon(a, QStringLiteral("edit-cut")); +#endif + } + +#ifndef QT_NO_CLIPBOARD + if (showTextSelectionActions) { + a = menu->addAction(tr("&Copy") + ACCEL_KEY(QKeySequence::Copy), this, SLOT(copy())); + a->setEnabled(d->cursor.hasSelection()); + setActionIcon(a, QStringLiteral("edit-copy")); + } + + if ((d->interactionFlags & Qt::LinksAccessibleByKeyboard) + || (d->interactionFlags & Qt::LinksAccessibleByMouse)) { + + a = menu->addAction(tr("Copy &Link Location"), this, SLOT(_q_copyLink())); + a->setEnabled(!d->linkToCopy.isEmpty()); + } +#endif // QT_NO_CLIPBOARD + + if (d->interactionFlags & Qt::TextEditable) { +#ifndef QT_NO_CLIPBOARD + a = menu->addAction(tr("&Paste") + ACCEL_KEY(QKeySequence::Paste), this, SLOT(paste())); + a->setEnabled(canPaste()); + setActionIcon(a, QStringLiteral("edit-paste")); +#endif + a = menu->addAction(tr("Delete"), this, SLOT(_q_deleteSelected())); + a->setEnabled(d->cursor.hasSelection()); + setActionIcon(a, QStringLiteral("edit-delete")); + } + + + if (showTextSelectionActions) { + menu->addSeparator(); + a = menu->addAction(tr("Select All") + ACCEL_KEY(QKeySequence::SelectAll), this, SLOT(selectAll())); + a->setEnabled(!d->doc->isEmpty()); + } + + if ((d->interactionFlags & Qt::TextEditable) && qApp->styleHints()->useRtlExtensions()) { + menu->addSeparator(); + QUnicodeControlCharacterMenu *ctrlCharacterMenu = new QUnicodeControlCharacterMenu(this, menu); + menu->addMenu(ctrlCharacterMenu); + } + + return menu; +} +#endif // QT_NO_CONTEXTMENU + +QTextCursor QWidgetTextControl::cursorForPosition(const QPointF &pos) const +{ + Q_D(const QWidgetTextControl); + int cursorPos = hitTest(pos, Qt::FuzzyHit); + if (cursorPos == -1) + cursorPos = 0; + QTextCursor c(d->doc); + c.setPosition(cursorPos); + return c; +} + +QRectF QWidgetTextControl::cursorRect(const QTextCursor &cursor) const +{ + Q_D(const QWidgetTextControl); + if (cursor.isNull()) + return QRectF(); + + return d->rectForPosition(cursor.position()); +} + +QRectF QWidgetTextControl::cursorRect() const +{ + Q_D(const QWidgetTextControl); + return cursorRect(d->cursor); +} + +QRectF QWidgetTextControlPrivate::cursorRectPlusUnicodeDirectionMarkers(const QTextCursor &cursor) const +{ + if (cursor.isNull()) + return QRectF(); + + return rectForPosition(cursor.position()).adjusted(-4, 0, 4, 0); +} + +QString QWidgetTextControl::anchorAt(const QPointF &pos) const +{ + Q_D(const QWidgetTextControl); + return d->doc->documentLayout()->anchorAt(pos); +} + +QString QWidgetTextControl::anchorAtCursor() const +{ + Q_D(const QWidgetTextControl); + + return d->anchorForCursor(d->cursor); +} + +bool QWidgetTextControl::overwriteMode() const +{ + Q_D(const QWidgetTextControl); + return d->overwriteMode; +} + +void QWidgetTextControl::setOverwriteMode(bool overwrite) +{ + Q_D(QWidgetTextControl); + d->overwriteMode = overwrite; +} + +int QWidgetTextControl::cursorWidth() const +{ +#ifndef QT_NO_PROPERTIES + Q_D(const QWidgetTextControl); + return d->doc->documentLayout()->property("cursorWidth").toInt(); +#else + return 1; +#endif +} + +void QWidgetTextControl::setCursorWidth(int width) +{ + Q_D(QWidgetTextControl); +#ifdef QT_NO_PROPERTIES + Q_UNUSED(width); +#else + if (width == -1) + width = QApplication::style()->pixelMetric(QStyle::PM_TextCursorWidth); + d->doc->documentLayout()->setProperty("cursorWidth", width); +#endif + d->repaintCursor(); +} + +bool QWidgetTextControl::acceptRichText() const +{ + Q_D(const QWidgetTextControl); + return d->acceptRichText; +} + +void QWidgetTextControl::setAcceptRichText(bool accept) +{ + Q_D(QWidgetTextControl); + d->acceptRichText = accept; +} + +#ifndef QT_NO_TEXTEDIT + +void QWidgetTextControl::setExtraSelections(const QList &selections) +{ + Q_D(QWidgetTextControl); + + QHash hash; + for (int i = 0; i < d->extraSelections.count(); ++i) { + const QAbstractTextDocumentLayout::Selection &esel = d->extraSelections.at(i); + hash.insertMulti(esel.cursor.anchor(), i); + } + + for (int i = 0; i < selections.count(); ++i) { + const QTextEdit::ExtraSelection &sel = selections.at(i); + QHash::iterator it = hash.find(sel.cursor.anchor()); + if (it != hash.end()) { + const QAbstractTextDocumentLayout::Selection &esel = d->extraSelections.at(it.value()); + if (esel.cursor.position() == sel.cursor.position() + && esel.format == sel.format) { + hash.erase(it); + continue; + } + } + QRectF r = selectionRect(sel.cursor); + if (sel.format.boolProperty(QTextFormat::FullWidthSelection)) { + r.setLeft(0); + r.setWidth(qreal(INT_MAX)); + } + emit updateRequest(r); + } + + for (QHash::iterator it = hash.begin(); it != hash.end(); ++it) { + const QAbstractTextDocumentLayout::Selection &esel = d->extraSelections.at(it.value()); + QRectF r = selectionRect(esel.cursor); + if (esel.format.boolProperty(QTextFormat::FullWidthSelection)) { + r.setLeft(0); + r.setWidth(qreal(INT_MAX)); + } + emit updateRequest(r); + } + + d->extraSelections.resize(selections.count()); + for (int i = 0; i < selections.count(); ++i) { + d->extraSelections[i].cursor = selections.at(i).cursor; + d->extraSelections[i].format = selections.at(i).format; + } +} + +QList QWidgetTextControl::extraSelections() const +{ + Q_D(const QWidgetTextControl); + QList selections; + for (int i = 0; i < d->extraSelections.count(); ++i) { + QTextEdit::ExtraSelection sel; + sel.cursor = d->extraSelections.at(i).cursor; + sel.format = d->extraSelections.at(i).format; + selections.append(sel); + } + return selections; +} + +#endif // QT_NO_TEXTEDIT + +void QWidgetTextControl::setTextWidth(qreal width) +{ + Q_D(QWidgetTextControl); + d->doc->setTextWidth(width); +} + +qreal QWidgetTextControl::textWidth() const +{ + Q_D(const QWidgetTextControl); + return d->doc->textWidth(); +} + +QSizeF QWidgetTextControl::size() const +{ + Q_D(const QWidgetTextControl); + return d->doc->size(); +} + +void QWidgetTextControl::setOpenExternalLinks(bool open) +{ + Q_D(QWidgetTextControl); + d->openExternalLinks = open; +} + +bool QWidgetTextControl::openExternalLinks() const +{ + Q_D(const QWidgetTextControl); + return d->openExternalLinks; +} + +bool QWidgetTextControl::ignoreUnusedNavigationEvents() const +{ + Q_D(const QWidgetTextControl); + return d->ignoreUnusedNavigationEvents; +} + +void QWidgetTextControl::setIgnoreUnusedNavigationEvents(bool ignore) +{ + Q_D(QWidgetTextControl); + d->ignoreUnusedNavigationEvents = ignore; +} + +void QWidgetTextControl::moveCursor(QTextCursor::MoveOperation op, QTextCursor::MoveMode mode) +{ + Q_D(QWidgetTextControl); + const QTextCursor oldSelection = d->cursor; + const bool moved = d->cursor.movePosition(op, mode); + d->_q_updateCurrentCharFormatAndSelection(); + ensureCursorVisible(); + d->repaintOldAndNewSelection(oldSelection); + if (moved) + emit cursorPositionChanged(); +} + +bool QWidgetTextControl::canPaste() const +{ +#ifndef QT_NO_CLIPBOARD + Q_D(const QWidgetTextControl); + if (d->interactionFlags & Qt::TextEditable) { + const QMimeData *md = QApplication::clipboard()->mimeData(); + return md && canInsertFromMimeData(md); + } +#endif + return false; +} + +void QWidgetTextControl::setCursorIsFocusIndicator(bool b) +{ + Q_D(QWidgetTextControl); + d->cursorIsFocusIndicator = b; + d->repaintCursor(); +} + +bool QWidgetTextControl::cursorIsFocusIndicator() const +{ + Q_D(const QWidgetTextControl); + return d->cursorIsFocusIndicator; +} + + +void QWidgetTextControl::setDragEnabled(bool enabled) +{ + Q_D(QWidgetTextControl); + d->dragEnabled = enabled; +} + +bool QWidgetTextControl::isDragEnabled() const +{ + Q_D(const QWidgetTextControl); + return d->dragEnabled; +} + +void QWidgetTextControl::setWordSelectionEnabled(bool enabled) +{ + Q_D(QWidgetTextControl); + d->wordSelectionEnabled = enabled; +} + +bool QWidgetTextControl::isWordSelectionEnabled() const +{ + Q_D(const QWidgetTextControl); + return d->wordSelectionEnabled; +} + +#ifndef QT_NO_PRINTER +void QWidgetTextControl::print(QPagedPaintDevice *printer) const +{ + Q_D(const QWidgetTextControl); + if (!printer) + return; + QTextDocument *tempDoc = 0; + const QTextDocument *doc = d->doc; + if (QPagedPaintDevicePrivate::get(printer)->printSelectionOnly) { + if (!d->cursor.hasSelection()) + return; + tempDoc = new QTextDocument(const_cast(doc)); + tempDoc->setMetaInformation(QTextDocument::DocumentTitle, doc->metaInformation(QTextDocument::DocumentTitle)); + tempDoc->setPageSize(doc->pageSize()); + tempDoc->setDefaultFont(doc->defaultFont()); + tempDoc->setUseDesignMetrics(doc->useDesignMetrics()); + QTextCursor(tempDoc).insertFragment(d->cursor.selection()); + doc = tempDoc; + + // copy the custom object handlers + doc->documentLayout()->d_func()->handlers = d->doc->documentLayout()->d_func()->handlers; + } + doc->print(printer); + delete tempDoc; +} +#endif + +QMimeData *QWidgetTextControl::createMimeDataFromSelection() const +{ + Q_D(const QWidgetTextControl); + const QTextDocumentFragment fragment(d->cursor); + return new QTextEditMimeData(fragment); +} + +bool QWidgetTextControl::canInsertFromMimeData(const QMimeData *source) const +{ + Q_D(const QWidgetTextControl); + if (d->acceptRichText) + return (source->hasText() && !source->text().isEmpty()) + || source->hasHtml() + || source->hasFormat(QLatin1String("application/x-qrichtext")) + || source->hasFormat(QLatin1String("application/x-qt-richtext")); + else + return source->hasText() && !source->text().isEmpty(); +} + +void QWidgetTextControl::insertFromMimeData(const QMimeData *source) +{ + Q_D(QWidgetTextControl); + if (!(d->interactionFlags & Qt::TextEditable) || !source) + return; + + bool hasData = false; + QTextDocumentFragment fragment; +#ifndef QT_NO_TEXTHTMLPARSER + if (source->hasFormat(QLatin1String("application/x-qrichtext")) && d->acceptRichText) { + // x-qrichtext is always UTF-8 (taken from Qt3 since we don't use it anymore). + QString richtext = QString::fromUtf8(source->data(QLatin1String("application/x-qrichtext"))); + richtext.prepend(QLatin1String("")); + fragment = QTextDocumentFragment::fromHtml(richtext, d->doc); + hasData = true; + } else if (source->hasHtml() && d->acceptRichText) { + fragment = QTextDocumentFragment::fromHtml(source->html(), d->doc); + hasData = true; + } else { + QString text = source->text(); + if (!text.isNull()) { + fragment = QTextDocumentFragment::fromPlainText(text); + hasData = true; + } + } +#else + fragment = QTextDocumentFragment::fromPlainText(source->text()); +#endif // QT_NO_TEXTHTMLPARSER + + if (hasData) + d->cursor.insertFragment(fragment); + ensureCursorVisible(); +} + +bool QWidgetTextControl::findNextPrevAnchor(const QTextCursor &startCursor, bool next, QTextCursor &newAnchor) +{ + Q_D(QWidgetTextControl); + + int anchorStart = -1; + QString anchorHref; + int anchorEnd = -1; + + if (next) { + const int startPos = startCursor.selectionEnd(); + + QTextBlock block = d->doc->findBlock(startPos); + QTextBlock::Iterator it = block.begin(); + + while (!it.atEnd() && it.fragment().position() < startPos) + ++it; + + while (block.isValid()) { + anchorStart = -1; + + // find next anchor + for (; !it.atEnd(); ++it) { + const QTextFragment fragment = it.fragment(); + const QTextCharFormat fmt = fragment.charFormat(); + + if (fmt.isAnchor() && fmt.hasProperty(QTextFormat::AnchorHref)) { + anchorStart = fragment.position(); + anchorHref = fmt.anchorHref(); + break; + } + } + + if (anchorStart != -1) { + anchorEnd = -1; + + // find next non-anchor fragment + for (; !it.atEnd(); ++it) { + const QTextFragment fragment = it.fragment(); + const QTextCharFormat fmt = fragment.charFormat(); + + if (!fmt.isAnchor() || fmt.anchorHref() != anchorHref) { + anchorEnd = fragment.position(); + break; + } + } + + if (anchorEnd == -1) + anchorEnd = block.position() + block.length() - 1; + + // make found selection + break; + } + + block = block.next(); + it = block.begin(); + } + } else { + int startPos = startCursor.selectionStart(); + if (startPos > 0) + --startPos; + + QTextBlock block = d->doc->findBlock(startPos); + QTextBlock::Iterator blockStart = block.begin(); + QTextBlock::Iterator it = block.end(); + + if (startPos == block.position()) { + it = block.begin(); + } else { + do { + if (it == blockStart) { + it = QTextBlock::Iterator(); + block = QTextBlock(); + } else { + --it; + } + } while (!it.atEnd() && it.fragment().position() + it.fragment().length() - 1 > startPos); + } + + while (block.isValid()) { + anchorStart = -1; + + if (!it.atEnd()) { + do { + const QTextFragment fragment = it.fragment(); + const QTextCharFormat fmt = fragment.charFormat(); + + if (fmt.isAnchor() && fmt.hasProperty(QTextFormat::AnchorHref)) { + anchorStart = fragment.position() + fragment.length(); + anchorHref = fmt.anchorHref(); + break; + } + + if (it == blockStart) + it = QTextBlock::Iterator(); + else + --it; + } while (!it.atEnd()); + } + + if (anchorStart != -1 && !it.atEnd()) { + anchorEnd = -1; + + do { + const QTextFragment fragment = it.fragment(); + const QTextCharFormat fmt = fragment.charFormat(); + + if (!fmt.isAnchor() || fmt.anchorHref() != anchorHref) { + anchorEnd = fragment.position() + fragment.length(); + break; + } + + if (it == blockStart) + it = QTextBlock::Iterator(); + else + --it; + } while (!it.atEnd()); + + if (anchorEnd == -1) + anchorEnd = qMax(0, block.position()); + + break; + } + + block = block.previous(); + it = block.end(); + if (it != block.begin()) + --it; + blockStart = block.begin(); + } + + } + + if (anchorStart != -1 && anchorEnd != -1) { + newAnchor = d->cursor; + newAnchor.setPosition(anchorStart); + newAnchor.setPosition(anchorEnd, QTextCursor::KeepAnchor); + return true; + } + + return false; +} + +void QWidgetTextControlPrivate::activateLinkUnderCursor(QString href) +{ + QTextCursor oldCursor = cursor; + + if (href.isEmpty()) { + QTextCursor tmp = cursor; + if (tmp.selectionStart() != tmp.position()) + tmp.setPosition(tmp.selectionStart()); + tmp.movePosition(QTextCursor::NextCharacter); + href = tmp.charFormat().anchorHref(); + } + if (href.isEmpty()) + return; + + if (!cursor.hasSelection()) { + QTextBlock block = cursor.block(); + const int cursorPos = cursor.position(); + + QTextBlock::Iterator it = block.begin(); + QTextBlock::Iterator linkFragment; + + for (; !it.atEnd(); ++it) { + QTextFragment fragment = it.fragment(); + const int fragmentPos = fragment.position(); + if (fragmentPos <= cursorPos && + fragmentPos + fragment.length() > cursorPos) { + linkFragment = it; + break; + } + } + + if (!linkFragment.atEnd()) { + it = linkFragment; + cursor.setPosition(it.fragment().position()); + if (it != block.begin()) { + do { + --it; + QTextFragment fragment = it.fragment(); + if (fragment.charFormat().anchorHref() != href) + break; + cursor.setPosition(fragment.position()); + } while (it != block.begin()); + } + + for (it = linkFragment; !it.atEnd(); ++it) { + QTextFragment fragment = it.fragment(); + if (fragment.charFormat().anchorHref() != href) + break; + cursor.setPosition(fragment.position() + fragment.length(), QTextCursor::KeepAnchor); + } + } + } + + if (hasFocus) { + cursorIsFocusIndicator = true; + } else { + cursorIsFocusIndicator = false; + cursor.clearSelection(); + } + repaintOldAndNewSelection(oldCursor); + +#ifndef QT_NO_DESKTOPSERVICES + if (openExternalLinks) + QDesktopServices::openUrl(href); + else +#endif + emit q_func()->linkActivated(href); +} + +#ifndef QT_NO_TOOLTIP +void QWidgetTextControlPrivate::showToolTip(const QPoint &globalPos, const QPointF &pos, QWidget *contextWidget) +{ + const QString toolTip = q_func()->cursorForPosition(pos).charFormat().toolTip(); + if (toolTip.isEmpty()) + return; + QToolTip::showText(globalPos, toolTip, contextWidget); +} +#endif // QT_NO_TOOLTIP + +bool QWidgetTextControlPrivate::isPreediting() const +{ + QTextLayout *layout = cursor.block().layout(); + if (layout && !layout->preeditAreaText().isEmpty()) + return true; + + return false; +} + +void QWidgetTextControlPrivate::commitPreedit() +{ + if (!isPreediting()) + return; + + qApp->inputMethod()->commit(); + + if (!isPreediting()) + return; + + cursor.beginEditBlock(); + preeditCursor = 0; + QTextBlock block = cursor.block(); + QTextLayout *layout = block.layout(); + layout->setPreeditArea(-1, QString()); + layout->clearAdditionalFormats(); + cursor.endEditBlock(); +} + +bool QWidgetTextControl::setFocusToNextOrPreviousAnchor(bool next) +{ + Q_D(QWidgetTextControl); + + if (!(d->interactionFlags & Qt::LinksAccessibleByKeyboard)) + return false; + + QRectF crect = selectionRect(); + emit updateRequest(crect); + + // If we don't have a current anchor, we start from the start/end + if (!d->cursor.hasSelection()) { + d->cursor = QTextCursor(d->doc); + if (next) + d->cursor.movePosition(QTextCursor::Start); + else + d->cursor.movePosition(QTextCursor::End); + } + + QTextCursor newAnchor; + if (findNextPrevAnchor(d->cursor, next, newAnchor)) { + d->cursor = newAnchor; + d->cursorIsFocusIndicator = true; + } else { + d->cursor.clearSelection(); + } + + if (d->cursor.hasSelection()) { + crect = selectionRect(); + emit updateRequest(crect); + emit visibilityRequest(crect); + return true; + } else { + return false; + } +} + +bool QWidgetTextControl::setFocusToAnchor(const QTextCursor &newCursor) +{ + Q_D(QWidgetTextControl); + + if (!(d->interactionFlags & Qt::LinksAccessibleByKeyboard)) + return false; + + // Verify that this is an anchor. + const QString anchorHref = d->anchorForCursor(newCursor); + if (anchorHref.isEmpty()) + return false; + + // and process it + QRectF crect = selectionRect(); + emit updateRequest(crect); + + d->cursor.setPosition(newCursor.selectionStart()); + d->cursor.setPosition(newCursor.selectionEnd(), QTextCursor::KeepAnchor); + d->cursorIsFocusIndicator = true; + + crect = selectionRect(); + emit updateRequest(crect); + emit visibilityRequest(crect); + return true; +} + +void QWidgetTextControl::setTextInteractionFlags(Qt::TextInteractionFlags flags) +{ + Q_D(QWidgetTextControl); + if (flags == d->interactionFlags) + return; + d->interactionFlags = flags; + + if (d->hasFocus) + d->setBlinkingCursorEnabled(flags & Qt::TextEditable); +} + +Qt::TextInteractionFlags QWidgetTextControl::textInteractionFlags() const +{ + Q_D(const QWidgetTextControl); + return d->interactionFlags; +} + +void QWidgetTextControl::mergeCurrentCharFormat(const QTextCharFormat &modifier) +{ + Q_D(QWidgetTextControl); + d->cursor.mergeCharFormat(modifier); + d->updateCurrentCharFormat(); +} + +void QWidgetTextControl::setCurrentCharFormat(const QTextCharFormat &format) +{ + Q_D(QWidgetTextControl); + d->cursor.setCharFormat(format); + d->updateCurrentCharFormat(); +} + +QTextCharFormat QWidgetTextControl::currentCharFormat() const +{ + Q_D(const QWidgetTextControl); + return d->cursor.charFormat(); +} + +void QWidgetTextControl::insertPlainText(const QString &text) +{ + Q_D(QWidgetTextControl); + d->cursor.insertText(text); +} + +#ifndef QT_NO_TEXTHTMLPARSER +void QWidgetTextControl::insertHtml(const QString &text) +{ + Q_D(QWidgetTextControl); + d->cursor.insertHtml(text); +} +#endif // QT_NO_TEXTHTMLPARSER + +QPointF QWidgetTextControl::anchorPosition(const QString &name) const +{ + Q_D(const QWidgetTextControl); + if (name.isEmpty()) + return QPointF(); + + QRectF r; + for (QTextBlock block = d->doc->begin(); block.isValid(); block = block.next()) { + QTextCharFormat format = block.charFormat(); + if (format.isAnchor() && format.anchorNames().contains(name)) { + r = d->rectForPosition(block.position()); + break; + } + + for (QTextBlock::Iterator it = block.begin(); !it.atEnd(); ++it) { + QTextFragment fragment = it.fragment(); + format = fragment.charFormat(); + if (format.isAnchor() && format.anchorNames().contains(name)) { + r = d->rectForPosition(fragment.position()); + block = QTextBlock(); + break; + } + } + } + if (!r.isValid()) + return QPointF(); + return QPointF(0, r.top()); +} + +void QWidgetTextControl::adjustSize() +{ + Q_D(QWidgetTextControl); + d->doc->adjustSize(); +} + +bool QWidgetTextControl::find(const QString &exp, QTextDocument::FindFlags options) +{ + Q_D(QWidgetTextControl); + QTextCursor search = d->doc->find(exp, d->cursor, options); + if (search.isNull()) + return false; + + setTextCursor(search); + return true; +} + +#ifndef QT_NO_REGEXP +bool QWidgetTextControl::find(const QRegExp &exp, QTextDocument::FindFlags options) +{ + Q_D(QWidgetTextControl); + QTextCursor search = d->doc->find(exp, d->cursor, options); + if (search.isNull()) + return false; + + setTextCursor(search); + return true; +} +#endif + +QString QWidgetTextControl::toPlainText() const +{ + return document()->toPlainText(); +} + +#ifndef QT_NO_TEXTHTMLPARSER +QString QWidgetTextControl::toHtml() const +{ + return document()->toHtml(); +} +#endif + +void QWidgetTextControlPrivate::append(const QString &text, Qt::TextFormat format) +{ + QTextCursor tmp(doc); + tmp.beginEditBlock(); + tmp.movePosition(QTextCursor::End); + + if (!doc->isEmpty()) + tmp.insertBlock(cursor.blockFormat(), cursor.charFormat()); + else + tmp.setCharFormat(cursor.charFormat()); + + // preserve the char format + QTextCharFormat oldCharFormat = cursor.charFormat(); + +#ifndef QT_NO_TEXTHTMLPARSER + if (format == Qt::RichText || (format == Qt::AutoText && Qt::mightBeRichText(text))) { + tmp.insertHtml(text); + } else { + tmp.insertText(text); + } +#else + tmp.insertText(text); +#endif // QT_NO_TEXTHTMLPARSER + if (!cursor.hasSelection()) + cursor.setCharFormat(oldCharFormat); + + tmp.endEditBlock(); +} + +void QWidgetTextControl::append(const QString &text) +{ + Q_D(QWidgetTextControl); + d->append(text, Qt::AutoText); +} + +void QWidgetTextControl::appendHtml(const QString &html) +{ + Q_D(QWidgetTextControl); + d->append(html, Qt::RichText); +} + +void QWidgetTextControl::appendPlainText(const QString &text) +{ + Q_D(QWidgetTextControl); + d->append(text, Qt::PlainText); +} + + +void QWidgetTextControl::ensureCursorVisible() +{ + Q_D(QWidgetTextControl); + QRectF crect = d->rectForPosition(d->cursor.position()).adjusted(-5, 0, 5, 0); + emit visibilityRequest(crect); + emit microFocusChanged(); +} + +QPalette QWidgetTextControl::palette() const +{ + Q_D(const QWidgetTextControl); + return d->palette; +} + +void QWidgetTextControl::setPalette(const QPalette &pal) +{ + Q_D(QWidgetTextControl); + d->palette = pal; +} + +QAbstractTextDocumentLayout::PaintContext QWidgetTextControl::getPaintContext(QWidget *widget) const +{ + Q_D(const QWidgetTextControl); + + QAbstractTextDocumentLayout::PaintContext ctx; + + ctx.selections = d->extraSelections; + ctx.palette = d->palette; + if (d->cursorOn && d->isEnabled) { + if (d->hideCursor) + ctx.cursorPosition = -1; + else if (d->preeditCursor != 0) + ctx.cursorPosition = - (d->preeditCursor + 2); + else + ctx.cursorPosition = d->cursor.position(); + } + + if (!d->dndFeedbackCursor.isNull()) + ctx.cursorPosition = d->dndFeedbackCursor.position(); +#ifdef QT_KEYPAD_NAVIGATION + if (!QApplication::keypadNavigationEnabled() || d->hasEditFocus) +#endif + if (d->cursor.hasSelection()) { + QAbstractTextDocumentLayout::Selection selection; + selection.cursor = d->cursor; + if (d->cursorIsFocusIndicator) { + QStyleOption opt; + opt.palette = ctx.palette; + QStyleHintReturnVariant ret; + QStyle *style = QApplication::style(); + if (widget) + style = widget->style(); + style->styleHint(QStyle::SH_TextControl_FocusIndicatorTextCharFormat, &opt, widget, &ret); + selection.format = qvariant_cast(ret.variant).toCharFormat(); + } else { + QPalette::ColorGroup cg = d->hasFocus ? QPalette::Active : QPalette::Inactive; + selection.format.setBackground(ctx.palette.brush(cg, QPalette::Highlight)); + selection.format.setForeground(ctx.palette.brush(cg, QPalette::HighlightedText)); + QStyleOption opt; + QStyle *style = QApplication::style(); + if (widget) { + opt.initFrom(widget); + style = widget->style(); + } + if (style->styleHint(QStyle::SH_RichText_FullWidthSelection, &opt, widget)) + selection.format.setProperty(QTextFormat::FullWidthSelection, true); + } + ctx.selections.append(selection); + } + + return ctx; +} + +void QWidgetTextControl::drawContents(QPainter *p, const QRectF &rect, QWidget *widget) +{ + Q_D(QWidgetTextControl); + p->save(); + QAbstractTextDocumentLayout::PaintContext ctx = getPaintContext(widget); + if (rect.isValid()) + p->setClipRect(rect, Qt::IntersectClip); + ctx.clip = rect; + + d->doc->documentLayout()->draw(p, ctx); + p->restore(); +} + +void QWidgetTextControlPrivate::_q_copyLink() +{ +#ifndef QT_NO_CLIPBOARD + QMimeData *md = new QMimeData; + md->setText(linkToCopy); + QApplication::clipboard()->setMimeData(md); +#endif +} + +int QWidgetTextControl::hitTest(const QPointF &point, Qt::HitTestAccuracy accuracy) const +{ + Q_D(const QWidgetTextControl); + return d->doc->documentLayout()->hitTest(point, accuracy); +} + +QRectF QWidgetTextControl::blockBoundingRect(const QTextBlock &block) const +{ + Q_D(const QWidgetTextControl); + return d->doc->documentLayout()->blockBoundingRect(block); +} + +#ifndef QT_NO_CONTEXTMENU +#define NUM_CONTROL_CHARACTERS 14 +const struct QUnicodeControlCharacter { + const char *text; + ushort character; +} qt_controlCharacters[NUM_CONTROL_CHARACTERS] = { + { QT_TRANSLATE_NOOP("QUnicodeControlCharacterMenu", "LRM Left-to-right mark"), 0x200e }, + { QT_TRANSLATE_NOOP("QUnicodeControlCharacterMenu", "RLM Right-to-left mark"), 0x200f }, + { QT_TRANSLATE_NOOP("QUnicodeControlCharacterMenu", "ZWJ Zero width joiner"), 0x200d }, + { QT_TRANSLATE_NOOP("QUnicodeControlCharacterMenu", "ZWNJ Zero width non-joiner"), 0x200c }, + { QT_TRANSLATE_NOOP("QUnicodeControlCharacterMenu", "ZWSP Zero width space"), 0x200b }, + { QT_TRANSLATE_NOOP("QUnicodeControlCharacterMenu", "LRE Start of left-to-right embedding"), 0x202a }, + { QT_TRANSLATE_NOOP("QUnicodeControlCharacterMenu", "RLE Start of right-to-left embedding"), 0x202b }, + { QT_TRANSLATE_NOOP("QUnicodeControlCharacterMenu", "LRO Start of left-to-right override"), 0x202d }, + { QT_TRANSLATE_NOOP("QUnicodeControlCharacterMenu", "RLO Start of right-to-left override"), 0x202e }, + { QT_TRANSLATE_NOOP("QUnicodeControlCharacterMenu", "PDF Pop directional formatting"), 0x202c }, + { QT_TRANSLATE_NOOP("QUnicodeControlCharacterMenu", "LRI Left-to-right isolate"), 0x2066 }, + { QT_TRANSLATE_NOOP("QUnicodeControlCharacterMenu", "RLI Right-to-left isolate"), 0x2067 }, + { QT_TRANSLATE_NOOP("QUnicodeControlCharacterMenu", "FSI First strong isolate"), 0x2068 }, + { QT_TRANSLATE_NOOP("QUnicodeControlCharacterMenu", "PDI Pop directional isolate"), 0x2069 } +}; + +QUnicodeControlCharacterMenu::QUnicodeControlCharacterMenu(QObject *_editWidget, QWidget *parent) + : QMenu(parent), editWidget(_editWidget) +{ + setTitle(tr("Insert Unicode control character")); + for (int i = 0; i < NUM_CONTROL_CHARACTERS; ++i) { + addAction(tr(qt_controlCharacters[i].text), this, SLOT(menuActionTriggered())); + } +} + +void QUnicodeControlCharacterMenu::menuActionTriggered() +{ + QAction *a = qobject_cast(sender()); + int idx = actions().indexOf(a); + if (idx < 0 || idx >= NUM_CONTROL_CHARACTERS) + return; + QChar c(qt_controlCharacters[idx].character); + QString str(c); + +#ifndef QT_NO_TEXTEDIT + if (QTextEdit *edit = qobject_cast(editWidget)) { + edit->insertPlainText(str); + return; + } +#endif + if (QWidgetTextControl *control = qobject_cast(editWidget)) { + control->insertPlainText(str); + } +#ifndef QT_NO_LINEEDIT + if (QLineEdit *edit = qobject_cast(editWidget)) { + edit->insert(str); + return; + } +#endif +} +#endif // QT_NO_CONTEXTMENU + +QStringList QTextEditMimeData::formats() const +{ + if (!fragment.isEmpty()) + return QStringList() << QString::fromLatin1("text/plain") << QString::fromLatin1("text/html") +#ifndef QT_NO_TEXTODFWRITER + << QString::fromLatin1("application/vnd.oasis.opendocument.text") +#endif + ; + else + return QMimeData::formats(); +} + +QVariant QTextEditMimeData::retrieveData(const QString &mimeType, QVariant::Type type) const +{ + if (!fragment.isEmpty()) + setup(); + return QMimeData::retrieveData(mimeType, type); +} + +void QTextEditMimeData::setup() const +{ + QTextEditMimeData *that = const_cast(this); +#ifndef QT_NO_TEXTHTMLPARSER + that->setData(QLatin1String("text/html"), fragment.toHtml("utf-8").toUtf8()); +#endif +#ifndef QT_NO_TEXTODFWRITER + { + QBuffer buffer; + QTextDocumentWriter writer(&buffer, "ODF"); + writer.write(fragment); + buffer.close(); + that->setData(QLatin1String("application/vnd.oasis.opendocument.text"), buffer.data()); + } +#endif + that->setText(fragment.toPlainText()); + fragment = QTextDocumentFragment(); +} + +QT_END_NAMESPACE + +#include "moc_qwidgettextcontrol_p.cpp" + +#endif // QT_NO_TEXTCONTROL From a2203904fcedb5fb66bdc93acd7400a572a8cb99 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 10 Feb 2015 18:55:04 +0000 Subject: [PATCH 2/3] qt 5.4 patch in .diff format added, time display in system settings done --- Telegram/SourceFiles/app.cpp | 10 +- Telegram/SourceFiles/application.cpp | 2 + Telegram/SourceFiles/history.cpp | 6 +- Telegram/SourceFiles/mainwidget.cpp | 2 +- Telegram/SourceFiles/mediaview.cpp | 6 +- Telegram/SourceFiles/settings.cpp | 2 + Telegram/SourceFiles/settings.h | 5 + Telegram/SourceFiles/window.cpp | 2 +- Telegram/Telegram.vcxproj | 16 +- _qt_5_4_0_patch.diff | 822 +++++++++++++++++++++++++++ 10 files changed, 852 insertions(+), 21 deletions(-) create mode 100644 _qt_5_4_0_patch.diff diff --git a/Telegram/SourceFiles/app.cpp b/Telegram/SourceFiles/app.cpp index 9e3e5d416..6abb62d06 100644 --- a/Telegram/SourceFiles/app.cpp +++ b/Telegram/SourceFiles/app.cpp @@ -246,11 +246,11 @@ namespace App { if (precise) { QDateTime dOnline(date(online)), dNow(date(now)); if (dOnline.date() == dNow.date()) { - return lng_status_lastseen_today(lt_time, dOnline.time().toString(qsl("hh:mm"))); + return lng_status_lastseen_today(lt_time, dOnline.time().toString(cTimeFormat())); } else if (dOnline.date().addDays(1) == dNow.date()) { - return lng_status_lastseen_yesterday(lt_time, dOnline.time().toString(qsl("hh:mm"))); + return lng_status_lastseen_yesterday(lt_time, dOnline.time().toString(cTimeFormat())); } - return lng_status_lastseen_date_time(lt_date, dOnline.date().toString(qsl("dd.MM.yy")), lt_time, dOnline.time().toString(qsl("hh:mm"))); + return lng_status_lastseen_date_time(lt_date, dOnline.date().toString(qsl("dd.MM.yy")), lt_time, dOnline.time().toString(cTimeFormat())); } int32 minutes = (now - online) / 60; if (!minutes) { @@ -264,9 +264,9 @@ namespace App { } QDateTime dOnline(date(online)), dNow(date(now)); if (dOnline.date() == dNow.date()) { - return lng_status_lastseen_today(lt_time, dOnline.time().toString(qsl("hh:mm"))); + return lng_status_lastseen_today(lt_time, dOnline.time().toString(cTimeFormat())); } else if (dOnline.date().addDays(1) == dNow.date()) { - return lng_status_lastseen_yesterday(lt_time, dOnline.time().toString(qsl("hh:mm"))); + return lng_status_lastseen_yesterday(lt_time, dOnline.time().toString(cTimeFormat())); } return lng_status_lastseen_date(lt_date, dOnline.date().toString(qsl("dd.MM.yy"))); } diff --git a/Telegram/SourceFiles/application.cpp b/Telegram/SourceFiles/application.cpp index 0adc0915c..3f97b21f4 100644 --- a/Telegram/SourceFiles/application.cpp +++ b/Telegram/SourceFiles/application.cpp @@ -655,6 +655,8 @@ void Application::socketError(QLocalSocket::LocalSocketError e) { } void Application::startApp() { + cChangeTimeFormat(QLocale::system().timeFormat(QLocale::ShortFormat)); + DEBUG_LOG(("Application Info: starting app..")); Local::ReadMapState state = Local::readMap(QByteArray()); diff --git a/Telegram/SourceFiles/history.cpp b/Telegram/SourceFiles/history.cpp index db1bc3d7f..471f4d679 100644 --- a/Telegram/SourceFiles/history.cpp +++ b/Telegram/SourceFiles/history.cpp @@ -820,7 +820,7 @@ void DialogRow::paint(QPainter &p, int32 w, bool act, bool sel) const { QDate nowDate(now.date()), lastDate(lastTime.date()); QString dt; if (lastDate == nowDate) { - dt = lastTime.toString(qsl("hh:mm")); + dt = lastTime.toString(cTimeFormat()); } else if (lastDate.year() == nowDate.year() && lastDate.weekNumber() == nowDate.weekNumber()) { dt = langDayOfWeek(lastDate); } else { @@ -900,7 +900,7 @@ void FakeDialogRow::paint(QPainter &p, int32 w, bool act, bool sel) const { QDate nowDate(now.date()), lastDate(lastTime.date()); QString dt; if (lastDate == nowDate) { - dt = lastTime.toString(qsl("hh:mm")); + dt = lastTime.toString(cTimeFormat()); } else if (lastDate.year() == nowDate.year() && lastDate.weekNumber() == nowDate.weekNumber()) { dt = langDayOfWeek(lastDate); } else { @@ -4029,7 +4029,7 @@ void HistoryMessage::initMediaFromDocument(DocumentData *doc) { } void HistoryMessage::initDimensions(const QString &text) { - _time = date.toString(qsl("hh:mm")); + _time = date.toString(cTimeFormat()); _timeWidth = st::msgDateFont->m.width(_time); if (!_media) { _timeWidth += st::msgDateSpace + (out() ? st::msgDateCheckSpace + st::msgCheckRect.pxWidth() : 0) - st::msgDateDelta.x(); diff --git a/Telegram/SourceFiles/mainwidget.cpp b/Telegram/SourceFiles/mainwidget.cpp index 7ddc39003..ace1bd7d8 100644 --- a/Telegram/SourceFiles/mainwidget.cpp +++ b/Telegram/SourceFiles/mainwidget.cpp @@ -2965,7 +2965,7 @@ void MainWidget::feedUpdate(const MTPUpdate &update) { QDateTime datetime = date(d.vdate); QString name = App::self()->firstName; - QString day = langDayOfWeekFull(datetime.date()), date = langDayOfMonth(datetime.date()), time = datetime.time().toString(qsl("hh:mm")); + QString day = langDayOfWeekFull(datetime.date()), date = langDayOfMonth(datetime.date()), time = datetime.time().toString(cTimeFormat()); QString device = qs(d.vdevice), location = qs(d.vlocation); LangString text = lng_new_authorization(lt_name, App::self()->firstName, lt_day, day, lt_date, date, lt_time, time, lt_device, device, lt_location, location); App::wnd()->serviceNotification(text); diff --git a/Telegram/SourceFiles/mediaview.cpp b/Telegram/SourceFiles/mediaview.cpp index 646c31c1b..02b3303d4 100644 --- a/Telegram/SourceFiles/mediaview.cpp +++ b/Telegram/SourceFiles/mediaview.cpp @@ -173,11 +173,11 @@ void MediaView::updateControls() { } QDateTime d(date(_photo ? _photo->date : _doc->date)), dNow(date(unixtime())); if (d.date() == dNow.date()) { - _dateText = lng_mediaview_today(lt_time, d.time().toString(qsl("hh:mm"))); + _dateText = lng_mediaview_today(lt_time, d.time().toString(cTimeFormat())); } else if (d.date().addDays(1) == dNow.date()) { - _dateText = lng_mediaview_yesterday(lt_time, d.time().toString(qsl("hh:mm"))); + _dateText = lng_mediaview_yesterday(lt_time, d.time().toString(cTimeFormat())); } else { - _dateText = lng_mediaview_date_time(lt_date, d.date().toString(qsl("dd.MM.yy")), lt_time, d.time().toString(qsl("hh:mm"))); + _dateText = lng_mediaview_date_time(lt_date, d.date().toString(qsl("dd.MM.yy")), lt_time, d.time().toString(cTimeFormat())); } if (_from) _fromName.setText(st::medviewNameFont, _from->name); updateHeader(); diff --git a/Telegram/SourceFiles/settings.cpp b/Telegram/SourceFiles/settings.cpp index 8ab1c822a..b3402eadc 100644 --- a/Telegram/SourceFiles/settings.cpp +++ b/Telegram/SourceFiles/settings.cpp @@ -78,6 +78,8 @@ QByteArray gLocalSalt; DBIScale gRealScale = dbisAuto, gScreenScale = dbisOne, gConfigScale = dbisAuto; bool gCompressPastedImage = true; +QString gTimeFormat = qsl("hh:mm"); + DBIEmojiTab gEmojiTab = dbietRecent; RecentEmojiPack gRecentEmojis; RecentEmojiPreload gRecentEmojisPreload; diff --git a/Telegram/SourceFiles/settings.h b/Telegram/SourceFiles/settings.h index c0bc60556..d6748ebae 100644 --- a/Telegram/SourceFiles/settings.h +++ b/Telegram/SourceFiles/settings.h @@ -106,6 +106,11 @@ DeclareSetting(DBIScale, RealScale); DeclareSetting(DBIScale, ScreenScale); DeclareSetting(DBIScale, ConfigScale); DeclareSetting(bool, CompressPastedImage); +DeclareSetting(QString, TimeFormat); + +inline void cChangeTimeFormat(const QString &newFormat) { + if (!newFormat.isEmpty()) cSetTimeFormat(newFormat); +} inline DBIScale cEvalScale(DBIScale scale) { return (scale == dbisAuto) ? cScreenScale() : scale; diff --git a/Telegram/SourceFiles/window.cpp b/Telegram/SourceFiles/window.cpp index 2610907d9..8ae4f1397 100644 --- a/Telegram/SourceFiles/window.cpp +++ b/Telegram/SourceFiles/window.cpp @@ -181,7 +181,7 @@ void NotifyWindow::updateNotifyDisplay() { QDateTime now(QDateTime::currentDateTime()), lastTime(item->date); QDate nowDate(now.date()), lastDate(lastTime.date()); - QString dt = lastTime.toString(qsl("hh:mm")); + QString dt = lastTime.toString(cTimeFormat()); int32 dtWidth = st::dlgHistFont->m.width(dt); rectForName.setWidth(rectForName.width() - dtWidth - st::dlgDateSkip); p.setFont(st::dlgDateFont->f); diff --git a/Telegram/Telegram.vcxproj b/Telegram/Telegram.vcxproj index b8a385a68..a9f00af92 100644 --- a/Telegram/Telegram.vcxproj +++ b/Telegram/Telegram.vcxproj @@ -929,7 +929,7 @@ $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing types.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/types.h" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/types.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing types.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp @@ -1143,7 +1143,7 @@ $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing audio.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/audio.h" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/audio.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing audio.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp @@ -1157,7 +1157,7 @@ $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing usernamebox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/usernamebox.h" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/usernamebox.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing usernamebox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp @@ -1171,7 +1171,7 @@ $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing languagebox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/languagebox.h" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/languagebox.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing languagebox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp @@ -1185,7 +1185,7 @@ $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing backgroundbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/backgroundbox.h" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/backgroundbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing backgroundbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp @@ -1370,7 +1370,7 @@ $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing contextmenu.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/contextmenu.h" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/contextmenu.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing contextmenu.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp @@ -1464,7 +1464,7 @@ $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing history.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/history.h" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/history.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing history.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp @@ -1579,7 +1579,7 @@ $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing localstorage.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/localstorage.h" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/localstorage.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing localstorage.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp diff --git a/_qt_5_4_0_patch.diff b/_qt_5_4_0_patch.diff new file mode 100644 index 000000000..d3a9a6566 --- /dev/null +++ b/_qt_5_4_0_patch.diff @@ -0,0 +1,822 @@ +diff --git a/qtbase/mkspecs/win32-msvc2013/qmake.conf b/qtbase/mkspecs/win32-msvc2013/qmake.conf +index 535904a..6d0e9b9 100644 +--- a/qtbase/mkspecs/win32-msvc2013/qmake.conf ++++ b/qtbase/mkspecs/win32-msvc2013/qmake.conf +@@ -25,9 +25,9 @@ QMAKE_YACCFLAGS = -d + QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t -FS + QMAKE_CFLAGS_WARN_ON = -W3 + QMAKE_CFLAGS_WARN_OFF = -W0 +-QMAKE_CFLAGS_RELEASE = -O2 -MD -Zc:strictStrings +-QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi -Zc:strictStrings +-QMAKE_CFLAGS_DEBUG = -Zi -MDd ++QMAKE_CFLAGS_RELEASE = -O2 -MT -Zc:strictStrings ++QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi -Zc:strictStrings ++QMAKE_CFLAGS_DEBUG = -Zi -MTd + QMAKE_CFLAGS_YACC = + QMAKE_CFLAGS_LTCG = -GL + QMAKE_CFLAGS_MP = -MP +diff --git a/qtbase/qmake/generators/mac/pbuilder_pbx.cpp b/qtbase/qmake/generators/mac/pbuilder_pbx.cpp +index 0ff4250..9ed555c 100644 +--- a/qtbase/qmake/generators/mac/pbuilder_pbx.cpp ++++ b/qtbase/qmake/generators/mac/pbuilder_pbx.cpp +@@ -1445,11 +1445,15 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) + plist_in_text = plist_in_text.replace("@TYPEINFO@", + (project->isEmpty("QMAKE_PKGINFO_TYPEINFO") + ? QString::fromLatin1("????") : project->first("QMAKE_PKGINFO_TYPEINFO").left(4).toQString())); +- QFile plist_out_file("Info.plist"); ++ QString plist_dir; ++ if (!project->isEmpty("PLIST_DIR")) ++ plist_dir = project->first("PLIST_DIR").toQString(); ++ QString plist_in_filename = QFileInfo(plist_in_file).fileName(); ++ QFile plist_out_file(plist_dir + plist_in_filename); + if (plist_out_file.open(QIODevice::WriteOnly | QIODevice::Text)) { + QTextStream plist_out(&plist_out_file); + plist_out << plist_in_text; +- t << "\t\t\t\t" << writeSettings("INFOPLIST_FILE", "Info.plist") << ";\n"; ++ t << "\t\t\t\t" << writeSettings("INFOPLIST_FILE", fixForOutput(plist_dir + plist_in_filename)) << ";\n"; + } + } + } +diff --git a/qtbase/qmake/generators/makefile.cpp b/qtbase/qmake/generators/makefile.cpp +index bf9a9d8..0216f5c 100644 +--- a/qtbase/qmake/generators/makefile.cpp ++++ b/qtbase/qmake/generators/makefile.cpp +@@ -206,7 +206,7 @@ MakefileGenerator::initOutPaths() + v["PRECOMPILED_DIR"] = v["OBJECTS_DIR"]; + static const char * const dirs[] = { "OBJECTS_DIR", "DESTDIR", + "SUBLIBS_DIR", "DLLDESTDIR", +- "PRECOMPILED_DIR", 0 }; ++ "PRECOMPILED_DIR", "PLIST_DIR", 0 }; + for (int x = 0; dirs[x]; x++) { + const ProKey dkey(dirs[x]); + if (v[dkey].isEmpty()) +diff --git a/qtbase/src/3rdparty/pcre/pcre16_valid_utf16.c b/qtbase/src/3rdparty/pcre/pcre16_valid_utf16.c +index 1987f27..6b36e4f 100644 +--- a/qtbase/src/3rdparty/pcre/pcre16_valid_utf16.c ++++ b/qtbase/src/3rdparty/pcre/pcre16_valid_utf16.c +@@ -101,7 +101,7 @@ for (p = string; length-- > 0; p++) + { + /* Normal UTF-16 code point. Neither high nor low surrogate. */ + } +- else if ((c & 0x0400) == 0) ++ else if ((c & 0xfc00) == 0xd800) + { + /* High surrogate. Must be a followed by a low surrogate. */ + if (length == 0) +diff --git a/qtbase/src/gui/image/qbmphandler.cpp b/qtbase/src/gui/image/qbmphandler.cpp +index 21c1a2f..f293ef9 100644 +--- a/qtbase/src/gui/image/qbmphandler.cpp ++++ b/qtbase/src/gui/image/qbmphandler.cpp +@@ -212,6 +212,9 @@ static bool read_dib_body(QDataStream &s, const BMP_INFOHDR &bi, int offset, int + int blue_scale = 0; + int alpha_scale = 0; + ++ if (!d->isSequential()) ++ d->seek(startpos + BMP_FILEHDR_SIZE + (bi.biSize >= BMP_WIN4 ? BMP_WIN : bi.biSize)); // goto start of colormap ++ + if (bi.biSize >= BMP_WIN4 || (comp == BMP_BITFIELDS && (nbits == 16 || nbits == 32))) { + if (d->read((char *)&red_mask, sizeof(red_mask)) != sizeof(red_mask)) + return false; +@@ -299,9 +302,6 @@ static bool read_dib_body(QDataStream &s, const BMP_INFOHDR &bi, int offset, int + image.setDotsPerMeterX(bi.biXPelsPerMeter); + image.setDotsPerMeterY(bi.biYPelsPerMeter); + +- if (!d->isSequential()) +- d->seek(startpos + BMP_FILEHDR_SIZE + (bi.biSize >= BMP_WIN4? BMP_WIN : bi.biSize)); // goto start of colormap +- + if (ncols > 0) { // read color table + uchar rgb[4]; + int rgb_len = t == BMP_OLD ? 3 : 4; +diff --git a/qtbase/src/gui/kernel/qplatformdialoghelper.h b/qtbase/src/gui/kernel/qplatformdialoghelper.h +index e0730cd..00fccad 100644 +--- a/qtbase/src/gui/kernel/qplatformdialoghelper.h ++++ b/qtbase/src/gui/kernel/qplatformdialoghelper.h +@@ -363,6 +363,7 @@ public: + virtual QUrl directory() const = 0; + virtual void selectFile(const QUrl &filename) = 0; + virtual QList selectedFiles() const = 0; ++ virtual QByteArray selectedRemoteContent() const { return QByteArray(); } + virtual void setFilter() = 0; + virtual void selectNameFilter(const QString &filter) = 0; + virtual QString selectedNameFilter() const = 0; +diff --git a/qtbase/src/gui/painting/qpaintengine_p.h b/qtbase/src/gui/painting/qpaintengine_p.h +index 312320c..5e82318 100644 +--- a/qtbase/src/gui/painting/qpaintengine_p.h ++++ b/qtbase/src/gui/painting/qpaintengine_p.h +@@ -79,8 +79,18 @@ public: + if (hasSystemTransform) { + if (systemTransform.type() <= QTransform::TxTranslate) + systemClip.translate(qRound(systemTransform.dx()), qRound(systemTransform.dy())); +- else +- systemClip = systemTransform.map(systemClip); ++ else { ++ // Transform the system clip region back from device pixels to device-independent pixels before ++ // applying systemTransform, which already has transform from device-independent pixels to device pixels ++#ifdef Q_OS_MAC ++ QTransform scaleTransform; ++ const qreal invDevicePixelRatio = 1. / pdev->devicePixelRatio(); ++ scaleTransform.scale(invDevicePixelRatio, invDevicePixelRatio); ++ systemClip = systemTransform.map(scaleTransform.map(systemClip)); ++#else ++ systemClip = systemTransform.map(systemClip); ++#endif ++ } + } + + // Make sure we're inside the viewport. +diff --git a/qtbase/src/gui/text/qtextlayout.h b/qtbase/src/gui/text/qtextlayout.h +index 1e0ab9b..47972d3 100644 +--- a/qtbase/src/gui/text/qtextlayout.h ++++ b/qtbase/src/gui/text/qtextlayout.h +@@ -186,6 +186,8 @@ private: + QRectF *brect, int tabstops, int* tabarray, int tabarraylen, + QPainter *painter); + QTextEngine *d; ++ ++ friend class TextBlock; + }; + + +diff --git a/qtbase/src/network/socket/qnativesocketengine_win.cpp b/qtbase/src/network/socket/qnativesocketengine_win.cpp +index f5943d6..f7787c3 100644 +--- a/qtbase/src/network/socket/qnativesocketengine_win.cpp ++++ b/qtbase/src/network/socket/qnativesocketengine_win.cpp +@@ -703,6 +703,12 @@ bool QNativeSocketEnginePrivate::nativeConnect(const QHostAddress &address, quin + errorDetected = true; + break; + } ++ if (value == WSAENETUNREACH) { ++ setError(QAbstractSocket::NetworkError, NetworkUnreachableErrorString); ++ socketState = QAbstractSocket::UnconnectedState; ++ errorDetected = true; ++ break; ++ } + if (value == WSAEADDRNOTAVAIL) { + setError(QAbstractSocket::NetworkError, AddressNotAvailableErrorString); + socketState = QAbstractSocket::UnconnectedState; +diff --git a/qtbase/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp b/qtbase/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp +index 43903ac..efa7014 100644 +--- a/qtbase/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp ++++ b/qtbase/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp +@@ -213,6 +213,78 @@ void QBasicFontDatabase::releaseHandle(void *handle) + + extern FT_Library qt_getFreetype(); + ++// copied from freetype with some modifications ++ ++#ifndef FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY ++#define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY FT_MAKE_TAG('i', 'g', 'p', 'f') ++#endif ++ ++#ifndef FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY ++#define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY FT_MAKE_TAG('i', 'g', 'p', 's') ++#endif ++ ++/* there's a Mac-specific extended implementation of FT_New_Face() */ ++/* in src/base/ftmac.c */ ++ ++#if !defined( FT_MACINTOSH ) || defined( DARWIN_NO_CARBON ) ++ ++/* documentation is in freetype.h */ ++ ++FT_Error __ft_New_Face(FT_Library library, const char* pathname, FT_Long face_index, FT_Face *aface) { ++ FT_Open_Args args; ++ ++ /* test for valid `library' and `aface' delayed to FT_Open_Face() */ ++ if (!pathname) ++ return FT_Err_Invalid_Argument; ++ ++ FT_Parameter params[2]; ++ params[0].tag = FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY; ++ params[0].data = 0; ++ params[1].tag = FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY; ++ params[1].data = 0; ++ args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; ++ args.pathname = (char*)pathname; ++ args.stream = NULL; ++ args.num_params = 2; ++ args.params = params; ++ ++ return FT_Open_Face(library, &args, face_index, aface); ++} ++ ++#else ++ ++FT_Error __ft_New_Face(FT_Library library, const char* pathname, FT_Long face_index, FT_Face *aface) { ++ return FT_New_Face(library, pathname, face_index, aface); ++} ++ ++#endif /* defined( FT_MACINTOSH ) && !defined( DARWIN_NO_CARBON ) */ ++ ++/* documentation is in freetype.h */ ++ ++FT_Error __ft_New_Memory_Face(FT_Library library, const FT_Byte* file_base, FT_Long file_size, FT_Long face_index, FT_Face *aface) { ++ FT_Open_Args args; ++ ++ /* test for valid `library' and `face' delayed to FT_Open_Face() */ ++ if (!file_base) ++ return FT_Err_Invalid_Argument; ++ ++ FT_Parameter params[2]; ++ params[0].tag = FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY; ++ params[0].data = 0; ++ params[1].tag = FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY; ++ params[1].data = 0; ++ args.flags = FT_OPEN_MEMORY | FT_OPEN_PARAMS; ++ args.memory_base = file_base; ++ args.memory_size = file_size; ++ args.stream = NULL; ++ args.num_params = 2; ++ args.params = params; ++ ++ return FT_Open_Face(library, &args, face_index, aface); ++} ++ ++// end ++ + QStringList QBasicFontDatabase::addTTFile(const QByteArray &fontData, const QByteArray &file, QSupportedWritingSystems *supportedWritingSystems) + { + FT_Library library = qt_getFreetype(); +@@ -224,9 +296,9 @@ QStringList QBasicFontDatabase::addTTFile(const QByteArray &fontData, const QByt + FT_Face face; + FT_Error error; + if (!fontData.isEmpty()) { +- error = FT_New_Memory_Face(library, (const FT_Byte *)fontData.constData(), fontData.size(), index, &face); ++ error = __ft_New_Memory_Face(library, (const FT_Byte *)fontData.constData(), fontData.size(), index, &face); + } else { +- error = FT_New_Face(library, file.constData(), index, &face); ++ error = __ft_New_Face(library, file.constData(), index, &face); + } + if (error != FT_Err_Ok) { + qDebug() << "FT_New_Face failed with index" << index << ":" << hex << error; +diff --git a/qtbase/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm b/qtbase/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm +index 9f2ff10..fe87ca1 100644 +--- a/qtbase/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm ++++ b/qtbase/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm +@@ -257,6 +257,10 @@ static void getFontDescription(CTFontDescriptorRef font, FontDescription *fd) + + fd->foundryName = QStringLiteral("CoreText"); + fd->familyName = (CFStringRef) CTFontDescriptorCopyAttribute(font, kCTFontFamilyNameAttribute); ++ QCFString _displayName = (CFStringRef) CTFontDescriptorCopyAttribute(font, kCTFontDisplayNameAttribute); ++ if (_displayName == QStringLiteral("Open Sans Semibold")) { ++ fd->familyName = _displayName; ++ } + fd->styleName = (CFStringRef)CTFontDescriptorCopyAttribute(font, kCTFontStyleNameAttribute); + fd->weight = QFont::Normal; + fd->style = QFont::StyleNormal; +diff --git a/qtbase/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm b/qtbase/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm +index 9f7609f..5df1514 100644 +--- a/qtbase/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm ++++ b/qtbase/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm +@@ -216,7 +216,7 @@ static void cleanupCocoaApplicationDelegate() + if (reflectionDelegate) { + if ([reflectionDelegate respondsToSelector:@selector(applicationShouldTerminate:)]) + return [reflectionDelegate applicationShouldTerminate:sender]; +- return NSTerminateNow; ++ //return NSTerminateNow; + } + + if ([self canQuit]) { +diff --git a/qtbase/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm b/qtbase/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm +index e449fd3..7f7bd24 100644 +--- a/qtbase/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm ++++ b/qtbase/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm +@@ -102,7 +102,7 @@ QT_USE_NAMESPACE + QCocoaSystemTrayIcon *systray; + NSStatusItem *item; + QCocoaMenu *menu; +- bool menuVisible; ++ bool menuVisible, iconSelected; + QIcon icon; + QT_MANGLE_NAMESPACE(QNSImageView) *imageCell; + } +@@ -202,13 +202,11 @@ void QCocoaSystemTrayIcon::updateIcon(const QIcon &icon) + + m_sys->item->icon = icon; + +- const bool menuVisible = m_sys->item->menu && m_sys->item->menuVisible; +- + // The reccomended maximum title bar icon height is 18 points + // (device independent pixels). The menu height on past and + // current OS X versions is 22 points. Provide some future-proofing + // by deriving the icon height from the menu height. +- const int padding = 4; ++ const int padding = 0; + const int menuHeight = [[[NSApplication sharedApplication] mainMenu] menuBarHeight]; + const int maxImageHeight = menuHeight - padding; + +@@ -218,7 +216,7 @@ void QCocoaSystemTrayIcon::updateIcon(const QIcon &icon) + // devicePixelRatio for the "best" screen on the system. + qreal devicePixelRatio = qApp->devicePixelRatio(); + const int maxPixmapHeight = maxImageHeight * devicePixelRatio; +- const QIcon::Mode mode = menuVisible ? QIcon::Selected : QIcon::Normal; ++ const QIcon::Mode mode = m_sys->item->iconSelected ? QIcon::Selected : QIcon::Normal; + QSize selectedSize; + Q_FOREACH (const QSize& size, sortByHeight(icon.availableSizes(mode))) { + // Select a pixmap based on the height. We want the largest pixmap +@@ -381,6 +379,7 @@ QT_END_NAMESPACE + Q_UNUSED(notification); + down = NO; + ++ parent->iconSelected = false; + parent->systray->updateIcon(parent->icon); + parent->menuVisible = false; + +@@ -393,6 +392,7 @@ QT_END_NAMESPACE + int clickCount = [mouseEvent clickCount]; + [self setNeedsDisplay:YES]; + ++ parent->iconSelected = (clickCount != 2) && parent->menu; + parent->systray->updateIcon(parent->icon); + + if (clickCount == 2) { +@@ -411,6 +411,10 @@ QT_END_NAMESPACE + -(void)mouseUp:(NSEvent *)mouseEvent + { + Q_UNUSED(mouseEvent); ++ ++ parent->iconSelected = false; ++ parent->systray->updateIcon(parent->icon); ++ + [self menuTrackingDone:nil]; + } + +@@ -422,6 +426,10 @@ QT_END_NAMESPACE + -(void)rightMouseUp:(NSEvent *)mouseEvent + { + Q_UNUSED(mouseEvent); ++ ++ parent->iconSelected = false; ++ parent->systray->updateIcon(parent->icon); ++ + [self menuTrackingDone:nil]; + } + +@@ -437,7 +445,7 @@ QT_END_NAMESPACE + } + + -(void)drawRect:(NSRect)rect { +- [[parent item] drawStatusBarBackgroundInRect:rect withHighlight:down]; ++ [[parent item] drawStatusBarBackgroundInRect:rect withHighlight:parent->menu ? down : NO]; + [super drawRect:rect]; + } + @end +diff --git a/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm b/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm +index 6656212..486fda0 100644 +--- a/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm ++++ b/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm +@@ -175,7 +175,7 @@ static void selectNextKeyWindow(NSWindow *currentKeyWindow) + if (!self.window.delegate) + return; // Already detached, pending NSAppKitDefined event + +- if (pw && pw->frameStrutEventsEnabled() && isMouseEvent(theEvent)) { ++ if (pw && pw->frameStrutEventsEnabled() && pw->m_synchedWindowState != Qt::WindowMinimized && pw->m_isExposed && isMouseEvent(theEvent)) { + NSPoint loc = [theEvent locationInWindow]; + NSRect windowFrame = [self.window convertRectFromScreen:[self.window frame]]; + NSRect contentFrame = [[self.window contentView] frame]; +@@ -918,6 +918,14 @@ void QCocoaWindow::setWindowFilePath(const QString &filePath) + [m_nsWindow setRepresentedFilename: fi.exists() ? QCFString::toNSString(filePath) : @""]; + } + ++qreal _win_devicePixelRatio() { ++ qreal result = 1.0; ++ foreach (QScreen *screen, QGuiApplication::screens()) { ++ result = qMax(result, screen->devicePixelRatio()); ++ } ++ return result; ++} ++ + void QCocoaWindow::setWindowIcon(const QIcon &icon) + { + QCocoaAutoReleasePool pool; +@@ -933,7 +941,8 @@ void QCocoaWindow::setWindowIcon(const QIcon &icon) + if (icon.isNull()) { + [iconButton setImage:nil]; + } else { +- QPixmap pixmap = icon.pixmap(QSize(22, 22)); ++ CGFloat hgt = 16. * _win_devicePixelRatio(); ++ QPixmap pixmap = icon.pixmap(QSize(hgt, hgt)); + NSImage *image = static_cast(qt_mac_create_nsimage(pixmap)); + [iconButton setImage:image]; + [image release]; +diff --git a/qtbase/src/plugins/platforms/cocoa/qnsview.mm b/qtbase/src/plugins/platforms/cocoa/qnsview.mm +index 6993407..0357bf4 100644 +--- a/qtbase/src/plugins/platforms/cocoa/qnsview.mm ++++ b/qtbase/src/plugins/platforms/cocoa/qnsview.mm +@@ -1321,7 +1321,7 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) + #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_8 + if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_8) { + // On 10.8 and above, MayBegin is likely to happen. We treat it the same as an actual begin. +- if (phase == NSEventPhaseMayBegin) ++ if (phase == NSEventPhaseMayBegin || phase == NSEventPhaseBegan) + ph = Qt::ScrollBegin; + } else + #endif +@@ -1451,6 +1451,9 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) + && qtKey == Qt::Key_Period) { + [self handleKeyEvent:nsevent eventType:int(QEvent::KeyPress)]; + return YES; ++ } else if ([nsevent modifierFlags] & NSControlKeyMask && (qtKey == Qt::Key_Tab || qtKey == Qt::Key_Backtab)) { ++ [self handleKeyEvent:nsevent eventType:int(QEvent::KeyPress)]; ++ return YES; + } + } + return [super performKeyEquivalent:nsevent]; +diff --git a/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp +index f1f472b..97819dd 100644 +--- a/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp ++++ b/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp +@@ -710,6 +710,8 @@ public: + QList selectedFiles() const; + void setSelectedFiles(const QList &); + QString selectedFile() const; ++ void setSelectedRemoteContent(const QByteArray &); ++ QByteArray selectedRemoteContent() const; + + private: + class Data : public QSharedData { +@@ -717,6 +719,7 @@ private: + QUrl directory; + QString selectedNameFilter; + QList selectedFiles; ++ QByteArray selectedRemoteContent; + QMutex mutex; + }; + QExplicitlySharedDataPointer m_data; +@@ -770,6 +773,20 @@ inline void QWindowsFileDialogSharedData::setSelectedFiles(const QList &ur + m_data->selectedFiles = urls; + } + ++inline QByteArray QWindowsFileDialogSharedData::selectedRemoteContent() const ++{ ++ m_data->mutex.lock(); ++ const QByteArray result = m_data->selectedRemoteContent; ++ m_data->mutex.unlock(); ++ return result; ++} ++ ++inline void QWindowsFileDialogSharedData::setSelectedRemoteContent(const QByteArray &c) ++{ ++ QMutexLocker(&m_data->mutex); ++ m_data->selectedRemoteContent = c; ++} ++ + inline void QWindowsFileDialogSharedData::fromOptions(const QSharedPointer &o) + { + QMutexLocker (&m_data->mutex); +@@ -893,6 +910,7 @@ public: + // Return the result for tracking in OnFileOk(). Differs from selection for + // example by appended default suffixes, etc. + virtual QList dialogResult() const = 0; ++ virtual QByteArray dialogRemoteContent() const { return QByteArray(); } + + inline void onFolderChange(IShellItem *); + inline void onSelectionChange(); +@@ -1286,7 +1304,12 @@ void QWindowsNativeFileDialogBase::setLabelText(QFileDialogOptions::DialogLabel + + void QWindowsNativeFileDialogBase::selectFile(const QString &fileName) const + { +- m_fileDialog->SetFileName((wchar_t*)fileName.utf16()); ++ QString file = QDir::toNativeSeparators(fileName); ++ int lastBackSlash = file.lastIndexOf(QChar::fromLatin1('\\')); ++ if (lastBackSlash >= 0) { ++ file = file.mid(lastBackSlash + 1); ++ } ++ m_fileDialog->SetFileName((wchar_t*)file.utf16());; + } + + // Return the index of the selected filter, accounting for QFileDialog +@@ -1356,6 +1379,7 @@ bool QWindowsNativeFileDialogBase::onFileOk() + { + // Store selected files as GetResults() returns invalid data after the dialog closes. + m_data.setSelectedFiles(dialogResult()); ++ m_data.setSelectedRemoteContent(dialogRemoteContent()); + return true; + } + +@@ -1484,6 +1508,7 @@ public: + QWindowsNativeFileDialogBase(data) {} + virtual QList selectedFiles() const; + virtual QList dialogResult() const; ++ virtual QByteArray dialogRemoteContent() const; + + private: + inline IFileOpenDialog *openFileDialog() const +@@ -1499,6 +1524,54 @@ QList QWindowsNativeOpenFileDialog::dialogResult() const + return result; + } + ++QByteArray QWindowsNativeOpenFileDialog::dialogRemoteContent() const { ++ QByteArray result; ++ IShellItemArray *items = 0; ++ if (FAILED(openFileDialog()->GetResults(&items)) || !items) ++ return result; ++ DWORD itemCount = 0; ++ if (FAILED(items->GetCount(&itemCount)) || !itemCount) ++ return result; ++ for (DWORD i = 0; i < itemCount; ++i) { ++ IShellItem *item = 0; ++ if (SUCCEEDED(items->GetItemAt(i, &item))) { ++ SFGAOF attributes = 0; ++ // Check whether it has a file system representation? ++ if (FAILED(item->GetAttributes(SFGAO_FILESYSTEM, &attributes)) || (attributes & SFGAO_FILESYSTEM)) { ++ LPWSTR name = 0; ++ if (SUCCEEDED(item->GetDisplayName(SIGDN_FILESYSPATH, &name))) { ++ CoTaskMemFree(name); ++ continue; ++ } ++ } ++ if (FAILED(item->GetAttributes(SFGAO_STREAM, &attributes)) || !(attributes & SFGAO_STREAM)) ++ continue; ++ ++ IBindCtx *bind = 0; ++ if (FAILED(CreateBindCtx(0, &bind))) ++ continue; ++ ++ IStream *stream = 0; ++ if (FAILED(item->BindToHandler(bind, BHID_Stream, IID_IStream, reinterpret_cast(&stream)))) ++ continue; ++ ++ STATSTG stat = { 0 }; ++ if (FAILED(stream->Stat(&stat, STATFLAG_NONAME)) || !stat.cbSize.QuadPart) ++ continue; ++ ++ quint64 fullSize = stat.cbSize.QuadPart; ++ result.resize(fullSize); ++ ULONG read = 0; ++ HRESULT r = stream->Read(result.data(), fullSize, &read); ++ if (r == S_FALSE || r == S_OK) ++ return result; ++ ++ result.clear(); ++ } ++ } ++ return result; ++} ++ + QList QWindowsNativeOpenFileDialog::selectedFiles() const + { + QList result; +@@ -1562,6 +1635,7 @@ public: + virtual QUrl directory() const Q_DECL_OVERRIDE; + virtual void selectFile(const QUrl &filename) Q_DECL_OVERRIDE; + virtual QList selectedFiles() const Q_DECL_OVERRIDE; ++ virtual QByteArray selectedRemoteContent() const Q_DECL_OVERRIDE; + virtual void setFilter() Q_DECL_OVERRIDE; + virtual void selectNameFilter(const QString &filter) Q_DECL_OVERRIDE; + virtual QString selectedNameFilter() const Q_DECL_OVERRIDE; +@@ -1655,6 +1729,11 @@ QList QWindowsFileDialogHelper::selectedFiles() const + return m_data.selectedFiles(); + } + ++QByteArray QWindowsFileDialogHelper::selectedRemoteContent() const ++{ ++ return m_data.selectedRemoteContent(); ++} ++ + void QWindowsFileDialogHelper::setFilter() + { + qCDebug(lcQpaDialogs) << __FUNCTION__; +@@ -1945,6 +2024,7 @@ public: + virtual QUrl directory() const Q_DECL_OVERRIDE; + virtual void selectFile(const QUrl &url) Q_DECL_OVERRIDE; + virtual QList selectedFiles() const Q_DECL_OVERRIDE; ++ virtual QByteArray selectedRemoteContent() const Q_DECL_OVERRIDE; + virtual void setFilter() Q_DECL_OVERRIDE {} + virtual void selectNameFilter(const QString &) Q_DECL_OVERRIDE; + virtual QString selectedNameFilter() const Q_DECL_OVERRIDE; +@@ -1988,6 +2068,11 @@ QList QWindowsXpFileDialogHelper::selectedFiles() const + return m_data.selectedFiles(); + } + ++QByteArray QWindowsXpFileDialogHelper::selectedRemoteContent() const ++{ ++ return m_data.selectedRemoteContent(); ++} ++ + void QWindowsXpFileDialogHelper::selectNameFilter(const QString &f) + { + m_data.setSelectedNameFilter(f); // Dialog cannot be updated at run-time. +diff --git a/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp b/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp +index 8a80729..16fda26 100644 +--- a/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp ++++ b/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp +@@ -943,7 +943,7 @@ void QWindowsWindow::destroyWindow() + // Clear any transient child relationships as Windows will otherwise destroy them (QTBUG-35499, QTBUG-36666) + if (QWindow *transientChild = findTransientChild(window())) + if (QWindowsWindow *tw = QWindowsWindow::baseWindowOf(transientChild)) +- tw->updateTransientParent(); ++ tw->clearTransientParent(); + QWindowsContext *context = QWindowsContext::instance(); + if (context->windowUnderMouse() == window()) + context->clearWindowUnderMouse(); +@@ -1144,11 +1144,24 @@ void QWindowsWindow::updateTransientParent() const + if (const QWindowsWindow *tw = QWindowsWindow::baseWindowOf(tp)) + if (!tw->testFlag(WithinDestroy)) // Prevent destruction by parent window (QTBUG-35499, QTBUG-36666) + newTransientParent = tw->handle(); +- if (newTransientParent != oldTransientParent) ++ if (newTransientParent && newTransientParent != oldTransientParent) + SetWindowLongPtr(m_data.hwnd, GWL_HWNDPARENT, (LONG_PTR)newTransientParent); + #endif // !Q_OS_WINCE + } + ++void QWindowsWindow::clearTransientParent() const ++{ ++#ifndef Q_OS_WINCE ++ if (window()->type() == Qt::Popup) ++ return; // QTBUG-34503, // a popup stays on top, no parent, see also WindowCreationData::fromWindow(). ++ // Update transient parent. ++ const HWND oldTransientParent = transientParentHwnd(m_data.hwnd); ++ HWND newTransientParent = 0; ++ if (newTransientParent != oldTransientParent) ++ SetWindowLongPtr(m_data.hwnd, GWL_HWNDPARENT, (LONG_PTR)newTransientParent); ++#endif // !Q_OS_WINCE ++} ++ + static inline bool testShowWithoutActivating(const QWindow *window) + { + // QWidget-attribute Qt::WA_ShowWithoutActivating . +diff --git a/qtbase/src/plugins/platforms/windows/qwindowswindow.h b/qtbase/src/plugins/platforms/windows/qwindowswindow.h +index 71debf2..4fa2e5d 100644 +--- a/qtbase/src/plugins/platforms/windows/qwindowswindow.h ++++ b/qtbase/src/plugins/platforms/windows/qwindowswindow.h +@@ -268,6 +268,7 @@ private: + inline void setWindowState_sys(Qt::WindowState newState); + inline void setParent_sys(const QPlatformWindow *parent); + inline void updateTransientParent() const; ++ inline void clearTransientParent() const; + void destroyWindow(); + inline bool isDropSiteEnabled() const { return m_dropTarget != 0; } + void setDropSiteEnabled(bool enabled); +diff --git a/qtbase/src/widgets/dialogs/qfiledialog.cpp b/qtbase/src/widgets/dialogs/qfiledialog.cpp +index 6065ad0..03fad7a 100644 +--- a/qtbase/src/widgets/dialogs/qfiledialog.cpp ++++ b/qtbase/src/widgets/dialogs/qfiledialog.cpp +@@ -1219,6 +1219,14 @@ QList QFileDialogPrivate::userSelectedFiles() const + return files; + } + ++QByteArray QFileDialogPrivate::userSelectedRemoteContent() const ++{ ++ if (nativeDialogInUse) ++ return selectedRemoteContent_sys(); ++ ++ return QByteArray(); ++} ++ + QStringList QFileDialogPrivate::addDefaultSuffixToFiles(const QStringList filesToFix) const + { + QStringList files; +@@ -1282,6 +1290,13 @@ QStringList QFileDialog::selectedFiles() const + return files; + } + ++QByteArray QFileDialog::selectedRemoteContent() const ++{ ++ Q_D(const QFileDialog); ++ ++ return d->userSelectedRemoteContent(); ++} ++ + /*! + Returns a list of urls containing the selected files in the dialog. + If no files are selected, or the mode is not ExistingFiles or +diff --git a/qtbase/src/widgets/dialogs/qfiledialog.h b/qtbase/src/widgets/dialogs/qfiledialog.h +index 70e498a..b13e8b2 100644 +--- a/qtbase/src/widgets/dialogs/qfiledialog.h ++++ b/qtbase/src/widgets/dialogs/qfiledialog.h +@@ -103,6 +103,7 @@ public: + + void selectFile(const QString &filename); + QStringList selectedFiles() const; ++ QByteArray selectedRemoteContent() const; + + void selectUrl(const QUrl &url); + QList selectedUrls() const; +diff --git a/qtbase/src/widgets/dialogs/qfiledialog_p.h b/qtbase/src/widgets/dialogs/qfiledialog_p.h +index cc2f481..cf70355 100644 +--- a/qtbase/src/widgets/dialogs/qfiledialog_p.h ++++ b/qtbase/src/widgets/dialogs/qfiledialog_p.h +@@ -123,6 +123,7 @@ public: + static QString initialSelection(const QUrl &path); + QStringList typedFiles() const; + QList userSelectedFiles() const; ++ QByteArray userSelectedRemoteContent() const; + QStringList addDefaultSuffixToFiles(const QStringList filesToFix) const; + QList addDefaultSuffixToUrls(const QList &urlsToFix) const; + bool removeDirectory(const QString &path); +@@ -250,6 +251,7 @@ public: + QUrl directory_sys() const; + void selectFile_sys(const QUrl &filename); + QList selectedFiles_sys() const; ++ QByteArray selectedRemoteContent_sys() const; + void setFilter_sys(); + void selectNameFilter_sys(const QString &filter); + QString selectedNameFilter_sys() const; +@@ -387,6 +389,13 @@ inline QList QFileDialogPrivate::selectedFiles_sys() const + return QList(); + } + ++inline QByteArray QFileDialogPrivate::selectedRemoteContent_sys() const ++{ ++ if (QPlatformFileDialogHelper *helper = platformFileDialogHelper()) ++ return helper->selectedRemoteContent(); ++ return QByteArray(); ++} ++ + inline void QFileDialogPrivate::setFilter_sys() + { + if (QPlatformFileDialogHelper *helper = platformFileDialogHelper()) +diff --git a/qtbase/src/widgets/kernel/qwidget.cpp b/qtbase/src/widgets/kernel/qwidget.cpp +index 315d615..e99b1c3 100644 +--- a/qtbase/src/widgets/kernel/qwidget.cpp ++++ b/qtbase/src/widgets/kernel/qwidget.cpp +@@ -8674,7 +8674,7 @@ bool QWidget::event(QEvent *event) + case QEvent::KeyPress: { + QKeyEvent *k = (QKeyEvent *)event; + bool res = false; +- if (!(k->modifiers() & (Qt::ControlModifier | Qt::AltModifier))) { //### Add MetaModifier? ++ if (!(k->modifiers() & (Qt::ControlModifier | Qt::AltModifier | Qt::MetaModifier))) { //### Add MetaModifier? + if (k->key() == Qt::Key_Backtab + || (k->key() == Qt::Key_Tab && (k->modifiers() & Qt::ShiftModifier))) + res = focusNextPrevChild(false); +diff --git a/qtbase/src/widgets/util/qsystemtrayicon.cpp b/qtbase/src/widgets/util/qsystemtrayicon.cpp +index 7d04cab..53c2856 100644 +--- a/qtbase/src/widgets/util/qsystemtrayicon.cpp ++++ b/qtbase/src/widgets/util/qsystemtrayicon.cpp +@@ -710,7 +710,9 @@ void QSystemTrayIconPrivate::updateMenu_sys_qpa() + menu->setPlatformMenu(platformMenu); + } + qpa_sys->updateMenu(menu->platformMenu()); +- } ++ } else { ++ qpa_sys->updateMenu(0); ++ } + } + + void QSystemTrayIconPrivate::updateToolTip_sys_qpa() +diff --git a/qtbase/src/widgets/widgets/qwidgetlinecontrol.cpp b/qtbase/src/widgets/widgets/qwidgetlinecontrol.cpp +index e6385ba..8e1543e 100644 +--- a/qtbase/src/widgets/widgets/qwidgetlinecontrol.cpp ++++ b/qtbase/src/widgets/widgets/qwidgetlinecontrol.cpp +@@ -1870,7 +1870,7 @@ void QWidgetLineControl::processKeyEvent(QKeyEvent* event) + + if (unknown && !isReadOnly()) { + QString t = event->text(); +- if (!t.isEmpty() && t.at(0).isPrint()) { ++ if (!t.isEmpty() && (t.at(0).isPrint() || t.at(0).unicode() == 0x200C || t.at(0).unicode() == 0x200D)) { + insert(t); + #ifndef QT_NO_COMPLETER + complete(event->key()); +diff --git a/qtbase/src/widgets/widgets/qwidgettextcontrol.cpp b/qtbase/src/widgets/widgets/qwidgettextcontrol.cpp +index dfec6a1..a1be4a1 100644 +--- a/qtbase/src/widgets/widgets/qwidgettextcontrol.cpp ++++ b/qtbase/src/widgets/widgets/qwidgettextcontrol.cpp +@@ -1340,7 +1340,7 @@ void QWidgetTextControlPrivate::keyPressEvent(QKeyEvent *e) + process: + { + QString text = e->text(); +- if (!text.isEmpty() && (text.at(0).isPrint() || text.at(0) == QLatin1Char('\t'))) { ++ if (!text.isEmpty() && (text.at(0).isPrint() || text.at(0) == QLatin1Char('\t') || text.at(0).unicode() == 0x200C || text.at(0).unicode() == 0x200D)) { + if (overwriteMode + // no need to call deleteChar() if we have a selection, insertText + // does it already +diff --git a/qtimageformats/src/3rdparty/libwebp/src/dec/vp8l.c b/qtimageformats/src/3rdparty/libwebp/src/dec/vp8l.c +index ea0254d..868c8cf 100644 +--- a/qtimageformats/src/3rdparty/libwebp/src/dec/vp8l.c ++++ b/qtimageformats/src/3rdparty/libwebp/src/dec/vp8l.c +@@ -12,7 +12,6 @@ + // Authors: Vikas Arora (vikaas.arora@gmail.com) + // Jyrki Alakuijala (jyrki@google.com) + +-#include + #include + #include "./alphai.h" + #include "./vp8li.h" +@@ -740,6 +739,7 @@ static int DecodeAlphaData(VP8LDecoder* const dec, uint8_t* const data, + const int len_code_limit = NUM_LITERAL_CODES + NUM_LENGTH_CODES; + const int mask = hdr->huffman_mask_; + assert(htree_group != NULL); ++ assert(pos < end); + assert(last_row <= height); + assert(Is8bOptimizable(hdr)); + +@@ -830,6 +830,7 @@ static int DecodeImageData(VP8LDecoder* const dec, uint32_t* const data, + (hdr->color_cache_size_ > 0) ? &hdr->color_cache_ : NULL; + const int mask = hdr->huffman_mask_; + assert(htree_group != NULL); ++ assert(src < src_end); + assert(src_last <= src_end); + + while (!br->eos_ && src < src_last) { +@@ -1293,6 +1294,10 @@ int VP8LDecodeAlphaImageStream(ALPHDecoder* const alph_dec, int last_row) { + assert(dec != NULL); + assert(dec->action_ == READ_DATA); + assert(last_row <= dec->height_); ++ ++ if (dec->last_pixel_ == dec->width_ * dec->height_) { ++ return 1; // Done ++ } + + // Decode (with special row processing). + return alph_dec->use_8b_decode ? From 5fe1cc174e84a78f81dc5c16b38283418a2def32 Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 11 Feb 2015 23:37:30 +0000 Subject: [PATCH 3/3] moved to qt 5.4.0, qt patch now in .diff or by files --- MSVC.md | 23 +- QTCREATOR.md | 23 +- README.md | 2 +- Telegram/MetaEmoji.vcxproj | 6 +- Telegram/MetaLang.vcxproj | 6 +- Telegram/MetaStyle.vcxproj | 6 +- Telegram/SourceFiles/stdafx.cpp | 1 - Telegram/Telegram.vcxproj | 354 +- .../src/widgets/util/qsystemtrayicon_qpa.cpp | 168 - .../qtmultimedia/src/plugins/alsa/alsa.pro | 23 - .../mediaplayer/avfmediaplayersession.mm | 851 -- .../src/plugins/pulseaudio/pulseaudio.pro | 26 - .../_qt_5_4_0_patch.diff | 55 +- Telegram/_qt_5_4_0_patch/_qt_5_4_0_patch.diff | 867 ++ .../qtbase/mkspecs/win32-msvc2013/qmake.conf | 4 +- .../qmake/generators/mac/pbuilder_pbx.cpp | 190 +- .../qtbase/qmake/generators/makefile.cpp | 127 +- .../src/3rdparty/pcre/pcre16_valid_utf16.c | 0 .../src/corelib/tools/qunicodetables.cpp | 11084 ++++++++++++++++ .../qtbase/src/gui/image/qbmphandler.cpp | 57 +- .../src/gui/kernel/qplatformdialoghelper.h | 30 +- .../qtbase/src/gui/painting/qpaintengine_p.h | 30 +- .../qtbase/src/gui/text/qtextlayout.h | 30 +- .../socket/qnativesocketengine_win.cpp | 34 +- .../basic/qbasicfontdatabase.cpp | 111 +- .../mac/qcoretextfontdatabase.mm | 297 +- .../cocoa/qcocoaapplicationdelegate.mm | 29 +- .../platforms/cocoa/qcocoasystemtrayicon.mm | 129 +- .../plugins/platforms/cocoa/qcocoawindow.mm | 231 +- .../src/plugins/platforms/cocoa/qnsview.mm | 400 +- .../windows/qwindowsdialoghelpers.cpp | 46 +- .../platforms/windows/qwindowskeymapper.cpp | 1220 ++ .../platforms/windows/qwindowswindow.cpp | 268 +- .../platforms/windows/qwindowswindow.h | 130 +- .../src/widgets/dialogs/qfiledialog.cpp | 391 +- .../qtbase/src/widgets/dialogs/qfiledialog.h | 34 +- .../src/widgets/dialogs/qfiledialog_p.h | 51 +- .../qtbase/src/widgets/kernel/qwidget.cpp | 1328 +- .../src/widgets/util/qsystemtrayicon.cpp | 750 ++ .../widgets/widgets/qwidgetlinecontrol.cpp | 67 +- .../widgets/widgets/qwidgettextcontrol.cpp | 42 +- .../src/3rdparty/libwebp/src/dec/vp8l.c | 2 +- XCODE.md | 19 +- 43 files changed, 16962 insertions(+), 2580 deletions(-) delete mode 100644 Telegram/_qt_5_3_1_patch/qtbase/src/widgets/util/qsystemtrayicon_qpa.cpp delete mode 100644 Telegram/_qt_5_3_1_patch/qtmultimedia/src/plugins/alsa/alsa.pro delete mode 100644 Telegram/_qt_5_3_1_patch/qtmultimedia/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm delete mode 100644 Telegram/_qt_5_3_1_patch/qtmultimedia/src/plugins/pulseaudio/pulseaudio.pro rename _qt_5_4_0_patch.diff => Telegram/_qt_5_4_0_patch.diff (92%) create mode 100644 Telegram/_qt_5_4_0_patch/_qt_5_4_0_patch.diff rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/mkspecs/win32-msvc2013/qmake.conf (96%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/qmake/generators/mac/pbuilder_pbx.cpp (94%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/qmake/generators/makefile.cpp (97%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/3rdparty/pcre/pcre16_valid_utf16.c (100%) create mode 100644 Telegram/_qt_5_4_0_patch/qtbase/src/corelib/tools/qunicodetables.cpp rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/gui/image/qbmphandler.cpp (94%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/gui/kernel/qplatformdialoghelper.h (92%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/gui/painting/qpaintengine_p.h (76%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/gui/text/qtextlayout.h (86%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/network/socket/qnativesocketengine_win.cpp (97%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp (84%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm (70%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm (91%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm (80%) mode change 100755 => 100644 rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm (91%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/plugins/platforms/cocoa/qnsview.mm (86%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp (98%) create mode 100644 Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp (91%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/plugins/platforms/windows/qwindowswindow.h (74%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/widgets/dialogs/qfiledialog.cpp (94%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/widgets/dialogs/qfiledialog.h (90%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/widgets/dialogs/qfiledialog_p.h (88%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/widgets/kernel/qwidget.cpp (89%) create mode 100644 Telegram/_qt_5_4_0_patch/qtbase/src/widgets/util/qsystemtrayicon.cpp rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/widgets/widgets/qwidgetlinecontrol.cpp (96%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtbase/src/widgets/widgets/qwidgettextcontrol.cpp (98%) rename Telegram/{_qt_5_3_1_patch => _qt_5_4_0_patch}/qtimageformats/src/3rdparty/libwebp/src/dec/vp8l.c (99%) diff --git a/MSVC.md b/MSVC.md index c2ec3f4d8..b5e1e4fad 100644 --- a/MSVC.md +++ b/MSVC.md @@ -117,13 +117,18 @@ to have **D:\TBuild\Libraries\opus\win32** * Build Debug configuration * Build Release configuration -####Qt 5.3.1, slightly patched +####Qt 5.4.0, slightly patched -http://download.qt-project.org/official_releases/qt/5.3/5.3.1/single/qt-everywhere-opensource-src-5.3.1.zip +http://download.qt-project.org/official_releases/qt/5.4/5.4.0/single/qt-everywhere-opensource-src-5.4.0.zip -Extract to **D:\TBuild\Libraries\**, rename **qt-everywhere-opensource-src-5.3.1** to **QtStatic** to have **D:\TBuild\Libraries\QtStatic\qtbase\** folder +Extract to **D:\TBuild\Libraries\**, rename **qt-everywhere-opensource-src-5.4.0** to **QtStatic** to have **D:\TBuild\Libraries\QtStatic\qtbase\** folder -Apply patch – copy (with overwrite!) everything from **D:\TBuild\tdesktop\\\_qt\_5\_3\_1\_patch\** to **D:\TBuild\Libraries\QtStatic\** +Apply patch + +* OR copy (with overwrite!) everything from **D:\TBuild\tdesktop\\\_qt\_5\_4\_0\_patch\** to **D:\TBuild\Libraries\QtStatic\** +* OR copy **D:\TBuild\tdesktop\\\_qt\_5\_4\_0\_patch.diff** to **D:\TBuild\Libraries\QtStatic\**, go there in Git Bash and run + + git apply _qt_5_4_0_patch.diff #####Building library @@ -137,12 +142,12 @@ There go to Qt directory and after that run configure - configure -debug-and-release -opensource -confirm-license -static -I "D:\TBuild\Libraries\OpenSSL-Win32\include" -L "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib" -l Gdi32 -opengl desktop -openssl-linked OPENSSL_LIBS_DEBUG="D:\TBuild\Libraries\OpenSSL-Win32\lib\VC\static\ssleay32MTd.lib D:\TBuild\Libraries\OpenSSL-Win32\lib\VC\static\libeay32MTd.lib" OPENSSL_LIBS_RELEASE="D:\TBuild\Libraries\OpenSSL-Win32\lib\VC\static\ssleay32MT.lib D:\TBuild\Libraries\OpenSSL-Win32\lib\VC\static\libeay32MT.lib" -mp -nomake examples -platform win32-msvc2013 + configure -debug-and-release -opensource -confirm-license -static -I "D:\TBuild\Libraries\OpenSSL-Win32\include" -L "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib" -l Gdi32 -opengl desktop -openssl-linked OPENSSL_LIBS_DEBUG="D:\TBuild\Libraries\OpenSSL-Win32\lib\VC\static\ssleay32MTd.lib D:\TBuild\Libraries\OpenSSL-Win32\lib\VC\static\libeay32MTd.lib" OPENSSL_LIBS_RELEASE="D:\TBuild\Libraries\OpenSSL-Win32\lib\VC\static\ssleay32MT.lib D:\TBuild\Libraries\OpenSSL-Win32\lib\VC\static\libeay32MT.lib" -mp -nomake examples -nomake tests -platform win32-msvc2013 to configure Qt build. After configuration is complete run - nmake - nmake install + nmake module-qtbase module-qtimageformats + nmake module-qtbase-install_subtargets module-qtimageformats-install_subtargets building (**nmake** command) will take really long time. @@ -156,8 +161,8 @@ Close all VS2013 instances and install to default location * Launch VS2013 for configuring Qt Addin * QT5 > Qt Options > Add - * Version name: **QtStatic.5.3.1** + * Version name: **QtStatic.5.4.0** * Path: **D:\TBuild\Libraries\QtStatic\qtbase** -* Default Qt/Win version: **QtStatic.5.3.1** – **OK** +* Default Qt/Win version: **QtStatic.5.4.0** – **OK** * File > Open > Project/Solution > **D:\TBuild\tdesktop\Telegram.sln** * Build \ Build Solution (Debug and Release configurations) diff --git a/QTCREATOR.md b/QTCREATOR.md index bb454c8ef..722415730 100644 --- a/QTCREATOR.md +++ b/QTCREATOR.md @@ -79,13 +79,18 @@ then go to **/home/user/TBuild/Libraries/openal-soft/build** and run make sudo make install -####Qt 5.3.1, slightly patched +####Qt 5.4.0, slightly patched -http://download.qt-project.org/official_releases/qt/5.3/5.3.1/single/qt-everywhere-opensource-src-5.3.1.tar.gz +http://download.qt-project.org/official_releases/qt/5.4/5.4.0/single/qt-everywhere-opensource-src-5.4.0.tar.gz -Extract to **/home/user/TBuild/Libraries**, rename **qt-everywhere-opensource-src-5.3.1** to **QtStatic** to have **/home/user/TBuild/Libraries/QtStatic/qtbase** folder +Extract to **/home/user/TBuild/Libraries**, rename **qt-everywhere-opensource-src-5.4.0** to **QtStatic** to have **/home/user/TBuild/Libraries/QtStatic/qtbase** folder -Apply patch – copy (with overwrite!) everything from **/home/user/TBuild/tdesktop/\_qt\_5\_3\_1\_patch/** to **/home/user/TBuild/Libraries/QtStatic/** +Apply patch: + +* OR copy (with overwrite!) everything from **/home/user/TBuild/tdesktop/\_qt\_5\_4\_0\_patch/** to **/home/user/TBuild/Libraries/QtStatic/** +* OR copy **/home/user/TBuild/tdesktop/\_qt\_5\_4\_0\_patch.diff** to **/home/user/TBuild/Libraries/QtStatic/**, go there in Terminal and run + + git apply _qt_5_4_0_patch.diff #####Building library @@ -95,17 +100,17 @@ Install some packages for Qt (see **/home/user/TBuild/Libraries/QtStatic/qtbase/ In Terminal go to **/home/user/TBuild/Libraries/QtStatic** and there run - ./configure -release -opensource -confirm-license -qt-xcb -no-opengl -static -nomake examples -skip qtquick1 -skip qtdeclarative - make - sudo make install + ./configure -release -opensource -confirm-license -qt-xcb -no-opengl -static -nomake examples -nomake tests -skip qtquick1 -skip qtdeclarative + make module-qtbase module-qtimageformats + sudo make module-qtbase-install_subtargets module-qtimageformats-install_subtargets building (**make** command) will take really long time. ###Building Telegram Desktop * Launch Qt Creator, all projects will be taken from **/home/user/TBuild/tdesktop/Telegram** -* Tools > Options > Build & Run > Qt Versions tab > Add > File System /usr/local/Qt-5.3.1/bin/qmake > **Qt 5.3.1 (Qt-5.3.1)** > Apply -* Tools > Options > Build & Run > Kits tab > Desktop (default) > change **Qt version** to **Qt 5.3.1 (Qt-5.3.1)** > Apply +* Tools > Options > Build & Run > Qt Versions tab > Add > File System /usr/local/Qt-5.4.0/bin/qmake > **Qt 5.4.0 (Qt-5.4.0)** > Apply +* Tools > Options > Build & Run > Kits tab > Desktop (default) > change **Qt version** to **Qt 5.4.0 (Qt-5.4.0)** > Apply * Open MetaStyle.pro, configure project with paths **/home/user/TBuild/tdesktop/Linux/DebugIntermediateStyle** and **/home/user/TBuild/tdesktop/Linux/ReleaseIntermediateStyle** and build for Debug * Open MetaEmoji.pro, configure project with paths **/home/user/TBuild/tdesktop/Linux/DebugIntermediateEmoji** and **/home/user/TBuild/tdesktop/Linux/ReleaseIntermediateEmoji** and build for Debug * Open MetaLang.pro, configure project with paths **/home/user/TBuild/tdesktop/Linux/DebugIntermediateLang** and **/home/user/TBuild/tdesktop/Linux/ReleaseIntermediateLang** and build for Debug diff --git a/README.md b/README.md index 6c7910064..8f8a95956 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Source code is published under GPL v3, license is available [here](https://githu ###Third-party -* Qt 5.3.1, slightly patched ([LGPL](http://qt-project.org/doc/qt-5/lgpl.html)) +* Qt 5.4.0, slightly patched ([LGPL](http://qt-project.org/doc/qt-5/lgpl.html)) * OpenSSL 1.0.1g ([OpenSSL License](https://www.openssl.org/source/license.html)) * zlib 1.2.8 ([zlib License](http://www.zlib.net/zlib_license.html)) * libexif 0.6.20 ([LGPL](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html)) diff --git a/Telegram/MetaEmoji.vcxproj b/Telegram/MetaEmoji.vcxproj index 83d1f6b5d..a2ddc04a4 100644 --- a/Telegram/MetaEmoji.vcxproj +++ b/Telegram/MetaEmoji.vcxproj @@ -105,7 +105,7 @@ Console $(OutDir)\$(ProjectName).exe $(QTDIR)\lib;$(QTDIR)\plugins;%(AdditionalLibraryDirectories) - kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;imm32.lib;winmm.lib;qtmaind.lib;glu32.lib;opengl32.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5PlatformSupportd.lib;platforms\qwindowsd.lib;%(AdditionalDependencies) + kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;imm32.lib;winmm.lib;qtmaind.lib;glu32.lib;opengl32.lib;Qt5Cored.lib;Qt5Guid.lib;qtharfbuzzngd.lib;Qt5PlatformSupportd.lib;platforms\qwindowsd.lib;%(AdditionalDependencies) true $(IntDir)$(TargetName).pdb $(IntDir)$(TargetName).pgd @@ -123,7 +123,7 @@ Console $(OutDir)\$(ProjectName).exe $(QTDIR)\lib;$(QTDIR)\plugins;%(AdditionalLibraryDirectories) - kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;qtmain.lib;glu32.lib;opengl32.lib;imm32.lib;winmm.lib;Qt5Core.lib;Qt5Gui.lib;Qt5PlatformSupport.lib;platforms\qwindows.lib;%(AdditionalDependencies) + kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;qtmain.lib;glu32.lib;opengl32.lib;imm32.lib;winmm.lib;Qt5Core.lib;Qt5Gui.lib;qtharfbuzzng.lib;Qt5PlatformSupport.lib;platforms\qwindows.lib;%(AdditionalDependencies) false $(IntDir)$(TargetName).pdb $(IntDir)$(TargetName).pgd @@ -142,7 +142,7 @@ Console $(OutDir)\$(ProjectName).exe $(QTDIR)\lib;$(QTDIR)\plugins;%(AdditionalLibraryDirectories) - kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;qtmain.lib;glu32.lib;opengl32.lib;imm32.lib;winmm.lib;Qt5Core.lib;Qt5Gui.lib;Qt5PlatformSupport.lib;platforms\qwindows.lib;%(AdditionalDependencies) + kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;qtmain.lib;glu32.lib;opengl32.lib;imm32.lib;winmm.lib;Qt5Core.lib;Qt5Gui.lib;qtharfbuzzng.lib;Qt5PlatformSupport.lib;platforms\qwindows.lib;%(AdditionalDependencies) false $(IntDir)$(TargetName).pdb $(IntDir)$(TargetName).pgd diff --git a/Telegram/MetaLang.vcxproj b/Telegram/MetaLang.vcxproj index 9851e085b..d273a3e92 100644 --- a/Telegram/MetaLang.vcxproj +++ b/Telegram/MetaLang.vcxproj @@ -105,7 +105,7 @@ Console $(OutDir)\$(ProjectName).exe $(QTDIR)\lib;$(QTDIR)\plugins;%(AdditionalLibraryDirectories) - kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;imm32.lib;winmm.lib;qtmaind.lib;glu32.lib;opengl32.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;Qt5Networkd.lib;Qt5PlatformSupportd.lib;platforms\qwindowsd.lib;%(AdditionalDependencies) + kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;imm32.lib;winmm.lib;qtmaind.lib;glu32.lib;opengl32.lib;Qt5Cored.lib;Qt5Guid.lib;qtharfbuzzngd.lib;Qt5Widgetsd.lib;Qt5Networkd.lib;Qt5PlatformSupportd.lib;platforms\qwindowsd.lib;%(AdditionalDependencies) true $(IntDir)$(TargetName).pdb $(IntDir)$(TargetName).pgd @@ -123,7 +123,7 @@ Console $(OutDir)\$(ProjectName).exe $(QTDIR)\lib;$(QTDIR)\plugins;%(AdditionalLibraryDirectories) - kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;qtmain.lib;opengl32.lib;imm32.lib;winmm.lib;Qt5Core.lib;Qt5Gui.lib;Qt5PlatformSupport.lib;platforms\qwindows.lib;%(AdditionalDependencies) + kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;qtmain.lib;opengl32.lib;imm32.lib;winmm.lib;Qt5Core.lib;Qt5Gui.lib;qtharfbuzzng.lib;Qt5PlatformSupport.lib;platforms\qwindows.lib;%(AdditionalDependencies) false @@ -140,7 +140,7 @@ Console $(OutDir)\$(ProjectName).exe $(QTDIR)\lib;$(QTDIR)\plugins;%(AdditionalLibraryDirectories) - kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;qtmain.lib;opengl32.lib;imm32.lib;winmm.lib;Qt5Core.lib;Qt5Gui.lib;Qt5PlatformSupport.lib;platforms\qwindows.lib;%(AdditionalDependencies) + kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;qtmain.lib;opengl32.lib;imm32.lib;winmm.lib;Qt5Core.lib;Qt5Gui.lib;qtharfbuzzng.lib;Qt5PlatformSupport.lib;platforms\qwindows.lib;%(AdditionalDependencies) false diff --git a/Telegram/MetaStyle.vcxproj b/Telegram/MetaStyle.vcxproj index ebf202c78..2f6148262 100644 --- a/Telegram/MetaStyle.vcxproj +++ b/Telegram/MetaStyle.vcxproj @@ -126,7 +126,7 @@ Console $(OutDir)\$(ProjectName).exe $(QTDIR)\lib;$(QTDIR)\plugins;%(AdditionalLibraryDirectories) - kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;imm32.lib;winmm.lib;qtmaind.lib;glu32.lib;opengl32.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;Qt5Networkd.lib;Qt5PlatformSupportd.lib;platforms\qwindowsd.lib;%(AdditionalDependencies) + kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;imm32.lib;winmm.lib;qtmaind.lib;glu32.lib;opengl32.lib;Qt5Cored.lib;Qt5Guid.lib;qtharfbuzzngd.lib;Qt5Widgetsd.lib;Qt5Networkd.lib;Qt5PlatformSupportd.lib;platforms\qwindowsd.lib;%(AdditionalDependencies) true $(IntDir)$(TargetName).pdb $(IntDir)$(TargetName).pgd @@ -145,7 +145,7 @@ Console $(OutDir)\$(ProjectName).exe $(QTDIR)\lib;$(QTDIR)\plugins;%(AdditionalLibraryDirectories) - kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;qtmain.lib;opengl32.lib;imm32.lib;winmm.lib;Qt5Core.lib;Qt5Gui.lib;Qt5PlatformSupport.lib;platforms\qwindows.lib;%(AdditionalDependencies) + kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;qtmain.lib;opengl32.lib;imm32.lib;winmm.lib;Qt5Core.lib;Qt5Gui.lib;qtharfbuzzng.lib;Qt5PlatformSupport.lib;platforms\qwindows.lib;%(AdditionalDependencies) false @@ -162,7 +162,7 @@ Console $(OutDir)\$(ProjectName).exe $(QTDIR)\lib;$(QTDIR)\plugins;%(AdditionalLibraryDirectories) - kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;qtmain.lib;opengl32.lib;imm32.lib;winmm.lib;Qt5Core.lib;Qt5Gui.lib;Qt5PlatformSupport.lib;platforms\qwindows.lib;%(AdditionalDependencies) + kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;qtmain.lib;opengl32.lib;imm32.lib;winmm.lib;Qt5Core.lib;Qt5Gui.lib;qtharfbuzzng.lib;Qt5PlatformSupport.lib;platforms\qwindows.lib;%(AdditionalDependencies) false diff --git a/Telegram/SourceFiles/stdafx.cpp b/Telegram/SourceFiles/stdafx.cpp index 4c72cbaed..883c11d49 100644 --- a/Telegram/SourceFiles/stdafx.cpp +++ b/Telegram/SourceFiles/stdafx.cpp @@ -20,7 +20,6 @@ Copyright (c) 2014 John Preston, https://desktop.telegram.org #ifdef Q_OS_WIN Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin) -Q_IMPORT_PLUGIN(AccessibleFactory) Q_IMPORT_PLUGIN(QWebpPlugin) #elif defined Q_OS_MAC //Q_IMPORT_PLUGIN(AVFServicePlugin) diff --git a/Telegram/Telegram.vcxproj b/Telegram/Telegram.vcxproj index a9f00af92..b9b00a9a0 100644 --- a/Telegram/Telegram.vcxproj +++ b/Telegram/Telegram.vcxproj @@ -66,7 +66,7 @@ AL_LIBTYPE_STATIC;UNICODE;WIN32;WIN64;HAVE_STDINT_H;ZLIB_WINAPI;%(PreprocessorDefinitions) - .\..\..\Libraries\lzma\C;.\..\..\Libraries\libexif-0.6.20;.\..\..\Libraries\zlib-1.2.8;.\..\..\Libraries\OpenSSL-Win32\include;.\..\..\Libraries\libogg-1.3.2\include;.\..\..\Libraries\opus\include;.\..\..\Libraries\opusfile\include;.\..\..\Libraries\openal-soft\include;.\SourceFiles;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore;.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui;%(AdditionalIncludeDirectories) + .\..\..\Libraries\lzma\C;.\..\..\Libraries\libexif-0.6.20;.\..\..\Libraries\zlib-1.2.8;.\..\..\Libraries\OpenSSL-Win32\include;.\..\..\Libraries\libogg-1.3.2\include;.\..\..\Libraries\opus\include;.\..\..\Libraries\opusfile\include;.\..\..\Libraries\openal-soft\include;.\SourceFiles;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore;.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui;%(AdditionalIncludeDirectories) ProgramDatabase false Use @@ -79,7 +79,7 @@ Windows $(OutDir)$(ProjectName).exe .\..\..\Libraries\lzma\C\Util\LzmaLib\Debug;.\..\..\Libraries\libexif-0.6.20\win32\Debug;.\..\..\Libraries\libogg-1.3.2\win32\VS2010\Win32\Debug;.\..\..\Libraries\opus\win32\VS2010\Win32\Debug;.\..\..\Libraries\opusfile\win32\VS2010\Win32\Debug;.\..\..\Libraries\openal-soft\build\Debug;.\..\..\Libraries\zlib-1.2.8\contrib\vstudio\vc11\x86\ZlibStatDebug;.\..\..\Libraries\OpenSSL-Win32\lib\VC\static;$(QTDIR)\lib;$(QTDIR)\plugins;%(AdditionalLibraryDirectories) - kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;gdi32.lib;comdlg32.lib;oleaut32.lib;imm32.lib;winmm.lib;qtmaind.lib;glu32.lib;opengl32.lib;Strmiids.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;Qt5Networkd.lib;Qt5PlatformSupportd.lib;platforms\qwindowsd.lib;accessible\qtaccessiblewidgetsd.lib;imageformats\qwebpd.lib;libeay32MTd.lib;ssleay32MTd.lib;Crypt32.lib;zlibstat.lib;LzmaLib.lib;lib_exif.lib;UxTheme.lib;DbgHelp.lib;OpenAL32.lib;common.lib;opusfile.lib;opus.lib;libogg_static.lib;celt.lib;silk_common.lib;silk_float.lib;%(AdditionalDependencies) + kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;gdi32.lib;comdlg32.lib;oleaut32.lib;imm32.lib;winmm.lib;qtmaind.lib;glu32.lib;opengl32.lib;Strmiids.lib;Qt5Cored.lib;Qt5Guid.lib;qtharfbuzzngd.lib;Qt5Widgetsd.lib;Qt5Networkd.lib;Qt5PlatformSupportd.lib;platforms\qwindowsd.lib;imageformats\qwebpd.lib;libeay32MTd.lib;ssleay32MTd.lib;Crypt32.lib;zlibstat.lib;LzmaLib.lib;lib_exif.lib;UxTheme.lib;DbgHelp.lib;OpenAL32.lib;common.lib;opusfile.lib;opus.lib;libogg_static.lib;celt.lib;silk_common.lib;silk_float.lib;%(AdditionalDependencies) true @@ -93,7 +93,7 @@ AL_LIBTYPE_STATIC;UNICODE;_WITH_DEBUG;WIN32;WIN64;HAVE_STDINT_H;ZLIB_WINAPI;QT_NO_DEBUG;NDEBUG;%(PreprocessorDefinitions) - .\..\..\Libraries\lzma\C;.\..\..\Libraries\libexif-0.6.20;.\..\..\Libraries\zlib-1.2.8;.\..\..\Libraries\OpenSSL-Win32\include;.\..\..\Libraries\libogg-1.3.2\include;.\..\..\Libraries\opus\include;.\..\..\Libraries\opusfile\include;.\..\..\Libraries\openal-soft\include;.\SourceFiles;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore;.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui;%(AdditionalIncludeDirectories) + .\..\..\Libraries\lzma\C;.\..\..\Libraries\libexif-0.6.20;.\..\..\Libraries\zlib-1.2.8;.\..\..\Libraries\OpenSSL-Win32\include;.\..\..\Libraries\libogg-1.3.2\include;.\..\..\Libraries\opus\include;.\..\..\Libraries\opusfile\include;.\..\..\Libraries\openal-soft\include;.\SourceFiles;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore;.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui;%(AdditionalIncludeDirectories) ProgramDatabase MultiThreaded false @@ -108,7 +108,7 @@ Windows $(OutDir)$(ProjectName).exe .\..\..\Libraries\lzma\C\Util\LzmaLib\Release;.\..\..\Libraries\libexif-0.6.20\win32\Release;.\..\..\Libraries\libogg-1.3.2\win32\VS2010\Win32\Release;.\..\..\Libraries\opus\win32\VS2010\Win32\Release;.\..\..\Libraries\opusfile\win32\VS2010\Win32\Release;.\..\..\Libraries\openal-soft\build\Release;.\..\..\Libraries\zlib-1.2.8\contrib\vstudio\vc11\x86\ZlibStatRelease;.\..\..\Libraries\OpenSSL-Win32\lib\VC\static;$(QTDIR)\lib;$(QTDIR)\plugins;%(AdditionalLibraryDirectories) - kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;gdi32.lib;comdlg32.lib;oleaut32.lib;imm32.lib;winmm.lib;qtmain.lib;glu32.lib;opengl32.lib;Strmiids.lib;Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;Qt5Network.lib;Qt5PlatformSupport.lib;platforms\qwindows.lib;accessible\qtaccessiblewidgets.lib;imageformats\qwebp.lib;libeay32MT.lib;ssleay32MT.lib;Crypt32.lib;zlibstat.lib;lib_exif.lib;UxTheme.lib;DbgHelp.lib;LzmaLib.lib;OpenAL32.lib;common.lib;opusfile.lib;opus.lib;libogg_static.lib;celt.lib;silk_common.lib;silk_float.lib;%(AdditionalDependencies) + kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;gdi32.lib;comdlg32.lib;oleaut32.lib;imm32.lib;winmm.lib;qtmain.lib;glu32.lib;opengl32.lib;Strmiids.lib;Qt5Core.lib;Qt5Gui.lib;qtharfbuzzng.lib;Qt5Widgets.lib;Qt5Network.lib;Qt5PlatformSupport.lib;platforms\qwindows.lib;imageformats\qwebp.lib;libeay32MT.lib;ssleay32MT.lib;Crypt32.lib;zlibstat.lib;lib_exif.lib;UxTheme.lib;DbgHelp.lib;LzmaLib.lib;OpenAL32.lib;common.lib;opusfile.lib;opus.lib;libogg_static.lib;celt.lib;silk_common.lib;silk_float.lib;%(AdditionalDependencies) $(SolutionDir)$(Platform)\$(Configuration)Intermediate\$(TargetName).lib $(IntDir)$(TargetName).pgd @@ -120,7 +120,7 @@ AL_LIBTYPE_STATIC;CUSTOM_API_ID;UNICODE;_WITH_DEBUG;WIN32;WIN64;HAVE_STDINT_H;ZLIB_WINAPI;QT_NO_DEBUG;NDEBUG;%(PreprocessorDefinitions) - .\..\..\Libraries\lzma\C;.\..\..\Libraries\libexif-0.6.20;.\..\..\Libraries\zlib-1.2.8;.\..\..\Libraries\OpenSSL-Win32\include;.\..\..\Libraries\libogg-1.3.2\include;.\..\..\Libraries\opus\include;.\..\..\Libraries\opusfile\include;.\..\..\Libraries\openal-soft\include;.\SourceFiles;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore;.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui;%(AdditionalIncludeDirectories) + .\..\..\Libraries\lzma\C;.\..\..\Libraries\libexif-0.6.20;.\..\..\Libraries\zlib-1.2.8;.\..\..\Libraries\OpenSSL-Win32\include;.\..\..\Libraries\libogg-1.3.2\include;.\..\..\Libraries\opus\include;.\..\..\Libraries\opusfile\include;.\..\..\Libraries\openal-soft\include;.\SourceFiles;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore;.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui;%(AdditionalIncludeDirectories) ProgramDatabase MultiThreaded false @@ -135,7 +135,7 @@ Windows $(OutDir)$(ProjectName).exe .\..\..\Libraries\lzma\C\Util\LzmaLib\Release;.\..\..\Libraries\libexif-0.6.20\win32\Release;.\..\..\Libraries\libogg-1.3.2\win32\VS2010\Win32\Release;.\..\..\Libraries\opus\win32\VS2010\Win32\Release;.\..\..\Libraries\opusfile\win32\VS2010\Win32\Release;.\..\..\Libraries\openal-soft\build\Release;.\..\..\Libraries\zlib-1.2.8\contrib\vstudio\vc11\x86\ZlibStatRelease;.\..\..\Libraries\OpenSSL-Win32\lib\VC\static;$(QTDIR)\lib;$(QTDIR)\plugins;%(AdditionalLibraryDirectories) - kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;gdi32.lib;comdlg32.lib;oleaut32.lib;imm32.lib;winmm.lib;qtmain.lib;glu32.lib;opengl32.lib;Strmiids.lib;Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;Qt5Network.lib;Qt5PlatformSupport.lib;platforms\qwindows.lib;accessible\qtaccessiblewidgets.lib;imageformats\qwebp.lib;libeay32MT.lib;ssleay32MT.lib;Crypt32.lib;zlibstat.lib;lib_exif.lib;UxTheme.lib;DbgHelp.lib;LzmaLib.lib;OpenAL32.lib;common.lib;opusfile.lib;opus.lib;libogg_static.lib;celt.lib;silk_common.lib;silk_float.lib;%(AdditionalDependencies) + kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;gdi32.lib;comdlg32.lib;oleaut32.lib;imm32.lib;winmm.lib;qtmain.lib;glu32.lib;opengl32.lib;Strmiids.lib;Qt5Core.lib;Qt5Gui.lib;qtharfbuzzng.lib;Qt5Widgets.lib;Qt5Network.lib;Qt5PlatformSupport.lib;platforms\qwindows.lib;imageformats\qwebp.lib;libeay32MT.lib;ssleay32MT.lib;Crypt32.lib;zlibstat.lib;lib_exif.lib;UxTheme.lib;DbgHelp.lib;LzmaLib.lib;OpenAL32.lib;common.lib;opusfile.lib;opus.lib;libogg_static.lib;celt.lib;silk_common.lib;silk_float.lib;%(AdditionalDependencies) $(SolutionDir)$(Platform)\$(Configuration)Intermediate\$(TargetName).lib @@ -925,26 +925,26 @@ $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing types.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/types.h" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/types.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing types.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/types.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/types.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing types.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/types.h" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/types.h" Moc%27ing window.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/window.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/window.h" Moc%27ing window.h... Moc%27ing window.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/window.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/window.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/window.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/window.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -965,13 +965,13 @@ Moc%27ing application.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/application.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/application.h" Moc%27ing application.h... Moc%27ing application.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/application.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/application.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/application.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/application.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -984,13 +984,13 @@ Moc%27ing aboutbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/aboutbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/aboutbox.h" Moc%27ing aboutbox.h... Moc%27ing aboutbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/aboutbox.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/aboutbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/aboutbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/aboutbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -998,13 +998,13 @@ Moc%27ing addcontactbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addcontactbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addcontactbox.h" Moc%27ing addcontactbox.h... Moc%27ing addcontactbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addcontactbox.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addcontactbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addcontactbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addcontactbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1012,13 +1012,13 @@ Moc%27ing addparticipantbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addparticipantbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addparticipantbox.h" Moc%27ing addparticipantbox.h... Moc%27ing addparticipantbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addparticipantbox.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addparticipantbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addparticipantbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addparticipantbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1026,13 +1026,13 @@ Moc%27ing confirmbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/confirmbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/confirmbox.h" Moc%27ing confirmbox.h... Moc%27ing confirmbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/confirmbox.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/confirmbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/confirmbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/confirmbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1040,13 +1040,13 @@ Moc%27ing connectionbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/connectionbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/connectionbox.h" Moc%27ing connectionbox.h... Moc%27ing connectionbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/connectionbox.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/connectionbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/connectionbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/connectionbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1054,13 +1054,13 @@ Moc%27ing contactsbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/contactsbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/contactsbox.h" Moc%27ing contactsbox.h... Moc%27ing contactsbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/contactsbox.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/contactsbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/contactsbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/contactsbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1068,13 +1068,13 @@ Moc%27ing newgroupbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/newgroupbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/newgroupbox.h" Moc%27ing newgroupbox.h... Moc%27ing newgroupbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/newgroupbox.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/newgroupbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/newgroupbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/newgroupbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1082,13 +1082,13 @@ Moc%27ing photocropbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photocropbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photocropbox.h" Moc%27ing photocropbox.h... Moc%27ing photocropbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photocropbox.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photocropbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photocropbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photocropbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1096,13 +1096,13 @@ Moc%27ing photosendbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photosendbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photosendbox.h" Moc%27ing photosendbox.h... Moc%27ing photosendbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photosendbox.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photosendbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photosendbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photosendbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1110,13 +1110,13 @@ Moc%27ing emojibox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/emojibox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/emojibox.h" Moc%27ing emojibox.h... Moc%27ing emojibox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/emojibox.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/emojibox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/emojibox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/emojibox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1124,13 +1124,13 @@ Moc%27ing downloadpathbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/downloadpathbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/downloadpathbox.h" Moc%27ing downloadpathbox.h... Moc%27ing downloadpathbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/downloadpathbox.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/downloadpathbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/downloadpathbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/downloadpathbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1139,69 +1139,69 @@ $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing audio.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/audio.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/audio.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing audio.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/audio.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/audio.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing audio.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/audio.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/audio.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing usernamebox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/usernamebox.h" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/usernamebox.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing usernamebox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/usernamebox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/usernamebox.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing usernamebox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/usernamebox.h" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/usernamebox.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing languagebox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/languagebox.h" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/languagebox.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing languagebox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/languagebox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/languagebox.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing languagebox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/languagebox.h" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/languagebox.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing backgroundbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/backgroundbox.h" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/backgroundbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing backgroundbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/backgroundbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/backgroundbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing backgroundbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/backgroundbox.h" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/backgroundbox.h" Moc%27ing animation.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/animation.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/animation.h" Moc%27ing animation.h... Moc%27ing animation.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/animation.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/animation.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/animation.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/animation.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1209,13 +1209,13 @@ Moc%27ing button.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/button.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/button.h" Moc%27ing button.h... Moc%27ing button.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/button.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/button.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/button.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/button.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1223,13 +1223,13 @@ Moc%27ing flatbutton.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatbutton.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatbutton.h" Moc%27ing flatbutton.h... Moc%27ing flatbutton.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatbutton.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatbutton.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatbutton.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatbutton.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1237,13 +1237,13 @@ Moc%27ing flatinput.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatinput.h" Moc%27ing flatinput.h... Moc%27ing flatinput.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatinput.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatinput.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1251,13 +1251,13 @@ Moc%27ing countrycodeinput.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countrycodeinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countrycodeinput.h" Moc%27ing countrycodeinput.h... Moc%27ing countrycodeinput.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countrycodeinput.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countrycodeinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countrycodeinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countrycodeinput.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1265,13 +1265,13 @@ Moc%27ing phoneinput.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/phoneinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/phoneinput.h" Moc%27ing phoneinput.h... Moc%27ing phoneinput.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/phoneinput.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/phoneinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/phoneinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/phoneinput.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1279,13 +1279,13 @@ Moc%27ing countryinput.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countryinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countryinput.h" Moc%27ing countryinput.h... Moc%27ing countryinput.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countryinput.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countryinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countryinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countryinput.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1294,13 +1294,13 @@ Moc%27ing scrollarea.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/scrollarea.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/scrollarea.h" Moc%27ing scrollarea.h... Moc%27ing scrollarea.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/scrollarea.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/scrollarea.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/scrollarea.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/scrollarea.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1308,13 +1308,13 @@ Moc%27ing dialogswidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/dialogswidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/dialogswidget.h" Moc%27ing dialogswidget.h... Moc%27ing dialogswidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/dialogswidget.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/dialogswidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/dialogswidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/dialogswidget.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1322,13 +1322,13 @@ Moc%27ing flattextarea.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flattextarea.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flattextarea.h" Moc%27ing flattextarea.h... Moc%27ing flattextarea.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flattextarea.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flattextarea.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flattextarea.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flattextarea.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1336,13 +1336,13 @@ Moc%27ing fileuploader.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/fileuploader.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/fileuploader.h" Moc%27ing fileuploader.h... Moc%27ing fileuploader.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/fileuploader.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/fileuploader.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/fileuploader.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/fileuploader.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1350,13 +1350,13 @@ Moc%27ing dropdown.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/dropdown.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/dropdown.h" Moc%27ing dropdown.h... Moc%27ing dropdown.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/dropdown.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/dropdown.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/dropdown.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/dropdown.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1366,27 +1366,27 @@ $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing contextmenu.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/contextmenu.h" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/contextmenu.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing contextmenu.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/contextmenu.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/contextmenu.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing contextmenu.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/contextmenu.h" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/contextmenu.h" Moc%27ing flatcheckbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatcheckbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatcheckbox.h" Moc%27ing flatcheckbox.h... Moc%27ing flatcheckbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatcheckbox.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatcheckbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatcheckbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatcheckbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1415,13 +1415,13 @@ Moc%27ing flatlabel.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatlabel.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatlabel.h" Moc%27ing flatlabel.h... Moc%27ing flatlabel.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatlabel.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatlabel.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatlabel.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatlabel.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1429,13 +1429,13 @@ Moc%27ing twidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/twidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/twidget.h" Moc%27ing twidget.h... Moc%27ing twidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/twidget.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/twidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/twidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/twidget.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1445,41 +1445,41 @@ $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing switcher.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/switcher.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/switcher.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing switcher.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/switcher.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/switcher.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing switcher.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/switcher.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/switcher.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing history.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/history.h" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/history.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing history.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/history.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/history.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing history.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/history.h" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/history.h" Moc%27ing historywidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/historywidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/historywidget.h" Moc%27ing historywidget.h... Moc%27ing historywidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/historywidget.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/historywidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/historywidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/historywidget.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1487,13 +1487,13 @@ Moc%27ing intro.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/intro.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/intro.h" Moc%27ing intro.h... Moc%27ing intro.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/intro.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/intro.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/intro.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/intro.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1501,13 +1501,13 @@ Moc%27ing introcode.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introcode.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introcode.h" Moc%27ing introcode.h... Moc%27ing introcode.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introcode.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introcode.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introcode.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introcode.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1515,13 +1515,13 @@ Moc%27ing introphone.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introphone.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introphone.h" Moc%27ing introphone.h... Moc%27ing introphone.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introphone.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introphone.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introphone.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introphone.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1529,13 +1529,13 @@ Moc%27ing introsignup.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introsignup.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introsignup.h" Moc%27ing introsignup.h... Moc%27ing introsignup.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introsignup.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introsignup.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introsignup.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introsignup.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1544,13 +1544,13 @@ Moc%27ing layerwidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/layerwidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/layerwidget.h" Moc%27ing layerwidget.h... Moc%27ing layerwidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/layerwidget.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/layerwidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/layerwidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/layerwidget.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1558,13 +1558,13 @@ Moc%27ing localimageloader.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/localimageloader.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/localimageloader.h" Moc%27ing localimageloader.h... Moc%27ing localimageloader.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/localimageloader.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/localimageloader.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/localimageloader.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/localimageloader.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1575,27 +1575,27 @@ $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing localstorage.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/localstorage.h" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/localstorage.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing localstorage.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/localstorage.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/localstorage.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing localstorage.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/localstorage.h" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/localstorage.h" Moc%27ing mtpConnection.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpConnection.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpConnection.h" Moc%27ing mtpConnection.h... Moc%27ing mtpConnection.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpConnection.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpConnection.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpConnection.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpConnection.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1603,13 +1603,13 @@ Moc%27ing mainwidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mainwidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mainwidget.h" Moc%27ing mainwidget.h... Moc%27ing mainwidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mainwidget.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mainwidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mainwidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mainwidget.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1617,13 +1617,13 @@ Moc%27ing mtp.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtp.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtp.h" Moc%27ing mtp.h... Moc%27ing mtp.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtp.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtp.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtp.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtp.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1632,27 +1632,27 @@ $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing mediaview.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mediaview.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mediaview.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing mediaview.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mediaview.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mediaview.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing mediaview.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mediaview.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mediaview.h" Moc%27ing mtpFileLoader.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpFileLoader.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpFileLoader.h" Moc%27ing mtpFileLoader.h... Moc%27ing mtpFileLoader.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpFileLoader.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpFileLoader.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpFileLoader.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpFileLoader.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1662,13 +1662,13 @@ Moc%27ing mtpDC.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpDC.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpDC.h" Moc%27ing mtpDC.h... Moc%27ing mtpDC.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpDC.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpDC.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpDC.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpDC.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1678,13 +1678,13 @@ Moc%27ing mtpSession.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpSession.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpSession.h" Moc%27ing mtpSession.h... Moc%27ing mtpSession.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpSession.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpSession.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpSession.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpSession.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1692,13 +1692,13 @@ Moc%27ing settingswidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/settingswidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/settingswidget.h" Moc%27ing settingswidget.h... Moc%27ing settingswidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/settingswidget.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/settingswidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/settingswidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/settingswidget.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1706,13 +1706,13 @@ Moc%27ing profilewidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/profilewidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/profilewidget.h" Moc%27ing profilewidget.h... Moc%27ing profilewidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/profilewidget.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/profilewidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/profilewidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/profilewidget.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1720,13 +1720,13 @@ Moc%27ing pspecific_wnd.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/pspecific_wnd.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/pspecific_wnd.h" Moc%27ing pspecific_wnd.h... Moc%27ing pspecific_wnd.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/pspecific_wnd.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/pspecific_wnd.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/pspecific_wnd.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/pspecific_wnd.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1736,15 +1736,15 @@ $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing overviewwidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/overviewwidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/overviewwidget.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing overviewwidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/overviewwidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/overviewwidget.h" $(QTDIR)\bin\moc.exe;%(FullPath) Moc%27ing overviewwidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/overviewwidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/overviewwidget.h" @@ -1753,13 +1753,13 @@ Moc%27ing sysbuttons.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/sysbuttons.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/sysbuttons.h" Moc%27ing sysbuttons.h... Moc%27ing sysbuttons.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/sysbuttons.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/sysbuttons.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/sysbuttons.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/sysbuttons.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1767,13 +1767,13 @@ Moc%27ing title.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/title.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/title.h" Moc%27ing title.h... Moc%27ing title.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/title.h" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/title.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/title.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.4.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.4.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/title.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) diff --git a/Telegram/_qt_5_3_1_patch/qtbase/src/widgets/util/qsystemtrayicon_qpa.cpp b/Telegram/_qt_5_3_1_patch/qtbase/src/widgets/util/qsystemtrayicon_qpa.cpp deleted file mode 100644 index 1e621e48f..000000000 --- a/Telegram/_qt_5_3_1_patch/qtbase/src/widgets/util/qsystemtrayicon_qpa.cpp +++ /dev/null @@ -1,168 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtWidgets module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qsystemtrayicon_p.h" - -#include -#include -#include - -#include -#include - -#ifndef QT_NO_SYSTEMTRAYICON - -QT_BEGIN_NAMESPACE - -QSystemTrayIconPrivate::QSystemTrayIconPrivate() - : qpa_sys(QGuiApplicationPrivate::platformTheme()->createPlatformSystemTrayIcon()) - , visible(false) -{ -} - -QSystemTrayIconPrivate::~QSystemTrayIconPrivate() -{ - delete qpa_sys; -} - -void QSystemTrayIconPrivate::install_sys() -{ - if (qpa_sys) { - qpa_sys->init(); - QObject::connect(qpa_sys, SIGNAL(activated(QPlatformSystemTrayIcon::ActivationReason)), - q_func(), SLOT(_q_emitActivated(QPlatformSystemTrayIcon::ActivationReason))); - QObject::connect(qpa_sys, SIGNAL(messageClicked()), - q_func(), SIGNAL(messageClicked())); - updateMenu_sys(); - updateIcon_sys(); - updateToolTip_sys(); - } -} - -void QSystemTrayIconPrivate::remove_sys() -{ - if (qpa_sys) - qpa_sys->cleanup(); -} - -QRect QSystemTrayIconPrivate::geometry_sys() const -{ - if (qpa_sys) - return qpa_sys->geometry(); - else - return QRect(); -} - -void QSystemTrayIconPrivate::updateIcon_sys() -{ - if (qpa_sys) - qpa_sys->updateIcon(icon); -} - -void QSystemTrayIconPrivate::updateMenu_sys() -{ - if (qpa_sys) { - if (menu) { - if (!menu->platformMenu()) { - QPlatformMenu *platformMenu = qpa_sys->createMenu(); - if (platformMenu) - menu->setPlatformMenu(platformMenu); - } - qpa_sys->updateMenu(menu->platformMenu()); - } else { - qpa_sys->updateMenu(0); - } - } -} - -void QSystemTrayIconPrivate::updateToolTip_sys() -{ - if (qpa_sys) - qpa_sys->updateToolTip(toolTip); -} - -bool QSystemTrayIconPrivate::isSystemTrayAvailable_sys() -{ - QScopedPointer sys(QGuiApplicationPrivate::platformTheme()->createPlatformSystemTrayIcon()); - if (sys) - return sys->isSystemTrayAvailable(); - else - return false; -} - -bool QSystemTrayIconPrivate::supportsMessages_sys() -{ - QScopedPointer sys(QGuiApplicationPrivate::platformTheme()->createPlatformSystemTrayIcon()); - if (sys) - return sys->supportsMessages(); - else - return false; -} - -void QSystemTrayIconPrivate::showMessage_sys(const QString &message, - const QString &title, - QSystemTrayIcon::MessageIcon icon, - int msecs) -{ - if (!qpa_sys) - return; - - QIcon notificationIcon; - switch (icon) { - case QSystemTrayIcon::Information: - notificationIcon = QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation); - break; - case QSystemTrayIcon::Warning: - notificationIcon = QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning); - break; - case QSystemTrayIcon::Critical: - notificationIcon = QApplication::style()->standardIcon(QStyle::SP_MessageBoxCritical); - break; - default: - break; - } - qpa_sys->showMessage(message, title, notificationIcon, - static_cast(icon), msecs); -} - -QT_END_NAMESPACE - -#endif // QT_NO_SYSTEMTRAYICON diff --git a/Telegram/_qt_5_3_1_patch/qtmultimedia/src/plugins/alsa/alsa.pro b/Telegram/_qt_5_3_1_patch/qtmultimedia/src/plugins/alsa/alsa.pro deleted file mode 100644 index 459321f07..000000000 --- a/Telegram/_qt_5_3_1_patch/qtmultimedia/src/plugins/alsa/alsa.pro +++ /dev/null @@ -1,23 +0,0 @@ -TARGET = qtaudio_alsa -QT += multimedia-private - -PLUGIN_TYPE = audio -PLUGIN_CLASS_NAME = QAlsaPlugin -load(qt_plugin) - -LIBS += -lasound -CONFIG += static plugin -HEADERS += \ - qalsaplugin.h \ - qalsaaudiodeviceinfo.h \ - qalsaaudioinput.h \ - qalsaaudiooutput.h - -SOURCES += \ - qalsaplugin.cpp \ - qalsaaudiodeviceinfo.cpp \ - qalsaaudioinput.cpp \ - qalsaaudiooutput.cpp - -OTHER_FILES += \ - alsa.json diff --git a/Telegram/_qt_5_3_1_patch/qtmultimedia/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm b/Telegram/_qt_5_3_1_patch/qtmultimedia/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm deleted file mode 100644 index 1b7b863f9..000000000 --- a/Telegram/_qt_5_3_1_patch/qtmultimedia/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm +++ /dev/null @@ -1,851 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "avfmediaplayersession.h" -#include "avfmediaplayerservice.h" -#include "avfvideooutput.h" - -#import - -QT_USE_NAMESPACE - -//AVAsset Keys -static NSString* const AVF_TRACKS_KEY = @"tracks"; -static NSString* const AVF_PLAYABLE_KEY = @"playable"; - -//AVPlayerItem keys -static NSString* const AVF_STATUS_KEY = @"status"; - -//AVPlayer keys -static NSString* const AVF_RATE_KEY = @"rate"; -static NSString* const AVF_CURRENT_ITEM_KEY = @"currentItem"; - -static void *AVFMediaPlayerSessionObserverRateObservationContext = &AVFMediaPlayerSessionObserverRateObservationContext; -static void *AVFMediaPlayerSessionObserverStatusObservationContext = &AVFMediaPlayerSessionObserverStatusObservationContext; -static void *AVFMediaPlayerSessionObserverCurrentItemObservationContext = &AVFMediaPlayerSessionObserverCurrentItemObservationContext; - -@interface AVFMediaPlayerSessionObserver : NSObject -{ -@private - AVFMediaPlayerSession *m_session; - AVPlayer *m_player; - AVPlayerItem *m_playerItem; - AVPlayerLayer *m_playerLayer; - NSURL *m_URL; - bool m_audioAvailable; - bool m_videoAvailable; -} - -@property (readonly, getter=player) AVPlayer* m_player; -@property (readonly, getter=playerItem) AVPlayerItem* m_playerItem; -@property (readonly, getter=playerLayer) AVPlayerLayer* m_playerLayer; -@property (readonly, getter=audioAvailable) bool m_audioAvailable; -@property (readonly, getter=videoAvailable) bool m_videoAvailable; -@property (readonly, getter=session) AVFMediaPlayerSession* m_session; - -- (AVFMediaPlayerSessionObserver *) initWithMediaPlayerSession:(AVFMediaPlayerSession *)session; -- (void) setURL:(NSURL *)url; -- (void) unloadMedia; -- (void) prepareToPlayAsset:(AVURLAsset *)asset withKeys:(NSArray *)requestedKeys; -- (void) assetFailedToPrepareForPlayback:(NSError *)error; -- (void) playerItemDidReachEnd:(NSNotification *)notification; -- (void) playerItemTimeJumped:(NSNotification *)notification; -- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object - change:(NSDictionary *)change context:(void *)context; -- (void) detatchSession; -- (void) dealloc; -@end - -@implementation AVFMediaPlayerSessionObserver - -@synthesize m_player, m_playerItem, m_playerLayer, m_audioAvailable, m_videoAvailable, m_session; - -- (AVFMediaPlayerSessionObserver *) initWithMediaPlayerSession:(AVFMediaPlayerSession *)session -{ - if (!(self = [super init])) - return nil; - - self->m_session = session; - return self; -} - -- (void) setURL:(NSURL *)url -{ - if (m_URL != url) - { - [m_URL release]; - m_URL = [url copy]; - - //Create an asset for inspection of a resource referenced by a given URL. - //Load the values for the asset keys "tracks", "playable". - - AVURLAsset *asset = [AVURLAsset URLAssetWithURL:m_URL options:nil]; - NSArray *requestedKeys = [NSArray arrayWithObjects:AVF_TRACKS_KEY, AVF_PLAYABLE_KEY, nil]; - - // Tells the asset to load the values of any of the specified keys that are not already loaded. - [asset loadValuesAsynchronouslyForKeys:requestedKeys completionHandler: - ^{ - dispatch_async( dispatch_get_main_queue(), - ^{ - [self prepareToPlayAsset:asset withKeys:requestedKeys]; - }); - }]; - } -} - -- (void) unloadMedia -{ - if (m_player) - [m_player setRate:0.0]; - if (m_playerItem) { - [m_playerItem removeObserver:self forKeyPath:AVF_STATUS_KEY]; - - [[NSNotificationCenter defaultCenter] removeObserver:self - name:AVPlayerItemDidPlayToEndTimeNotification - object:m_playerItem]; - [[NSNotificationCenter defaultCenter] removeObserver:self - name:AVPlayerItemTimeJumpedNotification - object:m_playerItem]; - m_playerItem = 0; - } -} - -- (void) prepareToPlayAsset:(AVURLAsset *)asset - withKeys:(NSArray *)requestedKeys -{ - //Make sure that the value of each key has loaded successfully. - for (NSString *thisKey in requestedKeys) - { - NSError *error = nil; - AVKeyValueStatus keyStatus = [asset statusOfValueForKey:thisKey error:&error]; -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO << [thisKey UTF8String] << " status: " << keyStatus; -#endif - if (keyStatus == AVKeyValueStatusFailed) - { - [self assetFailedToPrepareForPlayback:error]; - return; - } - } - - //Use the AVAsset playable property to detect whether the asset can be played. -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO << "isPlayable: " << [asset isPlayable]; -#endif - if (!asset.playable) - { - //Generate an error describing the failure. - NSString *localizedDescription = NSLocalizedString(@"Item cannot be played", @"Item cannot be played description"); - NSString *localizedFailureReason = NSLocalizedString(@"The assets tracks were loaded, but could not be made playable.", @"Item cannot be played failure reason"); - NSDictionary *errorDict = [NSDictionary dictionaryWithObjectsAndKeys: - localizedDescription, NSLocalizedDescriptionKey, - localizedFailureReason, NSLocalizedFailureReasonErrorKey, - nil]; - NSError *assetCannotBePlayedError = [NSError errorWithDomain:@"StitchedStreamPlayer" code:0 userInfo:errorDict]; - - [self assetFailedToPrepareForPlayback:assetCannotBePlayedError]; - - return; - } - - m_audioAvailable = false; - m_videoAvailable = false; - - //Check each track of asset for audio and video content - NSArray *tracks = [asset tracks]; - for (AVAssetTrack *track in tracks) { - if ([track hasMediaCharacteristic:AVMediaCharacteristicAudible]) - m_audioAvailable = true; - if ([track hasMediaCharacteristic:AVMediaCharacteristicVisual]) - m_videoAvailable = true; - } - - //At this point we're ready to set up for playback of the asset. - //Stop observing our prior AVPlayerItem, if we have one. - if (m_playerItem) - { - //Remove existing player item key value observers and notifications. - [self unloadMedia]; - } - - //Create a new instance of AVPlayerItem from the now successfully loaded AVAsset. - m_playerItem = [AVPlayerItem playerItemWithAsset:asset]; - - //Observe the player item "status" key to determine when it is ready to play. - [m_playerItem addObserver:self - forKeyPath:AVF_STATUS_KEY - options:NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew - context:AVFMediaPlayerSessionObserverStatusObservationContext]; - - //When the player item has played to its end time we'll toggle - //the movie controller Pause button to be the Play button - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(playerItemDidReachEnd:) - name:AVPlayerItemDidPlayToEndTimeNotification - object:m_playerItem]; - - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(playerItemTimeJumped:) - name:AVPlayerItemTimeJumpedNotification - object:m_playerItem]; - - - //Clean up old player if we have one - if (m_player) { - [m_player setRate:0.0]; - [m_player removeObserver:self forKeyPath:AVF_CURRENT_ITEM_KEY]; - [m_player removeObserver:self forKeyPath:AVF_RATE_KEY]; - [m_player release]; - m_player = 0; - - if (m_playerLayer) { - [m_playerLayer release]; - m_playerLayer = 0; //Will have been released - } - } - - //Get a new AVPlayer initialized to play the specified player item. - m_player = [AVPlayer playerWithPlayerItem:m_playerItem]; - [m_player retain]; - -#if defined(Q_OS_OSX) - //Set the initial volume on new player object - if (self.session) - m_player.volume = m_session->volume() / 100.0f; -#endif - - //Create a new player layer if we don't have one already - if (!m_playerLayer) - { - m_playerLayer = [AVPlayerLayer playerLayerWithPlayer:m_player]; - [m_playerLayer retain]; - m_playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; - - //Get the native size of the new item, and reset the bounds of the player layer - AVAsset *asset = m_playerItem.asset; - if (asset) { - NSArray *tracks = [asset tracksWithMediaType:AVMediaTypeVideo]; - if ([tracks count]) { - AVAssetTrack *videoTrack = [tracks objectAtIndex:0]; - m_playerLayer.anchorPoint = CGPointMake(0.0f, 0.0f); - m_playerLayer.bounds = CGRectMake(0.0f, 0.0f, videoTrack.naturalSize.width, videoTrack.naturalSize.height); - } - } - - } - - //Observe the AVPlayer "currentItem" property to find out when any - //AVPlayer replaceCurrentItemWithPlayerItem: replacement will/did - //occur. - [m_player addObserver:self - forKeyPath:AVF_CURRENT_ITEM_KEY - options:NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew - context:AVFMediaPlayerSessionObserverCurrentItemObservationContext]; - - //Observe the AVPlayer "rate" property to update the scrubber control. - [m_player addObserver:self - forKeyPath:AVF_RATE_KEY - options:NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew - context:AVFMediaPlayerSessionObserverRateObservationContext]; - -} - --(void) assetFailedToPrepareForPlayback:(NSError *)error -{ - Q_UNUSED(error) - QMetaObject::invokeMethod(m_session, "processMediaLoadError", Qt::AutoConnection); -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO; - qDebug() << [[error localizedDescription] UTF8String]; - qDebug() << [[error localizedFailureReason] UTF8String]; - qDebug() << [[error localizedRecoverySuggestion] UTF8String]; -#endif -} - -- (void) playerItemDidReachEnd:(NSNotification *)notification -{ - Q_UNUSED(notification) - if (self.session) - QMetaObject::invokeMethod(m_session, "processEOS", Qt::AutoConnection); -} - -- (void) playerItemTimeJumped:(NSNotification *)notification -{ - Q_UNUSED(notification) - if (self.session) - QMetaObject::invokeMethod(m_session, "processPositionChange", Qt::AutoConnection); -} - -- (void) observeValueForKeyPath:(NSString*) path - ofObject:(id)object - change:(NSDictionary*)change - context:(void*)context -{ - //AVPlayerItem "status" property value observer. - if (context == AVFMediaPlayerSessionObserverStatusObservationContext) - { - AVPlayerStatus status = (AVPlayerStatus)[[change objectForKey:NSKeyValueChangeNewKey] integerValue]; - switch (status) - { - //Indicates that the status of the player is not yet known because - //it has not tried to load new media resources for playback - case AVPlayerStatusUnknown: - { - //QMetaObject::invokeMethod(m_session, "processLoadStateChange", Qt::AutoConnection); - } - break; - - case AVPlayerStatusReadyToPlay: - { - //Once the AVPlayerItem becomes ready to play, i.e. - //[playerItem status] == AVPlayerItemStatusReadyToPlay, - //its duration can be fetched from the item. - if (self.session) - QMetaObject::invokeMethod(m_session, "processLoadStateChange", Qt::AutoConnection); - } - break; - - case AVPlayerStatusFailed: - { - AVPlayerItem *playerItem = (AVPlayerItem *)object; - [self assetFailedToPrepareForPlayback:playerItem.error]; - - if (self.session) - QMetaObject::invokeMethod(m_session, "processLoadStateChange", Qt::AutoConnection); - } - break; - } - } - //AVPlayer "rate" property value observer. - else if (context == AVFMediaPlayerSessionObserverRateObservationContext) - { - //QMetaObject::invokeMethod(m_session, "setPlaybackRate", Qt::AutoConnection, Q_ARG(qreal, [m_player rate])); - } - //AVPlayer "currentItem" property observer. - //Called when the AVPlayer replaceCurrentItemWithPlayerItem: - //replacement will/did occur. - else if (context == AVFMediaPlayerSessionObserverCurrentItemObservationContext) - { - AVPlayerItem *newPlayerItem = [change objectForKey:NSKeyValueChangeNewKey]; - if (m_playerItem != newPlayerItem) - { - m_playerItem = newPlayerItem; - - //Get the native size of the new item, and reset the bounds of the player layer - //AVAsset *asset = m_playerItem.asset; - AVAsset *asset = [m_playerItem asset]; - if (asset) { - NSArray *tracks = [asset tracksWithMediaType:AVMediaTypeVideo]; - if ([tracks count]) { - AVAssetTrack *videoTrack = [tracks objectAtIndex:0]; - m_playerLayer.anchorPoint = CGPointMake(0.0f, 0.0f); - m_playerLayer.bounds = CGRectMake(0.0f, 0.0f, videoTrack.naturalSize.width, videoTrack.naturalSize.height); - } - } - - } - if (self.session) - QMetaObject::invokeMethod(m_session, "processCurrentItemChanged", Qt::AutoConnection); - } - else - { - [super observeValueForKeyPath:path ofObject:object change:change context:context]; - } -} - -- (void) detatchSession -{ -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO; -#endif - m_session = 0; -} - -- (void) dealloc -{ -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO; -#endif - [self unloadMedia]; - - if (m_player) { - [m_player removeObserver:self forKeyPath:AVF_CURRENT_ITEM_KEY]; - [m_player removeObserver:self forKeyPath:AVF_RATE_KEY]; - [m_player release]; - m_player = 0; - } - - if (m_playerLayer) { - [m_playerLayer release]; - m_playerLayer = 0; - } - - if (m_URL) { - [m_URL release]; - } - - [super dealloc]; -} - -@end - -AVFMediaPlayerSession::AVFMediaPlayerSession(AVFMediaPlayerService *service, QObject *parent) - : QObject(parent) - , m_service(service) - , m_videoOutput(0) - , m_state(QMediaPlayer::StoppedState) - , m_mediaStatus(QMediaPlayer::NoMedia) - , m_mediaStream(0) - , m_muted(false) - , m_tryingAsync(false) - , m_volume(100) - , m_rate(1.0) - , m_duration(0) - , m_videoAvailable(false) - , m_audioAvailable(false) -{ - m_observer = [[AVFMediaPlayerSessionObserver alloc] initWithMediaPlayerSession:this]; -} - -AVFMediaPlayerSession::~AVFMediaPlayerSession() -{ -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO; -#endif - //Detatch the session from the sessionObserver (which could still be alive trying to communicate with this session). - [(AVFMediaPlayerSessionObserver*)m_observer detatchSession]; - [(AVFMediaPlayerSessionObserver*)m_observer release]; -} - -void AVFMediaPlayerSession::setVideoOutput(AVFVideoOutput *output) -{ -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO << output; -#endif - - if (m_videoOutput == output) - return; - - //Set the current output layer to null to stop rendering - if (m_videoOutput) { - m_videoOutput->setLayer(0); - } - - m_videoOutput = output; - - if (m_videoOutput && m_state != QMediaPlayer::StoppedState) - m_videoOutput->setLayer([(AVFMediaPlayerSessionObserver*)m_observer playerLayer]); -} - -void *AVFMediaPlayerSession::currentAssetHandle() -{ -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO; -#endif - AVAsset *currentAsset = [[(AVFMediaPlayerSessionObserver*)m_observer playerItem] asset]; - return currentAsset; -} - -QMediaPlayer::State AVFMediaPlayerSession::state() const -{ - return m_state; -} - -QMediaPlayer::MediaStatus AVFMediaPlayerSession::mediaStatus() const -{ - return m_mediaStatus; -} - -QMediaContent AVFMediaPlayerSession::media() const -{ - return m_resources; -} - -const QIODevice *AVFMediaPlayerSession::mediaStream() const -{ - return m_mediaStream; -} - -void AVFMediaPlayerSession::setMedia(const QMediaContent &content, QIODevice *stream) -{ -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO << content.canonicalUrl(); -#endif - - m_resources = content; - m_mediaStream = stream; - - QMediaPlayer::MediaStatus oldMediaStatus = m_mediaStatus; - - if (content.isNull() || content.canonicalUrl().isEmpty()) { - [(AVFMediaPlayerSessionObserver*)m_observer unloadMedia]; - m_mediaStatus = QMediaPlayer::NoMedia; - if (m_state != QMediaPlayer::StoppedState) - Q_EMIT stateChanged(m_state = QMediaPlayer::StoppedState); - - if (m_mediaStatus != oldMediaStatus) - Q_EMIT mediaStatusChanged(m_mediaStatus); - Q_EMIT positionChanged(position()); - return; - } else { - - m_mediaStatus = QMediaPlayer::LoadingMedia; - if (m_mediaStatus != oldMediaStatus) - Q_EMIT mediaStatusChanged(m_mediaStatus); - } - //Load AVURLAsset - //initialize asset using content's URL - NSString *urlString = [NSString stringWithUTF8String:content.canonicalUrl().toEncoded().constData()]; - NSURL *url = [NSURL URLWithString:urlString]; - [(AVFMediaPlayerSessionObserver*)m_observer setURL:url]; -} - -qint64 AVFMediaPlayerSession::position() const -{ - AVPlayerItem *playerItem = [(AVFMediaPlayerSessionObserver*)m_observer playerItem]; - - if (!playerItem) - return 0; - - CMTime time = [playerItem currentTime]; - return static_cast(float(time.value) / float(time.timescale) * 1000.0f); -} - -qint64 AVFMediaPlayerSession::duration() const -{ -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO; -#endif - AVPlayerItem *playerItem = [(AVFMediaPlayerSessionObserver*)m_observer playerItem]; - - if (!playerItem) - return 0; - - CMTime time = [playerItem duration]; - return static_cast(float(time.value) / float(time.timescale) * 1000.0f); -} - -int AVFMediaPlayerSession::bufferStatus() const -{ - //BUG: bufferStatus may be relevant? -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO; -#endif - return 100; -} - -int AVFMediaPlayerSession::volume() const -{ - return m_volume; -} - -bool AVFMediaPlayerSession::isMuted() const -{ - return m_muted; -} - -bool AVFMediaPlayerSession::isAudioAvailable() const -{ - return [(AVFMediaPlayerSessionObserver*)m_observer audioAvailable]; -} - -bool AVFMediaPlayerSession::isVideoAvailable() const -{ - return [(AVFMediaPlayerSessionObserver*)m_observer videoAvailable]; -} - -bool AVFMediaPlayerSession::isSeekable() const -{ - return true; -} - -QMediaTimeRange AVFMediaPlayerSession::availablePlaybackRanges() const -{ - AVPlayerItem *playerItem = [(AVFMediaPlayerSessionObserver*)m_observer playerItem]; - - if (playerItem) { - QMediaTimeRange timeRanges; - - NSArray *ranges = [playerItem loadedTimeRanges]; - for (NSValue *timeRange in ranges) { - CMTimeRange currentTimeRange = [timeRange CMTimeRangeValue]; - qint64 startTime = qint64(float(currentTimeRange.start.value) / currentTimeRange.start.timescale * 1000.0); - timeRanges.addInterval(startTime, startTime + qint64(float(currentTimeRange.duration.value) / currentTimeRange.duration.timescale * 1000.0)); - } - if (!timeRanges.isEmpty()) - return timeRanges; - } - return QMediaTimeRange(0, duration()); -} - -qreal AVFMediaPlayerSession::playbackRate() const -{ - return m_rate; -} - -void AVFMediaPlayerSession::setPlaybackRate(qreal rate) -{ -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO << rate; -#endif - - if (qFuzzyCompare(m_rate, rate)) - return; - - m_rate = rate; - - AVPlayer *player = [(AVFMediaPlayerSessionObserver*)m_observer player]; - - if (player != 0 && m_state == QMediaPlayer::PlayingState) { - [player setRate:m_rate]; - } -} - -void AVFMediaPlayerSession::setPosition(qint64 pos) -{ -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO << pos; -#endif - - if ( !isSeekable() || pos == position()) - return; - - AVPlayerItem *playerItem = [(AVFMediaPlayerSessionObserver*)m_observer playerItem]; - - if (!playerItem) - return; - - if (duration() > 0) - pos = qMin(pos, duration()); - - CMTime newTime = [playerItem currentTime]; - newTime.value = (pos / 1000.0f) * newTime.timescale; - [playerItem seekToTime:newTime]; - - //reset the EndOfMedia status position is changed after playback is finished - if (m_mediaStatus == QMediaPlayer::EndOfMedia) - processLoadStateChange(); -} - -void AVFMediaPlayerSession::play() -{ -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO << "currently: " << m_state; -#endif - - if (m_state == QMediaPlayer::PlayingState) - return; - - m_state = QMediaPlayer::PlayingState; - - if (m_videoOutput) { - m_videoOutput->setLayer([(AVFMediaPlayerSessionObserver*)m_observer playerLayer]); - } - - //reset the EndOfMedia status if the same file is played again - if (m_mediaStatus == QMediaPlayer::EndOfMedia) { - setPosition(0); - processLoadStateChange(); - } - - if (m_mediaStatus == QMediaPlayer::LoadedMedia || m_mediaStatus == QMediaPlayer::BufferedMedia) - [[(AVFMediaPlayerSessionObserver*)m_observer player] play]; - - //processLoadStateChange(); - Q_EMIT stateChanged(m_state); -} - -void AVFMediaPlayerSession::pause() -{ -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO << "currently: " << m_state; -#endif - - if (m_state == QMediaPlayer::PausedState) - return; - - m_state = QMediaPlayer::PausedState; - - if (m_videoOutput) { - m_videoOutput->setLayer([(AVFMediaPlayerSessionObserver*)m_observer playerLayer]); - } - - //reset the EndOfMedia status if the same file is played again - if (m_mediaStatus == QMediaPlayer::EndOfMedia) - processLoadStateChange(); - - [[(AVFMediaPlayerSessionObserver*)m_observer player] pause]; - - //processLoadStateChange(); - Q_EMIT stateChanged(m_state); -} - -void AVFMediaPlayerSession::stop() -{ -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO << "currently: " << m_state; -#endif - - if (m_state == QMediaPlayer::StoppedState) - return; - - m_state = QMediaPlayer::StoppedState; - m_rate = 0.0f; - [[(AVFMediaPlayerSessionObserver*)m_observer player] setRate:m_rate]; - setPosition(0); - - if (m_videoOutput) { - m_videoOutput->setLayer(0); - } - - processLoadStateChange(); - Q_EMIT stateChanged(m_state); - Q_EMIT positionChanged(position()); -} - -void AVFMediaPlayerSession::setVolume(int volume) -{ -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO << volume; -#endif - - if (m_volume == volume) - return; - - m_volume = volume; - -#if defined(Q_OS_OSX) - AVPlayer *player = [(AVFMediaPlayerSessionObserver*)m_observer player]; - if (player) { - [[(AVFMediaPlayerSessionObserver*)m_observer player] setVolume:m_volume / 100.0f]; - } -#endif - - Q_EMIT volumeChanged(m_volume); -} - -void AVFMediaPlayerSession::setMuted(bool muted) -{ -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO << muted; -#endif - if (m_muted == muted) - return; - - m_muted = muted; -#if defined(Q_OS_OSX) - [[(AVFMediaPlayerSessionObserver*)m_observer player] setMuted:m_muted]; -#endif - Q_EMIT mutedChanged(muted); -} - -void AVFMediaPlayerSession::processEOS() -{ - //AVPlayerItem has reached end of track/stream -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO; -#endif - Q_EMIT positionChanged(position()); - m_mediaStatus = QMediaPlayer::EndOfMedia; - - Q_EMIT stateChanged(m_state = QMediaPlayer::StoppedState); - Q_EMIT mediaStatusChanged(m_mediaStatus); -} - -void AVFMediaPlayerSession::processLoadStateChange() -{ - AVPlayerStatus currentStatus = [[(AVFMediaPlayerSessionObserver*)m_observer player] status]; - -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO << currentStatus; -#endif - - QMediaPlayer::MediaStatus newStatus = QMediaPlayer::NoMedia; - bool isPlaying = (m_state != QMediaPlayer::StoppedState); - - if (currentStatus == AVPlayerStatusReadyToPlay) { - qint64 currentDuration = duration(); - if (m_duration != currentDuration) - Q_EMIT durationChanged(m_duration = currentDuration); - - if (m_audioAvailable != isAudioAvailable()) - Q_EMIT audioAvailableChanged(m_audioAvailable = !m_audioAvailable); - - if (m_videoAvailable != isVideoAvailable()) - Q_EMIT videoAvailableChanged(m_videoAvailable = !m_videoAvailable); - - newStatus = isPlaying ? QMediaPlayer::BufferedMedia : QMediaPlayer::LoadedMedia; - - if (m_state == QMediaPlayer::PlayingState && [(AVFMediaPlayerSessionObserver*)m_observer player]) { - [[(AVFMediaPlayerSessionObserver*)m_observer player] setRate:m_rate]; - [[(AVFMediaPlayerSessionObserver*)m_observer player] play]; - } - } - - if (newStatus != m_mediaStatus) - Q_EMIT mediaStatusChanged(m_mediaStatus = newStatus); -} - -void AVFMediaPlayerSession::processPositionChange() -{ - Q_EMIT positionChanged(position()); -} - -void AVFMediaPlayerSession::processMediaLoadError() -{ - Q_EMIT error(QMediaPlayer::FormatError, tr("Failed to load media")); - Q_EMIT mediaStatusChanged(m_mediaStatus = QMediaPlayer::InvalidMedia); - Q_EMIT stateChanged(m_state = QMediaPlayer::StoppedState); -} - -void AVFMediaPlayerSession::processCurrentItemChanged() -{ -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO; -#endif - - AVPlayerLayer *playerLayer = [(AVFMediaPlayerSessionObserver*)m_observer playerLayer]; - - if (m_videoOutput && m_state != QMediaPlayer::StoppedState) { - m_videoOutput->setLayer(playerLayer); - } - -} diff --git a/Telegram/_qt_5_3_1_patch/qtmultimedia/src/plugins/pulseaudio/pulseaudio.pro b/Telegram/_qt_5_3_1_patch/qtmultimedia/src/plugins/pulseaudio/pulseaudio.pro deleted file mode 100644 index fe8de004f..000000000 --- a/Telegram/_qt_5_3_1_patch/qtmultimedia/src/plugins/pulseaudio/pulseaudio.pro +++ /dev/null @@ -1,26 +0,0 @@ -TARGET = qtmedia_pulse -QT += multimedia-private - -PLUGIN_TYPE = audio -PLUGIN_CLASS_NAME = QPulseAudioPlugin -load(qt_plugin) - -CONFIG += link_pkgconfig -PKGCONFIG += libpulse -CONFIG += static plugin -HEADERS += qpulseaudioplugin.h \ - qaudiodeviceinfo_pulse.h \ - qaudiooutput_pulse.h \ - qaudioinput_pulse.h \ - qpulseaudioengine.h \ - qpulsehelpers.h - -SOURCES += qpulseaudioplugin.cpp \ - qaudiodeviceinfo_pulse.cpp \ - qaudiooutput_pulse.cpp \ - qaudioinput_pulse.cpp \ - qpulseaudioengine.cpp \ - qpulsehelpers.cpp - -OTHER_FILES += \ - pulseaudio.json diff --git a/_qt_5_4_0_patch.diff b/Telegram/_qt_5_4_0_patch.diff similarity index 92% rename from _qt_5_4_0_patch.diff rename to Telegram/_qt_5_4_0_patch.diff index d3a9a6566..073b8bb7a 100644 --- a/_qt_5_4_0_patch.diff +++ b/Telegram/_qt_5_4_0_patch.diff @@ -63,6 +63,19 @@ index 1987f27..6b36e4f 100644 { /* High surrogate. Must be a followed by a low surrogate. */ if (length == 0) +diff --git a/qtbase/src/corelib/tools/qunicodetables.cpp b/qtbase/src/corelib/tools/qunicodetables.cpp +index 072e8ad..2bf3bfd 100644 +--- a/qtbase/src/corelib/tools/qunicodetables.cpp ++++ b/qtbase/src/corelib/tools/qunicodetables.cpp +@@ -5360,7 +5360,7 @@ static const Properties uc_properties[] = { + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 4, 4, 21, 11 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 11 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 8, 8, 12, 11 }, +- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 17, 2 }, ++ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 17, 11 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 11 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 11 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 11 }, diff --git a/qtbase/src/gui/image/qbmphandler.cpp b/qtbase/src/gui/image/qbmphandler.cpp index 21c1a2f..f293ef9 100644 --- a/qtbase/src/gui/image/qbmphandler.cpp @@ -597,6 +610,38 @@ index f1f472b..97819dd 100644 void QWindowsXpFileDialogHelper::selectNameFilter(const QString &f) { m_data.setSelectedNameFilter(f); // Dialog cannot be updated at run-time. +diff --git a/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp b/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp +index ff9ad18..ba423b4 100644 +--- a/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp ++++ b/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp +@@ -537,17 +537,16 @@ static inline int toKeyOrUnicode(int vk, int scancode, unsigned char *kbdBuffer, + Q_ASSERT(vk > 0 && vk < 256); + int code = 0; + QChar unicodeBuffer[5]; +- // While key combinations containing alt and ctrl might trigger the third assignment of a key +- // (for example "alt+ctrl+q" causes '@' on a German layout), ToUnicode often does not return the +- // wanted character if only the ctrl modifier is used. Thus we unset this modifier temporarily +- // if it is not used together with alt. +- const unsigned char controlState = kbdBuffer[VK_MENU] ? 0 : kbdBuffer[VK_CONTROL]; +- if (controlState) +- kbdBuffer[VK_CONTROL] = 0; +- int res = ToUnicode(vk, scancode, kbdBuffer, reinterpret_cast(unicodeBuffer), 5, 0); +- if (controlState) +- kbdBuffer[VK_CONTROL] = controlState; +- if (res) ++ int res = ToUnicode(vk, scancode, kbdBuffer, reinterpret_cast(unicodeBuffer), 5, 0); ++ // When Ctrl modifier is used ToUnicode does not return correct values. In order to assign the ++ // right key the control modifier is removed for just that function if the previous call failed. ++ if (res == 0 && kbdBuffer[VK_CONTROL]) { ++ const unsigned char controlState = kbdBuffer[VK_CONTROL]; ++ kbdBuffer[VK_CONTROL] = 0; ++ res = ToUnicode(vk, scancode, kbdBuffer, reinterpret_cast(unicodeBuffer), 5, 0); ++ kbdBuffer[VK_CONTROL] = controlState; ++ } ++ if (res) + code = unicodeBuffer[0].toUpper().unicode(); + + // Qt::Key_*'s are not encoded below 0x20, so try again, and DEL keys (0x7f) is encoded with a diff --git a/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp b/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp index 8a80729..16fda26 100644 --- a/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp @@ -782,7 +827,7 @@ index dfec6a1..a1be4a1 100644 // no need to call deleteChar() if we have a selection, insertText // does it already diff --git a/qtimageformats/src/3rdparty/libwebp/src/dec/vp8l.c b/qtimageformats/src/3rdparty/libwebp/src/dec/vp8l.c -index ea0254d..868c8cf 100644 +index ea0254d..93d9dc4 100644 --- a/qtimageformats/src/3rdparty/libwebp/src/dec/vp8l.c +++ b/qtimageformats/src/3rdparty/libwebp/src/dec/vp8l.c @@ -12,7 +12,6 @@ @@ -809,14 +854,14 @@ index ea0254d..868c8cf 100644 assert(src_last <= src_end); while (!br->eos_ && src < src_last) { -@@ -1293,6 +1294,10 @@ int VP8LDecodeAlphaImageStream(ALPHDecoder* const alph_dec, int last_row) { - assert(dec != NULL); +@@ -1294,6 +1295,10 @@ int VP8LDecodeAlphaImageStream(ALPHDecoder* const alph_dec, int last_row) { assert(dec->action_ == READ_DATA); assert(last_row <= dec->height_); -+ + + if (dec->last_pixel_ == dec->width_ * dec->height_) { + return 1; // Done + } - ++ // Decode (with special row processing). return alph_dec->use_8b_decode ? + DecodeAlphaData(dec, (uint8_t*)dec->pixels_, dec->width_, dec->height_, diff --git a/Telegram/_qt_5_4_0_patch/_qt_5_4_0_patch.diff b/Telegram/_qt_5_4_0_patch/_qt_5_4_0_patch.diff new file mode 100644 index 000000000..073b8bb7a --- /dev/null +++ b/Telegram/_qt_5_4_0_patch/_qt_5_4_0_patch.diff @@ -0,0 +1,867 @@ +diff --git a/qtbase/mkspecs/win32-msvc2013/qmake.conf b/qtbase/mkspecs/win32-msvc2013/qmake.conf +index 535904a..6d0e9b9 100644 +--- a/qtbase/mkspecs/win32-msvc2013/qmake.conf ++++ b/qtbase/mkspecs/win32-msvc2013/qmake.conf +@@ -25,9 +25,9 @@ QMAKE_YACCFLAGS = -d + QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t -FS + QMAKE_CFLAGS_WARN_ON = -W3 + QMAKE_CFLAGS_WARN_OFF = -W0 +-QMAKE_CFLAGS_RELEASE = -O2 -MD -Zc:strictStrings +-QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi -Zc:strictStrings +-QMAKE_CFLAGS_DEBUG = -Zi -MDd ++QMAKE_CFLAGS_RELEASE = -O2 -MT -Zc:strictStrings ++QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi -Zc:strictStrings ++QMAKE_CFLAGS_DEBUG = -Zi -MTd + QMAKE_CFLAGS_YACC = + QMAKE_CFLAGS_LTCG = -GL + QMAKE_CFLAGS_MP = -MP +diff --git a/qtbase/qmake/generators/mac/pbuilder_pbx.cpp b/qtbase/qmake/generators/mac/pbuilder_pbx.cpp +index 0ff4250..9ed555c 100644 +--- a/qtbase/qmake/generators/mac/pbuilder_pbx.cpp ++++ b/qtbase/qmake/generators/mac/pbuilder_pbx.cpp +@@ -1445,11 +1445,15 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) + plist_in_text = plist_in_text.replace("@TYPEINFO@", + (project->isEmpty("QMAKE_PKGINFO_TYPEINFO") + ? QString::fromLatin1("????") : project->first("QMAKE_PKGINFO_TYPEINFO").left(4).toQString())); +- QFile plist_out_file("Info.plist"); ++ QString plist_dir; ++ if (!project->isEmpty("PLIST_DIR")) ++ plist_dir = project->first("PLIST_DIR").toQString(); ++ QString plist_in_filename = QFileInfo(plist_in_file).fileName(); ++ QFile plist_out_file(plist_dir + plist_in_filename); + if (plist_out_file.open(QIODevice::WriteOnly | QIODevice::Text)) { + QTextStream plist_out(&plist_out_file); + plist_out << plist_in_text; +- t << "\t\t\t\t" << writeSettings("INFOPLIST_FILE", "Info.plist") << ";\n"; ++ t << "\t\t\t\t" << writeSettings("INFOPLIST_FILE", fixForOutput(plist_dir + plist_in_filename)) << ";\n"; + } + } + } +diff --git a/qtbase/qmake/generators/makefile.cpp b/qtbase/qmake/generators/makefile.cpp +index bf9a9d8..0216f5c 100644 +--- a/qtbase/qmake/generators/makefile.cpp ++++ b/qtbase/qmake/generators/makefile.cpp +@@ -206,7 +206,7 @@ MakefileGenerator::initOutPaths() + v["PRECOMPILED_DIR"] = v["OBJECTS_DIR"]; + static const char * const dirs[] = { "OBJECTS_DIR", "DESTDIR", + "SUBLIBS_DIR", "DLLDESTDIR", +- "PRECOMPILED_DIR", 0 }; ++ "PRECOMPILED_DIR", "PLIST_DIR", 0 }; + for (int x = 0; dirs[x]; x++) { + const ProKey dkey(dirs[x]); + if (v[dkey].isEmpty()) +diff --git a/qtbase/src/3rdparty/pcre/pcre16_valid_utf16.c b/qtbase/src/3rdparty/pcre/pcre16_valid_utf16.c +index 1987f27..6b36e4f 100644 +--- a/qtbase/src/3rdparty/pcre/pcre16_valid_utf16.c ++++ b/qtbase/src/3rdparty/pcre/pcre16_valid_utf16.c +@@ -101,7 +101,7 @@ for (p = string; length-- > 0; p++) + { + /* Normal UTF-16 code point. Neither high nor low surrogate. */ + } +- else if ((c & 0x0400) == 0) ++ else if ((c & 0xfc00) == 0xd800) + { + /* High surrogate. Must be a followed by a low surrogate. */ + if (length == 0) +diff --git a/qtbase/src/corelib/tools/qunicodetables.cpp b/qtbase/src/corelib/tools/qunicodetables.cpp +index 072e8ad..2bf3bfd 100644 +--- a/qtbase/src/corelib/tools/qunicodetables.cpp ++++ b/qtbase/src/corelib/tools/qunicodetables.cpp +@@ -5360,7 +5360,7 @@ static const Properties uc_properties[] = { + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 4, 4, 21, 11 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 11 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 8, 8, 12, 11 }, +- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 17, 2 }, ++ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 17, 11 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 11 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 11 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 11 }, +diff --git a/qtbase/src/gui/image/qbmphandler.cpp b/qtbase/src/gui/image/qbmphandler.cpp +index 21c1a2f..f293ef9 100644 +--- a/qtbase/src/gui/image/qbmphandler.cpp ++++ b/qtbase/src/gui/image/qbmphandler.cpp +@@ -212,6 +212,9 @@ static bool read_dib_body(QDataStream &s, const BMP_INFOHDR &bi, int offset, int + int blue_scale = 0; + int alpha_scale = 0; + ++ if (!d->isSequential()) ++ d->seek(startpos + BMP_FILEHDR_SIZE + (bi.biSize >= BMP_WIN4 ? BMP_WIN : bi.biSize)); // goto start of colormap ++ + if (bi.biSize >= BMP_WIN4 || (comp == BMP_BITFIELDS && (nbits == 16 || nbits == 32))) { + if (d->read((char *)&red_mask, sizeof(red_mask)) != sizeof(red_mask)) + return false; +@@ -299,9 +302,6 @@ static bool read_dib_body(QDataStream &s, const BMP_INFOHDR &bi, int offset, int + image.setDotsPerMeterX(bi.biXPelsPerMeter); + image.setDotsPerMeterY(bi.biYPelsPerMeter); + +- if (!d->isSequential()) +- d->seek(startpos + BMP_FILEHDR_SIZE + (bi.biSize >= BMP_WIN4? BMP_WIN : bi.biSize)); // goto start of colormap +- + if (ncols > 0) { // read color table + uchar rgb[4]; + int rgb_len = t == BMP_OLD ? 3 : 4; +diff --git a/qtbase/src/gui/kernel/qplatformdialoghelper.h b/qtbase/src/gui/kernel/qplatformdialoghelper.h +index e0730cd..00fccad 100644 +--- a/qtbase/src/gui/kernel/qplatformdialoghelper.h ++++ b/qtbase/src/gui/kernel/qplatformdialoghelper.h +@@ -363,6 +363,7 @@ public: + virtual QUrl directory() const = 0; + virtual void selectFile(const QUrl &filename) = 0; + virtual QList selectedFiles() const = 0; ++ virtual QByteArray selectedRemoteContent() const { return QByteArray(); } + virtual void setFilter() = 0; + virtual void selectNameFilter(const QString &filter) = 0; + virtual QString selectedNameFilter() const = 0; +diff --git a/qtbase/src/gui/painting/qpaintengine_p.h b/qtbase/src/gui/painting/qpaintengine_p.h +index 312320c..5e82318 100644 +--- a/qtbase/src/gui/painting/qpaintengine_p.h ++++ b/qtbase/src/gui/painting/qpaintengine_p.h +@@ -79,8 +79,18 @@ public: + if (hasSystemTransform) { + if (systemTransform.type() <= QTransform::TxTranslate) + systemClip.translate(qRound(systemTransform.dx()), qRound(systemTransform.dy())); +- else +- systemClip = systemTransform.map(systemClip); ++ else { ++ // Transform the system clip region back from device pixels to device-independent pixels before ++ // applying systemTransform, which already has transform from device-independent pixels to device pixels ++#ifdef Q_OS_MAC ++ QTransform scaleTransform; ++ const qreal invDevicePixelRatio = 1. / pdev->devicePixelRatio(); ++ scaleTransform.scale(invDevicePixelRatio, invDevicePixelRatio); ++ systemClip = systemTransform.map(scaleTransform.map(systemClip)); ++#else ++ systemClip = systemTransform.map(systemClip); ++#endif ++ } + } + + // Make sure we're inside the viewport. +diff --git a/qtbase/src/gui/text/qtextlayout.h b/qtbase/src/gui/text/qtextlayout.h +index 1e0ab9b..47972d3 100644 +--- a/qtbase/src/gui/text/qtextlayout.h ++++ b/qtbase/src/gui/text/qtextlayout.h +@@ -186,6 +186,8 @@ private: + QRectF *brect, int tabstops, int* tabarray, int tabarraylen, + QPainter *painter); + QTextEngine *d; ++ ++ friend class TextBlock; + }; + + +diff --git a/qtbase/src/network/socket/qnativesocketengine_win.cpp b/qtbase/src/network/socket/qnativesocketengine_win.cpp +index f5943d6..f7787c3 100644 +--- a/qtbase/src/network/socket/qnativesocketengine_win.cpp ++++ b/qtbase/src/network/socket/qnativesocketengine_win.cpp +@@ -703,6 +703,12 @@ bool QNativeSocketEnginePrivate::nativeConnect(const QHostAddress &address, quin + errorDetected = true; + break; + } ++ if (value == WSAENETUNREACH) { ++ setError(QAbstractSocket::NetworkError, NetworkUnreachableErrorString); ++ socketState = QAbstractSocket::UnconnectedState; ++ errorDetected = true; ++ break; ++ } + if (value == WSAEADDRNOTAVAIL) { + setError(QAbstractSocket::NetworkError, AddressNotAvailableErrorString); + socketState = QAbstractSocket::UnconnectedState; +diff --git a/qtbase/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp b/qtbase/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp +index 43903ac..efa7014 100644 +--- a/qtbase/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp ++++ b/qtbase/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp +@@ -213,6 +213,78 @@ void QBasicFontDatabase::releaseHandle(void *handle) + + extern FT_Library qt_getFreetype(); + ++// copied from freetype with some modifications ++ ++#ifndef FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY ++#define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY FT_MAKE_TAG('i', 'g', 'p', 'f') ++#endif ++ ++#ifndef FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY ++#define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY FT_MAKE_TAG('i', 'g', 'p', 's') ++#endif ++ ++/* there's a Mac-specific extended implementation of FT_New_Face() */ ++/* in src/base/ftmac.c */ ++ ++#if !defined( FT_MACINTOSH ) || defined( DARWIN_NO_CARBON ) ++ ++/* documentation is in freetype.h */ ++ ++FT_Error __ft_New_Face(FT_Library library, const char* pathname, FT_Long face_index, FT_Face *aface) { ++ FT_Open_Args args; ++ ++ /* test for valid `library' and `aface' delayed to FT_Open_Face() */ ++ if (!pathname) ++ return FT_Err_Invalid_Argument; ++ ++ FT_Parameter params[2]; ++ params[0].tag = FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY; ++ params[0].data = 0; ++ params[1].tag = FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY; ++ params[1].data = 0; ++ args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; ++ args.pathname = (char*)pathname; ++ args.stream = NULL; ++ args.num_params = 2; ++ args.params = params; ++ ++ return FT_Open_Face(library, &args, face_index, aface); ++} ++ ++#else ++ ++FT_Error __ft_New_Face(FT_Library library, const char* pathname, FT_Long face_index, FT_Face *aface) { ++ return FT_New_Face(library, pathname, face_index, aface); ++} ++ ++#endif /* defined( FT_MACINTOSH ) && !defined( DARWIN_NO_CARBON ) */ ++ ++/* documentation is in freetype.h */ ++ ++FT_Error __ft_New_Memory_Face(FT_Library library, const FT_Byte* file_base, FT_Long file_size, FT_Long face_index, FT_Face *aface) { ++ FT_Open_Args args; ++ ++ /* test for valid `library' and `face' delayed to FT_Open_Face() */ ++ if (!file_base) ++ return FT_Err_Invalid_Argument; ++ ++ FT_Parameter params[2]; ++ params[0].tag = FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY; ++ params[0].data = 0; ++ params[1].tag = FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY; ++ params[1].data = 0; ++ args.flags = FT_OPEN_MEMORY | FT_OPEN_PARAMS; ++ args.memory_base = file_base; ++ args.memory_size = file_size; ++ args.stream = NULL; ++ args.num_params = 2; ++ args.params = params; ++ ++ return FT_Open_Face(library, &args, face_index, aface); ++} ++ ++// end ++ + QStringList QBasicFontDatabase::addTTFile(const QByteArray &fontData, const QByteArray &file, QSupportedWritingSystems *supportedWritingSystems) + { + FT_Library library = qt_getFreetype(); +@@ -224,9 +296,9 @@ QStringList QBasicFontDatabase::addTTFile(const QByteArray &fontData, const QByt + FT_Face face; + FT_Error error; + if (!fontData.isEmpty()) { +- error = FT_New_Memory_Face(library, (const FT_Byte *)fontData.constData(), fontData.size(), index, &face); ++ error = __ft_New_Memory_Face(library, (const FT_Byte *)fontData.constData(), fontData.size(), index, &face); + } else { +- error = FT_New_Face(library, file.constData(), index, &face); ++ error = __ft_New_Face(library, file.constData(), index, &face); + } + if (error != FT_Err_Ok) { + qDebug() << "FT_New_Face failed with index" << index << ":" << hex << error; +diff --git a/qtbase/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm b/qtbase/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm +index 9f2ff10..fe87ca1 100644 +--- a/qtbase/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm ++++ b/qtbase/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm +@@ -257,6 +257,10 @@ static void getFontDescription(CTFontDescriptorRef font, FontDescription *fd) + + fd->foundryName = QStringLiteral("CoreText"); + fd->familyName = (CFStringRef) CTFontDescriptorCopyAttribute(font, kCTFontFamilyNameAttribute); ++ QCFString _displayName = (CFStringRef) CTFontDescriptorCopyAttribute(font, kCTFontDisplayNameAttribute); ++ if (_displayName == QStringLiteral("Open Sans Semibold")) { ++ fd->familyName = _displayName; ++ } + fd->styleName = (CFStringRef)CTFontDescriptorCopyAttribute(font, kCTFontStyleNameAttribute); + fd->weight = QFont::Normal; + fd->style = QFont::StyleNormal; +diff --git a/qtbase/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm b/qtbase/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm +index 9f7609f..5df1514 100644 +--- a/qtbase/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm ++++ b/qtbase/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm +@@ -216,7 +216,7 @@ static void cleanupCocoaApplicationDelegate() + if (reflectionDelegate) { + if ([reflectionDelegate respondsToSelector:@selector(applicationShouldTerminate:)]) + return [reflectionDelegate applicationShouldTerminate:sender]; +- return NSTerminateNow; ++ //return NSTerminateNow; + } + + if ([self canQuit]) { +diff --git a/qtbase/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm b/qtbase/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm +index e449fd3..7f7bd24 100644 +--- a/qtbase/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm ++++ b/qtbase/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm +@@ -102,7 +102,7 @@ QT_USE_NAMESPACE + QCocoaSystemTrayIcon *systray; + NSStatusItem *item; + QCocoaMenu *menu; +- bool menuVisible; ++ bool menuVisible, iconSelected; + QIcon icon; + QT_MANGLE_NAMESPACE(QNSImageView) *imageCell; + } +@@ -202,13 +202,11 @@ void QCocoaSystemTrayIcon::updateIcon(const QIcon &icon) + + m_sys->item->icon = icon; + +- const bool menuVisible = m_sys->item->menu && m_sys->item->menuVisible; +- + // The reccomended maximum title bar icon height is 18 points + // (device independent pixels). The menu height on past and + // current OS X versions is 22 points. Provide some future-proofing + // by deriving the icon height from the menu height. +- const int padding = 4; ++ const int padding = 0; + const int menuHeight = [[[NSApplication sharedApplication] mainMenu] menuBarHeight]; + const int maxImageHeight = menuHeight - padding; + +@@ -218,7 +216,7 @@ void QCocoaSystemTrayIcon::updateIcon(const QIcon &icon) + // devicePixelRatio for the "best" screen on the system. + qreal devicePixelRatio = qApp->devicePixelRatio(); + const int maxPixmapHeight = maxImageHeight * devicePixelRatio; +- const QIcon::Mode mode = menuVisible ? QIcon::Selected : QIcon::Normal; ++ const QIcon::Mode mode = m_sys->item->iconSelected ? QIcon::Selected : QIcon::Normal; + QSize selectedSize; + Q_FOREACH (const QSize& size, sortByHeight(icon.availableSizes(mode))) { + // Select a pixmap based on the height. We want the largest pixmap +@@ -381,6 +379,7 @@ QT_END_NAMESPACE + Q_UNUSED(notification); + down = NO; + ++ parent->iconSelected = false; + parent->systray->updateIcon(parent->icon); + parent->menuVisible = false; + +@@ -393,6 +392,7 @@ QT_END_NAMESPACE + int clickCount = [mouseEvent clickCount]; + [self setNeedsDisplay:YES]; + ++ parent->iconSelected = (clickCount != 2) && parent->menu; + parent->systray->updateIcon(parent->icon); + + if (clickCount == 2) { +@@ -411,6 +411,10 @@ QT_END_NAMESPACE + -(void)mouseUp:(NSEvent *)mouseEvent + { + Q_UNUSED(mouseEvent); ++ ++ parent->iconSelected = false; ++ parent->systray->updateIcon(parent->icon); ++ + [self menuTrackingDone:nil]; + } + +@@ -422,6 +426,10 @@ QT_END_NAMESPACE + -(void)rightMouseUp:(NSEvent *)mouseEvent + { + Q_UNUSED(mouseEvent); ++ ++ parent->iconSelected = false; ++ parent->systray->updateIcon(parent->icon); ++ + [self menuTrackingDone:nil]; + } + +@@ -437,7 +445,7 @@ QT_END_NAMESPACE + } + + -(void)drawRect:(NSRect)rect { +- [[parent item] drawStatusBarBackgroundInRect:rect withHighlight:down]; ++ [[parent item] drawStatusBarBackgroundInRect:rect withHighlight:parent->menu ? down : NO]; + [super drawRect:rect]; + } + @end +diff --git a/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm b/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm +index 6656212..486fda0 100644 +--- a/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm ++++ b/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm +@@ -175,7 +175,7 @@ static void selectNextKeyWindow(NSWindow *currentKeyWindow) + if (!self.window.delegate) + return; // Already detached, pending NSAppKitDefined event + +- if (pw && pw->frameStrutEventsEnabled() && isMouseEvent(theEvent)) { ++ if (pw && pw->frameStrutEventsEnabled() && pw->m_synchedWindowState != Qt::WindowMinimized && pw->m_isExposed && isMouseEvent(theEvent)) { + NSPoint loc = [theEvent locationInWindow]; + NSRect windowFrame = [self.window convertRectFromScreen:[self.window frame]]; + NSRect contentFrame = [[self.window contentView] frame]; +@@ -918,6 +918,14 @@ void QCocoaWindow::setWindowFilePath(const QString &filePath) + [m_nsWindow setRepresentedFilename: fi.exists() ? QCFString::toNSString(filePath) : @""]; + } + ++qreal _win_devicePixelRatio() { ++ qreal result = 1.0; ++ foreach (QScreen *screen, QGuiApplication::screens()) { ++ result = qMax(result, screen->devicePixelRatio()); ++ } ++ return result; ++} ++ + void QCocoaWindow::setWindowIcon(const QIcon &icon) + { + QCocoaAutoReleasePool pool; +@@ -933,7 +941,8 @@ void QCocoaWindow::setWindowIcon(const QIcon &icon) + if (icon.isNull()) { + [iconButton setImage:nil]; + } else { +- QPixmap pixmap = icon.pixmap(QSize(22, 22)); ++ CGFloat hgt = 16. * _win_devicePixelRatio(); ++ QPixmap pixmap = icon.pixmap(QSize(hgt, hgt)); + NSImage *image = static_cast(qt_mac_create_nsimage(pixmap)); + [iconButton setImage:image]; + [image release]; +diff --git a/qtbase/src/plugins/platforms/cocoa/qnsview.mm b/qtbase/src/plugins/platforms/cocoa/qnsview.mm +index 6993407..0357bf4 100644 +--- a/qtbase/src/plugins/platforms/cocoa/qnsview.mm ++++ b/qtbase/src/plugins/platforms/cocoa/qnsview.mm +@@ -1321,7 +1321,7 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) + #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_8 + if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_8) { + // On 10.8 and above, MayBegin is likely to happen. We treat it the same as an actual begin. +- if (phase == NSEventPhaseMayBegin) ++ if (phase == NSEventPhaseMayBegin || phase == NSEventPhaseBegan) + ph = Qt::ScrollBegin; + } else + #endif +@@ -1451,6 +1451,9 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) + && qtKey == Qt::Key_Period) { + [self handleKeyEvent:nsevent eventType:int(QEvent::KeyPress)]; + return YES; ++ } else if ([nsevent modifierFlags] & NSControlKeyMask && (qtKey == Qt::Key_Tab || qtKey == Qt::Key_Backtab)) { ++ [self handleKeyEvent:nsevent eventType:int(QEvent::KeyPress)]; ++ return YES; + } + } + return [super performKeyEquivalent:nsevent]; +diff --git a/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp +index f1f472b..97819dd 100644 +--- a/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp ++++ b/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp +@@ -710,6 +710,8 @@ public: + QList selectedFiles() const; + void setSelectedFiles(const QList &); + QString selectedFile() const; ++ void setSelectedRemoteContent(const QByteArray &); ++ QByteArray selectedRemoteContent() const; + + private: + class Data : public QSharedData { +@@ -717,6 +719,7 @@ private: + QUrl directory; + QString selectedNameFilter; + QList selectedFiles; ++ QByteArray selectedRemoteContent; + QMutex mutex; + }; + QExplicitlySharedDataPointer m_data; +@@ -770,6 +773,20 @@ inline void QWindowsFileDialogSharedData::setSelectedFiles(const QList &ur + m_data->selectedFiles = urls; + } + ++inline QByteArray QWindowsFileDialogSharedData::selectedRemoteContent() const ++{ ++ m_data->mutex.lock(); ++ const QByteArray result = m_data->selectedRemoteContent; ++ m_data->mutex.unlock(); ++ return result; ++} ++ ++inline void QWindowsFileDialogSharedData::setSelectedRemoteContent(const QByteArray &c) ++{ ++ QMutexLocker(&m_data->mutex); ++ m_data->selectedRemoteContent = c; ++} ++ + inline void QWindowsFileDialogSharedData::fromOptions(const QSharedPointer &o) + { + QMutexLocker (&m_data->mutex); +@@ -893,6 +910,7 @@ public: + // Return the result for tracking in OnFileOk(). Differs from selection for + // example by appended default suffixes, etc. + virtual QList dialogResult() const = 0; ++ virtual QByteArray dialogRemoteContent() const { return QByteArray(); } + + inline void onFolderChange(IShellItem *); + inline void onSelectionChange(); +@@ -1286,7 +1304,12 @@ void QWindowsNativeFileDialogBase::setLabelText(QFileDialogOptions::DialogLabel + + void QWindowsNativeFileDialogBase::selectFile(const QString &fileName) const + { +- m_fileDialog->SetFileName((wchar_t*)fileName.utf16()); ++ QString file = QDir::toNativeSeparators(fileName); ++ int lastBackSlash = file.lastIndexOf(QChar::fromLatin1('\\')); ++ if (lastBackSlash >= 0) { ++ file = file.mid(lastBackSlash + 1); ++ } ++ m_fileDialog->SetFileName((wchar_t*)file.utf16());; + } + + // Return the index of the selected filter, accounting for QFileDialog +@@ -1356,6 +1379,7 @@ bool QWindowsNativeFileDialogBase::onFileOk() + { + // Store selected files as GetResults() returns invalid data after the dialog closes. + m_data.setSelectedFiles(dialogResult()); ++ m_data.setSelectedRemoteContent(dialogRemoteContent()); + return true; + } + +@@ -1484,6 +1508,7 @@ public: + QWindowsNativeFileDialogBase(data) {} + virtual QList selectedFiles() const; + virtual QList dialogResult() const; ++ virtual QByteArray dialogRemoteContent() const; + + private: + inline IFileOpenDialog *openFileDialog() const +@@ -1499,6 +1524,54 @@ QList QWindowsNativeOpenFileDialog::dialogResult() const + return result; + } + ++QByteArray QWindowsNativeOpenFileDialog::dialogRemoteContent() const { ++ QByteArray result; ++ IShellItemArray *items = 0; ++ if (FAILED(openFileDialog()->GetResults(&items)) || !items) ++ return result; ++ DWORD itemCount = 0; ++ if (FAILED(items->GetCount(&itemCount)) || !itemCount) ++ return result; ++ for (DWORD i = 0; i < itemCount; ++i) { ++ IShellItem *item = 0; ++ if (SUCCEEDED(items->GetItemAt(i, &item))) { ++ SFGAOF attributes = 0; ++ // Check whether it has a file system representation? ++ if (FAILED(item->GetAttributes(SFGAO_FILESYSTEM, &attributes)) || (attributes & SFGAO_FILESYSTEM)) { ++ LPWSTR name = 0; ++ if (SUCCEEDED(item->GetDisplayName(SIGDN_FILESYSPATH, &name))) { ++ CoTaskMemFree(name); ++ continue; ++ } ++ } ++ if (FAILED(item->GetAttributes(SFGAO_STREAM, &attributes)) || !(attributes & SFGAO_STREAM)) ++ continue; ++ ++ IBindCtx *bind = 0; ++ if (FAILED(CreateBindCtx(0, &bind))) ++ continue; ++ ++ IStream *stream = 0; ++ if (FAILED(item->BindToHandler(bind, BHID_Stream, IID_IStream, reinterpret_cast(&stream)))) ++ continue; ++ ++ STATSTG stat = { 0 }; ++ if (FAILED(stream->Stat(&stat, STATFLAG_NONAME)) || !stat.cbSize.QuadPart) ++ continue; ++ ++ quint64 fullSize = stat.cbSize.QuadPart; ++ result.resize(fullSize); ++ ULONG read = 0; ++ HRESULT r = stream->Read(result.data(), fullSize, &read); ++ if (r == S_FALSE || r == S_OK) ++ return result; ++ ++ result.clear(); ++ } ++ } ++ return result; ++} ++ + QList QWindowsNativeOpenFileDialog::selectedFiles() const + { + QList result; +@@ -1562,6 +1635,7 @@ public: + virtual QUrl directory() const Q_DECL_OVERRIDE; + virtual void selectFile(const QUrl &filename) Q_DECL_OVERRIDE; + virtual QList selectedFiles() const Q_DECL_OVERRIDE; ++ virtual QByteArray selectedRemoteContent() const Q_DECL_OVERRIDE; + virtual void setFilter() Q_DECL_OVERRIDE; + virtual void selectNameFilter(const QString &filter) Q_DECL_OVERRIDE; + virtual QString selectedNameFilter() const Q_DECL_OVERRIDE; +@@ -1655,6 +1729,11 @@ QList QWindowsFileDialogHelper::selectedFiles() const + return m_data.selectedFiles(); + } + ++QByteArray QWindowsFileDialogHelper::selectedRemoteContent() const ++{ ++ return m_data.selectedRemoteContent(); ++} ++ + void QWindowsFileDialogHelper::setFilter() + { + qCDebug(lcQpaDialogs) << __FUNCTION__; +@@ -1945,6 +2024,7 @@ public: + virtual QUrl directory() const Q_DECL_OVERRIDE; + virtual void selectFile(const QUrl &url) Q_DECL_OVERRIDE; + virtual QList selectedFiles() const Q_DECL_OVERRIDE; ++ virtual QByteArray selectedRemoteContent() const Q_DECL_OVERRIDE; + virtual void setFilter() Q_DECL_OVERRIDE {} + virtual void selectNameFilter(const QString &) Q_DECL_OVERRIDE; + virtual QString selectedNameFilter() const Q_DECL_OVERRIDE; +@@ -1988,6 +2068,11 @@ QList QWindowsXpFileDialogHelper::selectedFiles() const + return m_data.selectedFiles(); + } + ++QByteArray QWindowsXpFileDialogHelper::selectedRemoteContent() const ++{ ++ return m_data.selectedRemoteContent(); ++} ++ + void QWindowsXpFileDialogHelper::selectNameFilter(const QString &f) + { + m_data.setSelectedNameFilter(f); // Dialog cannot be updated at run-time. +diff --git a/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp b/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp +index ff9ad18..ba423b4 100644 +--- a/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp ++++ b/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp +@@ -537,17 +537,16 @@ static inline int toKeyOrUnicode(int vk, int scancode, unsigned char *kbdBuffer, + Q_ASSERT(vk > 0 && vk < 256); + int code = 0; + QChar unicodeBuffer[5]; +- // While key combinations containing alt and ctrl might trigger the third assignment of a key +- // (for example "alt+ctrl+q" causes '@' on a German layout), ToUnicode often does not return the +- // wanted character if only the ctrl modifier is used. Thus we unset this modifier temporarily +- // if it is not used together with alt. +- const unsigned char controlState = kbdBuffer[VK_MENU] ? 0 : kbdBuffer[VK_CONTROL]; +- if (controlState) +- kbdBuffer[VK_CONTROL] = 0; +- int res = ToUnicode(vk, scancode, kbdBuffer, reinterpret_cast(unicodeBuffer), 5, 0); +- if (controlState) +- kbdBuffer[VK_CONTROL] = controlState; +- if (res) ++ int res = ToUnicode(vk, scancode, kbdBuffer, reinterpret_cast(unicodeBuffer), 5, 0); ++ // When Ctrl modifier is used ToUnicode does not return correct values. In order to assign the ++ // right key the control modifier is removed for just that function if the previous call failed. ++ if (res == 0 && kbdBuffer[VK_CONTROL]) { ++ const unsigned char controlState = kbdBuffer[VK_CONTROL]; ++ kbdBuffer[VK_CONTROL] = 0; ++ res = ToUnicode(vk, scancode, kbdBuffer, reinterpret_cast(unicodeBuffer), 5, 0); ++ kbdBuffer[VK_CONTROL] = controlState; ++ } ++ if (res) + code = unicodeBuffer[0].toUpper().unicode(); + + // Qt::Key_*'s are not encoded below 0x20, so try again, and DEL keys (0x7f) is encoded with a +diff --git a/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp b/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp +index 8a80729..16fda26 100644 +--- a/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp ++++ b/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp +@@ -943,7 +943,7 @@ void QWindowsWindow::destroyWindow() + // Clear any transient child relationships as Windows will otherwise destroy them (QTBUG-35499, QTBUG-36666) + if (QWindow *transientChild = findTransientChild(window())) + if (QWindowsWindow *tw = QWindowsWindow::baseWindowOf(transientChild)) +- tw->updateTransientParent(); ++ tw->clearTransientParent(); + QWindowsContext *context = QWindowsContext::instance(); + if (context->windowUnderMouse() == window()) + context->clearWindowUnderMouse(); +@@ -1144,11 +1144,24 @@ void QWindowsWindow::updateTransientParent() const + if (const QWindowsWindow *tw = QWindowsWindow::baseWindowOf(tp)) + if (!tw->testFlag(WithinDestroy)) // Prevent destruction by parent window (QTBUG-35499, QTBUG-36666) + newTransientParent = tw->handle(); +- if (newTransientParent != oldTransientParent) ++ if (newTransientParent && newTransientParent != oldTransientParent) + SetWindowLongPtr(m_data.hwnd, GWL_HWNDPARENT, (LONG_PTR)newTransientParent); + #endif // !Q_OS_WINCE + } + ++void QWindowsWindow::clearTransientParent() const ++{ ++#ifndef Q_OS_WINCE ++ if (window()->type() == Qt::Popup) ++ return; // QTBUG-34503, // a popup stays on top, no parent, see also WindowCreationData::fromWindow(). ++ // Update transient parent. ++ const HWND oldTransientParent = transientParentHwnd(m_data.hwnd); ++ HWND newTransientParent = 0; ++ if (newTransientParent != oldTransientParent) ++ SetWindowLongPtr(m_data.hwnd, GWL_HWNDPARENT, (LONG_PTR)newTransientParent); ++#endif // !Q_OS_WINCE ++} ++ + static inline bool testShowWithoutActivating(const QWindow *window) + { + // QWidget-attribute Qt::WA_ShowWithoutActivating . +diff --git a/qtbase/src/plugins/platforms/windows/qwindowswindow.h b/qtbase/src/plugins/platforms/windows/qwindowswindow.h +index 71debf2..4fa2e5d 100644 +--- a/qtbase/src/plugins/platforms/windows/qwindowswindow.h ++++ b/qtbase/src/plugins/platforms/windows/qwindowswindow.h +@@ -268,6 +268,7 @@ private: + inline void setWindowState_sys(Qt::WindowState newState); + inline void setParent_sys(const QPlatformWindow *parent); + inline void updateTransientParent() const; ++ inline void clearTransientParent() const; + void destroyWindow(); + inline bool isDropSiteEnabled() const { return m_dropTarget != 0; } + void setDropSiteEnabled(bool enabled); +diff --git a/qtbase/src/widgets/dialogs/qfiledialog.cpp b/qtbase/src/widgets/dialogs/qfiledialog.cpp +index 6065ad0..03fad7a 100644 +--- a/qtbase/src/widgets/dialogs/qfiledialog.cpp ++++ b/qtbase/src/widgets/dialogs/qfiledialog.cpp +@@ -1219,6 +1219,14 @@ QList QFileDialogPrivate::userSelectedFiles() const + return files; + } + ++QByteArray QFileDialogPrivate::userSelectedRemoteContent() const ++{ ++ if (nativeDialogInUse) ++ return selectedRemoteContent_sys(); ++ ++ return QByteArray(); ++} ++ + QStringList QFileDialogPrivate::addDefaultSuffixToFiles(const QStringList filesToFix) const + { + QStringList files; +@@ -1282,6 +1290,13 @@ QStringList QFileDialog::selectedFiles() const + return files; + } + ++QByteArray QFileDialog::selectedRemoteContent() const ++{ ++ Q_D(const QFileDialog); ++ ++ return d->userSelectedRemoteContent(); ++} ++ + /*! + Returns a list of urls containing the selected files in the dialog. + If no files are selected, or the mode is not ExistingFiles or +diff --git a/qtbase/src/widgets/dialogs/qfiledialog.h b/qtbase/src/widgets/dialogs/qfiledialog.h +index 70e498a..b13e8b2 100644 +--- a/qtbase/src/widgets/dialogs/qfiledialog.h ++++ b/qtbase/src/widgets/dialogs/qfiledialog.h +@@ -103,6 +103,7 @@ public: + + void selectFile(const QString &filename); + QStringList selectedFiles() const; ++ QByteArray selectedRemoteContent() const; + + void selectUrl(const QUrl &url); + QList selectedUrls() const; +diff --git a/qtbase/src/widgets/dialogs/qfiledialog_p.h b/qtbase/src/widgets/dialogs/qfiledialog_p.h +index cc2f481..cf70355 100644 +--- a/qtbase/src/widgets/dialogs/qfiledialog_p.h ++++ b/qtbase/src/widgets/dialogs/qfiledialog_p.h +@@ -123,6 +123,7 @@ public: + static QString initialSelection(const QUrl &path); + QStringList typedFiles() const; + QList userSelectedFiles() const; ++ QByteArray userSelectedRemoteContent() const; + QStringList addDefaultSuffixToFiles(const QStringList filesToFix) const; + QList addDefaultSuffixToUrls(const QList &urlsToFix) const; + bool removeDirectory(const QString &path); +@@ -250,6 +251,7 @@ public: + QUrl directory_sys() const; + void selectFile_sys(const QUrl &filename); + QList selectedFiles_sys() const; ++ QByteArray selectedRemoteContent_sys() const; + void setFilter_sys(); + void selectNameFilter_sys(const QString &filter); + QString selectedNameFilter_sys() const; +@@ -387,6 +389,13 @@ inline QList QFileDialogPrivate::selectedFiles_sys() const + return QList(); + } + ++inline QByteArray QFileDialogPrivate::selectedRemoteContent_sys() const ++{ ++ if (QPlatformFileDialogHelper *helper = platformFileDialogHelper()) ++ return helper->selectedRemoteContent(); ++ return QByteArray(); ++} ++ + inline void QFileDialogPrivate::setFilter_sys() + { + if (QPlatformFileDialogHelper *helper = platformFileDialogHelper()) +diff --git a/qtbase/src/widgets/kernel/qwidget.cpp b/qtbase/src/widgets/kernel/qwidget.cpp +index 315d615..e99b1c3 100644 +--- a/qtbase/src/widgets/kernel/qwidget.cpp ++++ b/qtbase/src/widgets/kernel/qwidget.cpp +@@ -8674,7 +8674,7 @@ bool QWidget::event(QEvent *event) + case QEvent::KeyPress: { + QKeyEvent *k = (QKeyEvent *)event; + bool res = false; +- if (!(k->modifiers() & (Qt::ControlModifier | Qt::AltModifier))) { //### Add MetaModifier? ++ if (!(k->modifiers() & (Qt::ControlModifier | Qt::AltModifier | Qt::MetaModifier))) { //### Add MetaModifier? + if (k->key() == Qt::Key_Backtab + || (k->key() == Qt::Key_Tab && (k->modifiers() & Qt::ShiftModifier))) + res = focusNextPrevChild(false); +diff --git a/qtbase/src/widgets/util/qsystemtrayicon.cpp b/qtbase/src/widgets/util/qsystemtrayicon.cpp +index 7d04cab..53c2856 100644 +--- a/qtbase/src/widgets/util/qsystemtrayicon.cpp ++++ b/qtbase/src/widgets/util/qsystemtrayicon.cpp +@@ -710,7 +710,9 @@ void QSystemTrayIconPrivate::updateMenu_sys_qpa() + menu->setPlatformMenu(platformMenu); + } + qpa_sys->updateMenu(menu->platformMenu()); +- } ++ } else { ++ qpa_sys->updateMenu(0); ++ } + } + + void QSystemTrayIconPrivate::updateToolTip_sys_qpa() +diff --git a/qtbase/src/widgets/widgets/qwidgetlinecontrol.cpp b/qtbase/src/widgets/widgets/qwidgetlinecontrol.cpp +index e6385ba..8e1543e 100644 +--- a/qtbase/src/widgets/widgets/qwidgetlinecontrol.cpp ++++ b/qtbase/src/widgets/widgets/qwidgetlinecontrol.cpp +@@ -1870,7 +1870,7 @@ void QWidgetLineControl::processKeyEvent(QKeyEvent* event) + + if (unknown && !isReadOnly()) { + QString t = event->text(); +- if (!t.isEmpty() && t.at(0).isPrint()) { ++ if (!t.isEmpty() && (t.at(0).isPrint() || t.at(0).unicode() == 0x200C || t.at(0).unicode() == 0x200D)) { + insert(t); + #ifndef QT_NO_COMPLETER + complete(event->key()); +diff --git a/qtbase/src/widgets/widgets/qwidgettextcontrol.cpp b/qtbase/src/widgets/widgets/qwidgettextcontrol.cpp +index dfec6a1..a1be4a1 100644 +--- a/qtbase/src/widgets/widgets/qwidgettextcontrol.cpp ++++ b/qtbase/src/widgets/widgets/qwidgettextcontrol.cpp +@@ -1340,7 +1340,7 @@ void QWidgetTextControlPrivate::keyPressEvent(QKeyEvent *e) + process: + { + QString text = e->text(); +- if (!text.isEmpty() && (text.at(0).isPrint() || text.at(0) == QLatin1Char('\t'))) { ++ if (!text.isEmpty() && (text.at(0).isPrint() || text.at(0) == QLatin1Char('\t') || text.at(0).unicode() == 0x200C || text.at(0).unicode() == 0x200D)) { + if (overwriteMode + // no need to call deleteChar() if we have a selection, insertText + // does it already +diff --git a/qtimageformats/src/3rdparty/libwebp/src/dec/vp8l.c b/qtimageformats/src/3rdparty/libwebp/src/dec/vp8l.c +index ea0254d..93d9dc4 100644 +--- a/qtimageformats/src/3rdparty/libwebp/src/dec/vp8l.c ++++ b/qtimageformats/src/3rdparty/libwebp/src/dec/vp8l.c +@@ -12,7 +12,6 @@ + // Authors: Vikas Arora (vikaas.arora@gmail.com) + // Jyrki Alakuijala (jyrki@google.com) + +-#include + #include + #include "./alphai.h" + #include "./vp8li.h" +@@ -740,6 +739,7 @@ static int DecodeAlphaData(VP8LDecoder* const dec, uint8_t* const data, + const int len_code_limit = NUM_LITERAL_CODES + NUM_LENGTH_CODES; + const int mask = hdr->huffman_mask_; + assert(htree_group != NULL); ++ assert(pos < end); + assert(last_row <= height); + assert(Is8bOptimizable(hdr)); + +@@ -830,6 +830,7 @@ static int DecodeImageData(VP8LDecoder* const dec, uint32_t* const data, + (hdr->color_cache_size_ > 0) ? &hdr->color_cache_ : NULL; + const int mask = hdr->huffman_mask_; + assert(htree_group != NULL); ++ assert(src < src_end); + assert(src_last <= src_end); + + while (!br->eos_ && src < src_last) { +@@ -1294,6 +1295,10 @@ int VP8LDecodeAlphaImageStream(ALPHDecoder* const alph_dec, int last_row) { + assert(dec->action_ == READ_DATA); + assert(last_row <= dec->height_); + ++ if (dec->last_pixel_ == dec->width_ * dec->height_) { ++ return 1; // Done ++ } ++ + // Decode (with special row processing). + return alph_dec->use_8b_decode ? + DecodeAlphaData(dec, (uint8_t*)dec->pixels_, dec->width_, dec->height_, diff --git a/Telegram/_qt_5_3_1_patch/qtbase/mkspecs/win32-msvc2013/qmake.conf b/Telegram/_qt_5_4_0_patch/qtbase/mkspecs/win32-msvc2013/qmake.conf similarity index 96% rename from Telegram/_qt_5_3_1_patch/qtbase/mkspecs/win32-msvc2013/qmake.conf rename to Telegram/_qt_5_4_0_patch/qtbase/mkspecs/win32-msvc2013/qmake.conf index 15e77bc43..6d0e9b9a5 100644 --- a/Telegram/_qt_5_3_1_patch/qtbase/mkspecs/win32-msvc2013/qmake.conf +++ b/Telegram/_qt_5_4_0_patch/qtbase/mkspecs/win32-msvc2013/qmake.conf @@ -25,8 +25,8 @@ QMAKE_YACCFLAGS = -d QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t -FS QMAKE_CFLAGS_WARN_ON = -W3 QMAKE_CFLAGS_WARN_OFF = -W0 -QMAKE_CFLAGS_RELEASE = -O2 -MT -QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi +QMAKE_CFLAGS_RELEASE = -O2 -MT -Zc:strictStrings +QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi -Zc:strictStrings QMAKE_CFLAGS_DEBUG = -Zi -MTd QMAKE_CFLAGS_YACC = QMAKE_CFLAGS_LTCG = -GL diff --git a/Telegram/_qt_5_3_1_patch/qtbase/qmake/generators/mac/pbuilder_pbx.cpp b/Telegram/_qt_5_4_0_patch/qtbase/qmake/generators/mac/pbuilder_pbx.cpp similarity index 94% rename from Telegram/_qt_5_3_1_patch/qtbase/qmake/generators/mac/pbuilder_pbx.cpp rename to Telegram/_qt_5_4_0_patch/qtbase/qmake/generators/mac/pbuilder_pbx.cpp index 6613018fc..9ed555ca6 100644 --- a/Telegram/_qt_5_3_1_patch/qtbase/qmake/generators/mac/pbuilder_pbx.cpp +++ b/Telegram/_qt_5_4_0_patch/qtbase/qmake/generators/mac/pbuilder_pbx.cpp @@ -5,36 +5,28 @@ ** ** This file is part of the qmake application of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:LGPL21$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information ** use the contact form at http://qt.digia.com/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception +** rights. These rights are described in the Digia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** ** $QT_END_LICENSE$ ** ****************************************************************************/ @@ -418,7 +410,7 @@ class ProjectBuilderSources bool buildable, object_output; QString key, group, compiler; public: - ProjectBuilderSources(const QString &key, bool buildable=false, const QString &group=QString(), const QString &compiler=QString(), bool producesObject=false); + ProjectBuilderSources(const QString &key, bool buildable = false, const QString &compiler = QString(), bool producesObject = false); QStringList files(QMakeProject *project) const; inline bool isBuildable() const { return buildable; } inline QString keyName() const { return key; } @@ -442,8 +434,8 @@ public: } }; -ProjectBuilderSources::ProjectBuilderSources(const QString &k, bool b, - const QString &g, const QString &c, bool o) : buildable(b), object_output(o), key(k), group(g), compiler(c) +ProjectBuilderSources::ProjectBuilderSources(const QString &k, bool b, const QString &c, bool o) : + buildable(b), object_output(o), key(k), compiler(c) { // Override group name for a few common keys if (k == "SOURCES" || k == "OBJECTIVE_SOURCES" || k == "HEADERS") @@ -463,10 +455,16 @@ ProjectBuilderSources::files(QMakeProject *project) const { QStringList ret = project->values(ProKey(key)).toQStringList(); if(key == "QMAKE_INTERNAL_INCLUDED_FILES") { + QString qtPrefix(QLibraryInfo::rawLocation(QLibraryInfo::PrefixPath, QLibraryInfo::EffectivePaths) + '/'); + QString qtSrcPrefix(QLibraryInfo::rawLocation(QLibraryInfo::PrefixPath, QLibraryInfo::EffectiveSourcePaths) + '/'); + QStringList newret; for(int i = 0; i < ret.size(); ++i) { - if(!ret.at(i).endsWith(Option::prf_ext)) - newret.append(ret.at(i)); + // Don't show files "internal" to Qt in Xcode + if (ret.at(i).startsWith(qtPrefix) || ret.at(i).startsWith(qtSrcPrefix)) + continue; + + newret.append(ret.at(i)); } ret = newret; } @@ -567,6 +565,9 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) // doesn't have access to any of the information it needs to resolve relative paths. project->values("QMAKE_INTERNAL_INCLUDED_FILES").prepend(fileFixify(project->projectFile(), qmake_getpwd(), input_dir)); + // Since we can't fileFixify inside ProjectBuilderSources::files(), we resolve the absolute paths here + project->values("QMAKE_INTERNAL_INCLUDED_FILES") = ProStringList(fileFixify(project->values("QMAKE_INTERNAL_INCLUDED_FILES").toQStringList(), FileFixifyAbsolute)); + //DUMP SOURCES QMap groups; QList sources; @@ -606,7 +607,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) } } sources.append(ProjectBuilderSources(inputs.at(input).toQString(), true, - QString(), (*it).toQString(), isObj)); + (*it).toQString(), isObj)); if (isObj) { inputs.removeAt(input); @@ -634,18 +635,22 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) continue; bool in_root = true; - QString src_key = keyFor(file), name = file; - if(project->isActiveConfig("flat")) { - QString flat_file = fileFixify(file, qmake_getpwd(), Option::output_dir, FileFixifyRelative); - if(flat_file.indexOf(Option::dir_sep) != -1) { - QStringList dirs = flat_file.split(Option::dir_sep); - name = dirs.back(); - } - } else { - QString flat_file = fileFixify(file, qmake_getpwd(), Option::output_dir, FileFixifyRelative); - if(QDir::isRelativePath(flat_file) && flat_file.indexOf(Option::dir_sep) != -1) { + QString src_key = keyFor(file); + + file = fileFixify(file, qmake_getpwd(), Option::output_dir, FileFixifyAbsolute); + QString name = file.split(Option::dir_sep).back(); + + if (!project->isActiveConfig("flat")) { + // Build group hierarchy for file references that match the source our build dir + QString relativePath = fileFixify(file, input_dir, qmake_getpwd(), FileFixifyRelative); + if (QDir::isRelativePath(relativePath) && relativePath.startsWith(QLatin1String("../"))) + relativePath = fileFixify(file, FileFixifyRelative); // Try build dir + + if (QDir::isRelativePath(relativePath) + && !relativePath.startsWith(QLatin1String("../")) + && relativePath.indexOf(Option::dir_sep) != -1) { QString last_grp("QMAKE_PBX_" + sources.at(source).groupName() + "_HEIR_GROUP"); - QStringList dirs = flat_file.split(Option::dir_sep); + QStringList dirs = relativePath.split(Option::dir_sep); name = dirs.back(); dirs.pop_back(); //remove the file portion as it will be added via src_key for(QStringList::Iterator dir_it = dirs.begin(); dir_it != dirs.end(); ++dir_it) { @@ -676,12 +681,12 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) << "\t\t\t" << writeSettings("path", escapeFilePath(file)) << ";\n"; if (name != file) t << "\t\t\t" << writeSettings("name", escapeFilePath(name)) << ";\n"; - t << "\t\t\t" << writeSettings("sourceTree", sourceTreeForFile(file)) << ";\n"; + t << "\t\t\t" << writeSettings("sourceTree", "") << ";\n"; QString filetype = xcodeFiletypeForFilename(file); if (!filetype.isNull()) t << "\t\t\t" << writeSettings("lastKnownFileType", filetype) << ";\n"; t << "\t\t};\n"; - if (sources.at(source).isBuildable() && sources.at(source).isObjectOutput(file)) { //build reference + if (sources.at(source).isBuildable()) { //build reference QString build_key = keyFor(file + ".BUILDABLE"); t << "\t\t" << build_key << " = {\n" << "\t\t\t" << writeSettings("fileRef", src_key) << ";\n" @@ -690,7 +695,8 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) << "\t\t\t\t" << writeSettings("ATTRIBUTES", ProStringList(), SettingsAsList, 5) << ";\n" << "\t\t\t};\n" << "\t\t};\n"; - project->values("QMAKE_PBX_OBJ").append(build_key); + if (sources.at(source).isObjectOutput(file)) + project->values("QMAKE_PBX_OBJ").append(build_key); } } if(!src_list.isEmpty()) { @@ -960,7 +966,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) << "\t\t\t" << writeSettings("name", escapeFilePath(name)) << ";\n" << "\t\t\t" << writeSettings("path", escapeFilePath(library)) << ";\n" << "\t\t\t" << writeSettings("refType", QString::number(reftypeForFile(library)), SettingsNoQuote) << ";\n" - << "\t\t\t" << writeSettings("sourceTree", sourceTreeForFile(library)) << ";\n"; + << "\t\t\t" << writeSettings("sourceTree", "") << ";\n"; if (is_frmwrk) t << "\t\t\t" << writeSettings("lastKnownFileType", "wrapper.framework") << ";\n"; t << "\t\t};\n"; @@ -1023,15 +1029,30 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) if (!project->isEmpty("QMAKE_PRE_LINK")) { QString phase_key = keyFor("QMAKE_PBX_PRELINK_BUILDPHASE"); project->values("QMAKE_PBX_BUILDPHASES").append(phase_key); + + ProStringList inputPaths; + ProStringList outputPaths; + const ProStringList &archs = project->values("QMAKE_XCODE_ARCHS"); + if (!archs.isEmpty()) { + for (int i = 0; i < archs.size(); ++i) { + const ProString &arch = archs.at(i); + inputPaths << "$(OBJECT_FILE_DIR_$(CURRENT_VARIANT))/" + arch + "/"; + outputPaths << "$(LINK_FILE_LIST_$(CURRENT_VARIANT)_" + arch + ")"; + } + } else { + inputPaths << "$(OBJECT_FILE_DIR_$(CURRENT_VARIANT))/$(CURRENT_ARCH)/"; + outputPaths << "$(LINK_FILE_LIST_$(CURRENT_VARIANT)_$(CURRENT_ARCH))"; + } + t << "\t\t" << phase_key << " = {\n" << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";\n" << "\t\t\t" << writeSettings("files", ProStringList(), SettingsAsList, 4) << ";\n" // The build phases are not executed in the order they are defined, but by their // resolved dependenices, so we have to ensure that this phase is run after the - // compilation phase, and before the link phase. Making the phase depend on all the - // object files, and "write" to the list of files to link achieves that. - << "\t\t\t" << writeSettings("inputPaths", ProStringList("$(OBJECT_FILE_DIR_$(CURRENT_VARIANT))/$(CURRENT_ARCH)/*" + Option::obj_ext), SettingsAsList, 4) << ";\n" - << "\t\t\t" << writeSettings("outputPaths", ProStringList("$(LINK_FILE_LIST_$(CURRENT_VARIANT)_$(CURRENT_ARCH))"), SettingsAsList, 4) << ";\n" + // compilation phase, and before the link phase. Making the phase depend on the + // object file directory, and "write" to the list of files to link achieves that. + << "\t\t\t" << writeSettings("inputPaths", inputPaths, SettingsAsList, 4) << ";\n" + << "\t\t\t" << writeSettings("outputPaths", outputPaths, SettingsAsList, 4) << ";\n" << "\t\t\t" << writeSettings("isa", "PBXShellScriptBuildPhase", SettingsNoQuote) << ";\n" << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";\n" << "\t\t\t" << writeSettings("name", "Qt Prelink") << ";\n" @@ -1101,12 +1122,12 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) << "\t\t\t" << writeSettings("shellScript", fixForOutput("cp -r $BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME " + escapeFilePath(destDir))) << ";\n" << "\t\t};\n"; } - // Copy Bundle Resources + bool copyBundleResources = project->isActiveConfig("app_bundle") && project->first("TEMPLATE") == "app"; + ProStringList bundle_resources_files; + // Copy Bundle Data if (!project->isEmpty("QMAKE_BUNDLE_DATA")) { ProStringList bundle_file_refs; - ProStringList bundle_resources_files; - - bool useCopyResourcesPhase = project->isActiveConfig("app_bundle") && project->first("TEMPLATE") == "app"; + bool ios = project->isActiveConfig("ios"); //all bundle data const ProStringList &bundle_data = project->values("QMAKE_BUNDLE_DATA"); @@ -1116,13 +1137,15 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) //all files const ProStringList &files = project->values(ProKey(bundle_data[i] + ".files")); for(int file = 0; file < files.count(); file++) { - QString fn = fileFixify(files[file].toQString(), Option::output_dir, input_dir); + QString fn = fileFixify(files[file].toQString(), Option::output_dir, input_dir, FileFixifyAbsolute); + QString name = fn.split(Option::dir_sep).back(); QString file_ref_key = keyFor("QMAKE_PBX_BUNDLE_DATA_FILE_REF." + bundle_data[i] + "-" + fn); bundle_file_refs += file_ref_key; t << "\t\t" << file_ref_key << " = {\n" << "\t\t\t" << writeSettings("isa", "PBXFileReference", SettingsNoQuote) << ";\n" << "\t\t\t" << writeSettings("path", escapeFilePath(fn)) << ";\n" - << "\t\t\t" << writeSettings("sourceTree", sourceTreeForFile(fn)) << ";\n" + << "\t\t\t" << writeSettings("name", name) << ";\n" + << "\t\t\t" << writeSettings("sourceTree", "") << ";\n" << "\t\t};\n"; QString file_key = keyFor("QMAKE_PBX_BUNDLE_DATA_FILE." + bundle_data[i] + "-" + fn); bundle_files += file_key; @@ -1132,9 +1155,11 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) << "\t\t};\n"; } - if (!useCopyResourcesPhase || !path.isEmpty()) { - // The resource copy phase doesn't support paths, so we have to use - // a regular file copy phase (which doesn't optimize the resources). + if (copyBundleResources && ((ios && path.isEmpty()) + || (!ios && path == QLatin1String("Contents/Resources")))) { + foreach (const ProString &s, bundle_files) + bundle_resources_files << s; + } else { QString phase_key = keyFor("QMAKE_PBX_BUNDLE_COPY." + bundle_data[i]); if (!project->isEmpty(ProKey(bundle_data[i] + ".version"))) { //### @@ -1146,45 +1171,46 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";\n" << "\t\t\t" << writeSettings("dstPath", escapeFilePath(path)) << ";\n" << "\t\t\t" << writeSettings("dstSubfolderSpec", "1", SettingsNoQuote) << ";\n" - << "\t\t\t" << writeSettings("files", bundle_files, SettingsAsList, 4) << ";\n" << "\t\t\t" << writeSettings("isa", "PBXCopyFilesBuildPhase", SettingsNoQuote) << ";\n" + << "\t\t\t" << writeSettings("files", bundle_files, SettingsAsList, 4) << ";\n" << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";\n" << "\t\t};\n"; - } else { - // Otherwise we leave it to the resource copy phase below - bundle_resources_files += bundle_files; } } - if (useCopyResourcesPhase) { - if (!project->isEmpty("ICON")) { - ProString icon = project->first("ICON"); - if (icon.length() >= 2 && (icon.at(0) == '"' || icon.at(0) == '\'') && icon.endsWith(icon.at(0))) - icon = icon.mid(1, icon.length() - 2); - bundle_resources_files += keyFor(icon + ".BUILDABLE"); - } - - QString grp("Copy Bundle Resources"), key = keyFor(grp); - project->values("QMAKE_PBX_BUILDPHASES").append(key); - t << "\t\t" << key << " = {\n" - << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";\n" - << "\t\t\t" << writeSettings("files", bundle_resources_files, SettingsAsList, 4) << ";\n" - << "\t\t\t" << writeSettings("isa", "PBXResourcesBuildPhase", SettingsNoQuote) << ";\n" - << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";\n" - << "\t\t\t" << writeSettings("name", escapeFilePath(grp)) << ";\n" - << "\t\t};\n"; - } - QString bundle_data_key = keyFor("QMAKE_PBX_BUNDLE_DATA"); project->values("QMAKE_PBX_GROUPS").append(bundle_data_key); t << "\t\t" << bundle_data_key << " = {\n" << "\t\t\t" << writeSettings("children", bundle_file_refs, SettingsAsList, 4) << ";\n" << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";\n" - << "\t\t\t" << writeSettings("name", "Bundle Resources") << ";\n" + << "\t\t\t" << writeSettings("name", "Bundle Data") << ";\n" << "\t\t\t" << writeSettings("sourceTree", "") << ";\n" << "\t\t};\n"; } + // Copy bundle resources. Optimizes resources, and puts them into the Resources + // subdirectory on OSX, but doesn't support paths. + if (copyBundleResources) { + if (!project->isEmpty("ICON")) { + ProString icon = project->first("ICON"); + if (icon.length() >= 2 && (icon.at(0) == '"' || icon.at(0) == '\'') && icon.endsWith(icon.at(0))) + icon = icon.mid(1, icon.length() - 2); + bundle_resources_files += keyFor(icon + ".BUILDABLE"); + } + + // Always add "Copy Bundle Resources" phase, even when we have no bundle + // resources, since Xcode depends on it being there for e.g asset catalogs. + QString grp("Copy Bundle Resources"), key = keyFor(grp); + project->values("QMAKE_PBX_BUILDPHASES").append(key); + t << "\t\t" << key << " = {\n" + << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";\n" + << "\t\t\t" << writeSettings("files", bundle_resources_files, SettingsAsList, 4) << ";\n" + << "\t\t\t" << writeSettings("isa", "PBXResourcesBuildPhase", SettingsNoQuote) << ";\n" + << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";\n" + << "\t\t\t" << writeSettings("name", escapeFilePath(grp)) << ";\n" + << "\t\t};\n"; + } + //REFERENCE project->values("QMAKE_PBX_PRODUCTS").append(keyFor(pbx_dir + "QMAKE_PBX_REFERENCE")); t << "\t\t" << keyFor(pbx_dir + "QMAKE_PBX_REFERENCE") << " = {\n" @@ -1419,7 +1445,6 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) plist_in_text = plist_in_text.replace("@TYPEINFO@", (project->isEmpty("QMAKE_PKGINFO_TYPEINFO") ? QString::fromLatin1("????") : project->first("QMAKE_PKGINFO_TYPEINFO").left(4).toQString())); -// QFile plist_out_file("Info.plist"); QString plist_dir; if (!project->isEmpty("PLIST_DIR")) plist_dir = project->first("PLIST_DIR").toQString(); @@ -1428,9 +1453,8 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) if (plist_out_file.open(QIODevice::WriteOnly | QIODevice::Text)) { QTextStream plist_out(&plist_out_file); plist_out << plist_in_text; -// t << "\t\t\t\t" << writeSettings("INFOPLIST_FILE", "Info.plist") << ";\n"; t << "\t\t\t\t" << writeSettings("INFOPLIST_FILE", fixForOutput(plist_dir + plist_in_filename)) << ";\n"; - } + } } } } @@ -1803,14 +1827,6 @@ ProjectBuilderMakefileGenerator::reftypeForFile(const QString &where) return ret; } -QString ProjectBuilderMakefileGenerator::sourceTreeForFile(const QString &where) -{ - Q_UNUSED(where) - // We always use absolute paths, instead of maintaining the SRCROOT - // build variable and making files relative to that. - return QLatin1String(""); -} - QString ProjectBuilderMakefileGenerator::projectSuffix() const { diff --git a/Telegram/_qt_5_3_1_patch/qtbase/qmake/generators/makefile.cpp b/Telegram/_qt_5_4_0_patch/qtbase/qmake/generators/makefile.cpp similarity index 97% rename from Telegram/_qt_5_3_1_patch/qtbase/qmake/generators/makefile.cpp rename to Telegram/_qt_5_4_0_patch/qtbase/qmake/generators/makefile.cpp index 4242f93f7..0216f5cfa 100644 --- a/Telegram/_qt_5_3_1_patch/qtbase/qmake/generators/makefile.cpp +++ b/Telegram/_qt_5_4_0_patch/qtbase/qmake/generators/makefile.cpp @@ -1,40 +1,32 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the qmake application of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:LGPL21$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information ** use the contact form at http://qt.digia.com/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception +** rights. These rights are described in the Digia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** ** $QT_END_LICENSE$ ** ****************************************************************************/ @@ -70,11 +62,6 @@ QT_BEGIN_NAMESPACE -// Well, Windows doesn't have this, so here's the macro -#ifndef S_ISDIR -# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) -#endif - bool MakefileGenerator::canExecute(const QStringList &cmdline, int *a) const { int argv0 = -1; @@ -219,7 +206,7 @@ MakefileGenerator::initOutPaths() v["PRECOMPILED_DIR"] = v["OBJECTS_DIR"]; static const char * const dirs[] = { "OBJECTS_DIR", "DESTDIR", "SUBLIBS_DIR", "DLLDESTDIR", - "PRECOMPILED_DIR", "PLIST_DIR", 0 }; + "PRECOMPILED_DIR", "PLIST_DIR", 0 }; for (int x = 0; dirs[x]; x++) { const ProKey dkey(dirs[x]); if (v[dkey].isEmpty()) @@ -1749,23 +1736,7 @@ MakefileGenerator::verifyExtraCompiler(const ProString &comp, const QString &fil QString tmp_out = project->values(ProKey(comp + ".output")).first().toQString(); if(tmp_out.isEmpty()) return false; - QString tmp_cmd; - const ProKey ckey(comp + ".commands"); - if (!project->isEmpty(ckey)) { - int argv0 = -1; - ProStringList cmdline = project->values(ckey); - for(int i = 0; i < cmdline.count(); ++i) { - if(!cmdline.at(i).contains('=')) { - argv0 = i; - break; - } - } - if(argv0 != -1) { - cmdline[argv0] = Option::fixPathToTargetOS(cmdline.at(argv0).toQString(), false); - tmp_cmd = cmdline.join(' '); - } - } - + const QString tmp_cmd = project->values(ProKey(comp + ".commands")).join(' '); if (config.indexOf("combine") != -1) { QString cmd = replaceExtraCompilerVariables(tmp_cmd, QString(), tmp_out); if(system(cmd.toLatin1().constData())) @@ -1829,42 +1800,10 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t) for (ProStringList::ConstIterator it = quc.begin(); it != quc.end(); ++it) { QString tmp_out = fileFixify(project->first(ProKey(*it + ".output")).toQString(), Option::output_dir, Option::output_dir); - QString tmp_cmd; - const ProKey ckey(*it + ".commands"); - if (!project->isEmpty(ckey)) { - QStringList cmdline = project->values(ckey).toQStringList(); - int argv0 = findExecutable(cmdline); - if(argv0 != -1) { - cmdline[argv0] = escapeFilePath(Option::fixPathToTargetOS(cmdline.at(argv0), false)); - tmp_cmd = cmdline.join(' '); - } - } - QString tmp_dep_cmd; + const QString tmp_cmd = project->values(ProKey(*it + ".commands")).join(' '); + const QString tmp_dep_cmd = project->values(ProKey(*it + ".depend_command")).join(' '); QString dep_cd_cmd; - const ProKey dckey(*it + ".depend_command"); - if (!project->isEmpty(dckey)) { - int argv0 = -1; - ProStringList cmdline = project->values(dckey); - for(int i = 0; i < cmdline.count(); ++i) { - if(!cmdline.at(i).contains('=')) { - argv0 = i; - break; - } - } - if(argv0 != -1) { - QString arg = cmdline.at(argv0).toQString(); - const QString c = Option::fixPathToLocalOS(arg, true); - if(exists(c)) { - arg = escapeFilePath(Option::fixPathToLocalOS(arg, false)); - } else { - arg = escapeFilePath(arg); - } - QFileInfo cmdFileInfo(arg); - if (!cmdFileInfo.isAbsolute() || cmdFileInfo.exists()) { - cmdline[argv0] = arg; - tmp_dep_cmd = cmdline.join(' '); - } - } + if (!tmp_dep_cmd.isEmpty()) { dep_cd_cmd = QLatin1String("cd ") + escapeFilePath(Option::fixPathToLocalOS(Option::output_dir, false)) + QLatin1String(" && "); @@ -2254,6 +2193,25 @@ MakefileGenerator::writeMakefile(QTextStream &t) return true; } +void +MakefileGenerator::writeDefaultVariables(QTextStream &t) +{ + t << "QMAKE = " << var("QMAKE_QMAKE") << endl; + t << "DEL_FILE = " << var("QMAKE_DEL_FILE") << endl; + t << "CHK_DIR_EXISTS= " << var("QMAKE_CHK_DIR_EXISTS") << endl; + t << "MKDIR = " << var("QMAKE_MKDIR") << endl; + t << "COPY = " << var("QMAKE_COPY") << endl; + t << "COPY_FILE = " << var("QMAKE_COPY_FILE") << endl; + t << "COPY_DIR = " << var("QMAKE_COPY_DIR") << endl; + t << "INSTALL_FILE = " << var("QMAKE_INSTALL_FILE") << endl; + t << "INSTALL_PROGRAM = " << var("QMAKE_INSTALL_PROGRAM") << endl; + t << "INSTALL_DIR = " << var("QMAKE_INSTALL_DIR") << endl; + t << "DEL_FILE = " << var("QMAKE_DEL_FILE") << endl; + t << "SYMLINK = " << var("QMAKE_SYMBOLIC_LINK") << endl; + t << "DEL_DIR = " << var("QMAKE_DEL_DIR") << endl; + t << "MOVE = " << var("QMAKE_MOVE") << endl; +} + QString MakefileGenerator::fixifySpecdir(const QString &spec, const QString &outdir) { if (QFileInfo(spec).isAbsolute()) @@ -2464,20 +2422,7 @@ MakefileGenerator::writeSubTargets(QTextStream &t, QListtarget; diff --git a/Telegram/_qt_5_3_1_patch/qtbase/src/3rdparty/pcre/pcre16_valid_utf16.c b/Telegram/_qt_5_4_0_patch/qtbase/src/3rdparty/pcre/pcre16_valid_utf16.c similarity index 100% rename from Telegram/_qt_5_3_1_patch/qtbase/src/3rdparty/pcre/pcre16_valid_utf16.c rename to Telegram/_qt_5_4_0_patch/qtbase/src/3rdparty/pcre/pcre16_valid_utf16.c diff --git a/Telegram/_qt_5_4_0_patch/qtbase/src/corelib/tools/qunicodetables.cpp b/Telegram/_qt_5_4_0_patch/qtbase/src/corelib/tools/qunicodetables.cpp new file mode 100644 index 000000000..2bf3bfdab --- /dev/null +++ b/Telegram/_qt_5_4_0_patch/qtbase/src/corelib/tools/qunicodetables.cpp @@ -0,0 +1,11084 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL21$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/* This file is autogenerated from the Unicode 6.2 database. Do not edit */ + +#include "qunicodetables_p.h" + +QT_BEGIN_NAMESPACE + +namespace QUnicodeTables { + +static const unsigned short uc_property_trie[] = { + // 0 - 0x11000 + + 6256, 6288, 6320, 6352, 6384, 6416, 6448, 6480, + 6512, 6544, 6576, 6608, 6640, 6672, 6704, 6736, + 6768, 6800, 6832, 6864, 6896, 6928, 6960, 6992, + 7024, 7056, 7088, 7120, 7152, 7184, 7216, 7248, + 7280, 7312, 7344, 7376, 7408, 7440, 7472, 7504, + 7536, 7568, 7600, 7632, 7664, 7696, 7728, 7760, + 7792, 7824, 7856, 7888, 7920, 7952, 7984, 8016, + 8048, 8080, 8112, 8144, 8176, 8208, 8240, 8272, + 8304, 8336, 8368, 8400, 8400, 8432, 8464, 8496, + 8528, 8560, 8592, 8624, 8656, 8688, 8720, 8752, + 8784, 8816, 8848, 8880, 8912, 8944, 8976, 9008, + 9040, 9072, 9104, 9136, 9168, 9200, 9232, 9264, + 9296, 9328, 9360, 9392, 9424, 9456, 9488, 9520, + 9552, 9584, 9616, 9648, 9680, 9712, 9744, 9776, + 9808, 9840, 9872, 9904, 9936, 9968, 10000, 9904, + 10032, 10064, 10096, 10128, 10160, 10192, 10224, 9904, + + 10256, 10288, 10320, 10352, 10384, 10416, 10448, 10480, + 10512, 10512, 10544, 10576, 10608, 10640, 10672, 10704, + 10736, 10768, 10800, 10768, 10832, 10864, 10896, 10928, + 10960, 10768, 10992, 11024, 11056, 11088, 11088, 11120, + 11152, 11184, 11184, 11184, 11184, 11184, 11184, 11184, + 11184, 11184, 11184, 11184, 11184, 11184, 11184, 11184, + 11184, 11184, 11184, 11216, 11248, 11280, 11280, 11312, + 11344, 11376, 11408, 11440, 11472, 11504, 11536, 11568, + 11600, 11632, 11664, 11696, 11728, 11760, 11792, 11824, + 11856, 11888, 11920, 11952, 11984, 12016, 12048, 12080, + 12112, 12144, 12176, 12208, 12240, 12272, 9904, 9904, + 12304, 12336, 12368, 12400, 12432, 12464, 12496, 12528, + 12560, 12592, 12624, 12656, 9904, 9904, 12688, 12720, + 12752, 12784, 12816, 12848, 12880, 12912, 12944, 12976, + 13008, 13008, 13008, 13008, 13040, 13008, 13008, 13072, + 13104, 13136, 13168, 13200, 13232, 13264, 13296, 13328, + + 13360, 13392, 13424, 13456, 13488, 13520, 13552, 13584, + 13616, 13648, 13680, 13712, 13744, 13776, 13808, 13840, + 13872, 13904, 13936, 13968, 14000, 14032, 14064, 14096, + 14128, 14160, 14192, 14224, 14256, 14288, 14320, 14352, + 14384, 14416, 14448, 14480, 14512, 14544, 14576, 14608, + 14384, 14384, 14384, 14384, 14640, 14672, 14704, 14736, + 14768, 14800, 14384, 14832, 14864, 14896, 14928, 14960, + 14992, 15024, 15056, 15088, 15120, 15152, 15184, 15216, + 15248, 15248, 15248, 15248, 15248, 15248, 15248, 15248, + 15280, 15280, 15280, 15280, 15312, 15344, 15376, 15408, + 15440, 15472, 15280, 15504, 15536, 15568, 15600, 15632, + 15664, 15696, 15728, 9904, 9904, 9904, 9904, 9904, + 15760, 15792, 15824, 15856, 15888, 15888, 15888, 15920, + 15952, 15984, 16016, 16048, 16080, 16112, 16112, 16144, + 16176, 16208, 9904, 9904, 16240, 16272, 16272, 16304, + 16336, 16336, 16336, 16336, 16336, 16336, 16368, 16400, + + 16432, 16464, 16496, 16528, 16560, 16592, 16624, 16656, + 16688, 16720, 16752, 16752, 16784, 16816, 16848, 16880, + 16912, 16944, 16976, 17008, 16944, 17040, 17072, 17104, + 17136, 17136, 17168, 17200, 17232, 17232, 17264, 17296, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328, + 17328, 17328, 17328, 17328, 17328, 17360, 17392, 17392, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424, + 17424, 17424, 17424, 17424, 17424, 17456, 17488, 17520, + + 17552, 17584, 17584, 17584, 17584, 17584, 17584, 17584, + 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584, + 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584, + 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584, + 17584, 17584, 17584, 17584, 17616, 17648, 17680, 17712, + 17744, 17744, 17744, 17744, 17744, 17744, 17744, 17744, + 17776, 17808, 17840, 17872, 17904, 17936, 17936, 17968, + 18000, 18032, 18064, 18096, 18128, 18160, 9904, 18192, + 18224, 18256, 18288, 18320, 18352, 18384, 18416, 18448, + 18480, 18512, 18544, 18576, 18608, 18640, 18672, 9904, + 18704, 18736, 18768, 18800, 18832, 18864, 18896, 18928, + 18960, 18992, 9904, 9904, 9904, 9904, 19024, 19056, + 19088, 19120, 19152, 19184, 19216, 19248, 19280, 19088, + 19120, 19152, 19184, 19216, 19248, 19280, 19088, 19120, + 19152, 19184, 19216, 19248, 19280, 19088, 19120, 19152, + 19184, 19216, 19248, 19280, 19088, 19120, 19152, 19184, + + 19216, 19248, 19280, 19088, 19120, 19152, 19184, 19216, + 19248, 19280, 19088, 19120, 19152, 19184, 19216, 19248, + 19280, 19088, 19120, 19152, 19184, 19216, 19248, 19280, + 19088, 19120, 19152, 19184, 19216, 19248, 19280, 19088, + 19120, 19152, 19184, 19216, 19248, 19280, 19088, 19120, + 19152, 19184, 19216, 19248, 19280, 19088, 19120, 19152, + 19184, 19216, 19248, 19280, 19088, 19120, 19152, 19184, + 19216, 19248, 19280, 19088, 19120, 19152, 19184, 19216, + 19248, 19280, 19088, 19120, 19152, 19184, 19216, 19248, + 19280, 19088, 19120, 19152, 19184, 19216, 19248, 19280, + 19088, 19120, 19152, 19184, 19216, 19248, 19280, 19088, + 19120, 19152, 19184, 19216, 19248, 19280, 19088, 19120, + 19152, 19184, 19216, 19248, 19280, 19088, 19120, 19152, + 19184, 19216, 19248, 19280, 19088, 19120, 19152, 19184, + 19216, 19248, 19280, 19088, 19120, 19152, 19184, 19216, + 19248, 19280, 19088, 19120, 19152, 19184, 19216, 19248, + + 19280, 19088, 19120, 19152, 19184, 19216, 19248, 19280, + 19088, 19120, 19152, 19184, 19216, 19248, 19280, 19088, + 19120, 19152, 19184, 19216, 19248, 19280, 19088, 19120, + 19152, 19184, 19216, 19248, 19280, 19088, 19120, 19152, + 19184, 19216, 19248, 19280, 19088, 19120, 19152, 19184, + 19216, 19248, 19280, 19088, 19120, 19152, 19184, 19216, + 19248, 19280, 19088, 19120, 19152, 19184, 19216, 19248, + 19280, 19088, 19120, 19152, 19184, 19216, 19248, 19280, + 19088, 19120, 19152, 19184, 19216, 19248, 19280, 19088, + 19120, 19152, 19184, 19216, 19248, 19280, 19088, 19120, + 19152, 19184, 19216, 19248, 19280, 19088, 19120, 19152, + 19184, 19216, 19248, 19280, 19088, 19120, 19152, 19184, + 19216, 19248, 19280, 19088, 19120, 19152, 19184, 19216, + 19248, 19280, 19088, 19120, 19152, 19184, 19216, 19248, + 19280, 19088, 19120, 19152, 19184, 19216, 19248, 19280, + 19088, 19120, 19152, 19184, 19216, 19248, 19280, 19088, + + 19120, 19152, 19184, 19216, 19248, 19280, 19088, 19120, + 19152, 19184, 19216, 19248, 19280, 19088, 19120, 19152, + 19184, 19216, 19248, 19280, 19088, 19120, 19152, 19184, + 19216, 19248, 19280, 19088, 19120, 19152, 19184, 19216, + 19248, 19280, 19088, 19120, 19152, 19184, 19216, 19248, + 19280, 19088, 19120, 19152, 19184, 19216, 19248, 19280, + 19088, 19120, 19152, 19184, 19216, 19248, 19280, 19088, + 19120, 19152, 19184, 19216, 19248, 19312, 19344, 19376, + 19408, 19408, 19408, 19408, 19408, 19408, 19408, 19408, + 19408, 19408, 19408, 19408, 19408, 19408, 19408, 19408, + 19408, 19408, 19408, 19408, 19408, 19408, 19408, 19408, + 19408, 19408, 19408, 19408, 19408, 19408, 19408, 19408, + 19408, 19408, 19408, 19408, 19408, 19408, 19408, 19408, + 19408, 19408, 19408, 19408, 19408, 19408, 19408, 19408, + 19408, 19408, 19408, 19408, 19408, 19408, 19408, 19408, + 19408, 19408, 19408, 19408, 19408, 19408, 19408, 19408, + + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440, + 19472, 19472, 19472, 19472, 19472, 19472, 19472, 19472, + 19504, 19536, 19568, 19600, 19632, 19632, 19664, 17520, + 19696, 19728, 19760, 19792, 19792, 19824, 19856, 19792, + 19792, 19792, 19792, 19792, 19792, 19792, 19792, 19792, + 19792, 19888, 19920, 19792, 19952, 19792, 19984, 20016, + 20048, 20080, 20112, 20144, 19792, 19792, 19792, 20176, + 20208, 20240, 20272, 20304, 20336, 20368, 20400, 20432, + + 20464, 20496, 20528, 9904, 20560, 20560, 20560, 20592, + 20624, 20656, 20688, 20720, 20752, 9904, 20784, 20816, + 9904, 9904, 9904, 9904, 20848, 20880, 20912, 9904, + 20944, 20976, 21008, 9904, 21040, 21072, 21104, 9904, + 21136, 21168, 21200, 21232, 21264, 21296, 9904, 9904, + 9904, 9904, 9904, 9904, 9904, 9904, 9904, 9904, + 9904, 9904, 9904, 9904, 9904, 9904, 9904, 9904, + 9904, 9904, 9904, 9904, 9904, 9904, 9904, 9904, + 21328, 21360, 21392, 8400, 8400, 8400, 8400, 8400, + 21424, 21456, 8400, 8400, 21488, 21520, 8400, 8400, + 21552, 21584, 21616, 21648, 8400, 8400, 8400, 8400, + 21680, 21712, 21744, 21776, 8400, 8400, 8400, 8400, + 21808, 21808, 21840, 8400, 8400, 8400, 8400, 8400, + 8400, 8400, 8400, 8400, 8400, 8400, 8400, 8400, + 8400, 8400, 8400, 21872, 8400, 8400, 8400, 8400, + 8400, 8400, 8400, 8400, 8400, 8400, 8400, 8400, + + // 0x11000 - 0x110000 + + 21904, 22160, 22416, 22416, 22416, 22416, 22672, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22928, 22928, 22928, 23184, 23440, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 23696, 23696, 23952, 24208, 24464, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 24720, 24720, 24976, 22416, 22416, 22416, 22416, 25232, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 25488, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 25744, 26000, 26256, 26512, 26768, 27024, 27280, 27536, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 27792, 27792, 27792, 27792, 27792, 27792, 28048, 27792, + 28304, 28560, 28816, 29072, 29328, 29584, 29840, 30096, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608, + 30608, 30608, 30608, 30608, 30608, 30608, 30864, 31120, + 31120, 31120, 31120, 31120, 31120, 31120, 31120, 31120, + 31120, 31120, 31120, 31120, 31120, 31120, 31120, 31376, + 31632, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 32144, 32144, 32400, 31888, 31888, 31888, 31888, 32656, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888, + 31888, 31888, 31888, 31888, 31888, 31888, 31888, 32656, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352, + 32912, 33168, 33424, 33424, 33424, 33424, 33424, 33424, + 33424, 33424, 33424, 33424, 33424, 33424, 33424, 33424, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416, + 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33936, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680, + 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33936, + + + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 6, 6, 7, + + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 14, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 9, + + 14, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 39, 40, 41, 42, 43, + + 42, 44, 44, 44, 44, 44, 44, 44, + 44, 44, 44, 44, 44, 44, 44, 44, + 44, 44, 44, 44, 44, 44, 44, 44, + 44, 44, 44, 39, 45, 46, 36, 0, + + 0, 0, 0, 0, 0, 47, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + + 48, 49, 50, 12, 12, 12, 51, 14, + 52, 51, 53, 54, 36, 55, 51, 52, + 56, 57, 58, 59, 60, 61, 14, 62, + 52, 63, 53, 64, 65, 65, 65, 49, + + 66, 66, 66, 66, 66, 66, 38, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + 38, 66, 66, 66, 66, 66, 66, 36, + 38, 66, 66, 66, 66, 66, 38, 67, + + 68, 68, 68, 68, 68, 68, 44, 68, + 68, 68, 68, 68, 68, 68, 68, 68, + 44, 68, 68, 68, 68, 68, 68, 36, + 44, 68, 68, 68, 68, 68, 44, 69, + + 70, 71, 70, 71, 70, 71, 70, 71, + 70, 71, 70, 71, 70, 71, 70, 71, + 72, 73, 70, 71, 70, 71, 70, 71, + 70, 71, 70, 71, 70, 71, 70, 71, + + 70, 71, 70, 71, 70, 71, 72, 73, + 70, 71, 70, 71, 70, 71, 70, 71, + 74, 75, 76, 77, 70, 71, 70, 71, + 78, 70, 71, 70, 71, 70, 71, 76, + + 77, 72, 73, 70, 71, 70, 71, 70, + 71, 79, 72, 73, 70, 71, 70, 71, + 70, 71, 72, 73, 70, 71, 70, 71, + 70, 71, 70, 71, 70, 71, 70, 71, + + 70, 71, 70, 71, 70, 71, 72, 73, + 70, 71, 70, 71, 70, 71, 70, 71, + 70, 71, 70, 71, 70, 71, 70, 71, + 80, 70, 71, 70, 71, 70, 71, 81, + + 82, 83, 72, 73, 72, 73, 84, 72, + 73, 85, 85, 72, 73, 78, 86, 87, + 88, 72, 73, 85, 89, 90, 91, 92, + 72, 73, 93, 78, 91, 94, 95, 96, + + 70, 71, 72, 73, 72, 73, 97, 72, + 73, 97, 78, 78, 72, 73, 97, 70, + 71, 98, 98, 72, 73, 72, 73, 99, + 72, 73, 78, 100, 72, 73, 78, 101, + + 100, 100, 100, 100, 102, 103, 104, 102, + 103, 104, 102, 103, 104, 70, 71, 70, + 71, 70, 71, 70, 71, 70, 71, 70, + 71, 70, 71, 70, 71, 105, 70, 71, + + 70, 71, 70, 71, 72, 73, 70, 71, + 70, 71, 70, 71, 70, 71, 70, 71, + 106, 102, 103, 104, 70, 71, 107, 108, + 109, 110, 70, 71, 70, 71, 70, 71, + + 70, 71, 70, 71, 70, 71, 70, 71, + 70, 71, 70, 71, 70, 71, 70, 71, + 70, 71, 70, 71, 70, 71, 70, 71, + 109, 110, 109, 110, 111, 112, 109, 110, + + 113, 114, 111, 112, 111, 112, 109, 110, + 109, 110, 109, 110, 109, 110, 109, 110, + 109, 110, 109, 110, 114, 114, 114, 115, + 115, 115, 116, 117, 118, 119, 120, 121, + + 121, 117, 122, 123, 124, 125, 126, 122, + 126, 122, 126, 122, 126, 122, 126, 122, + 127, 128, 129, 130, 131, 78, 132, 132, + 78, 133, 78, 134, 78, 78, 78, 78, + + 132, 78, 78, 135, 78, 136, 137, 78, + 138, 139, 78, 140, 78, 78, 78, 139, + 78, 141, 142, 78, 78, 143, 78, 78, + 78, 78, 78, 78, 78, 144, 78, 78, + + 145, 78, 78, 145, 78, 78, 78, 78, + 145, 146, 147, 147, 148, 78, 78, 78, + 78, 78, 149, 78, 100, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 150, 150, 150, 150, 150, 114, 114, + 151, 151, 151, 151, 151, 151, 151, 151, + 151, 152, 152, 153, 153, 153, 153, 153, + + 154, 154, 42, 42, 42, 42, 152, 152, + 155, 152, 152, 152, 155, 152, 152, 152, + 153, 153, 42, 42, 42, 42, 42, 156, + 52, 52, 52, 52, 52, 52, 42, 157, + + 151, 151, 151, 151, 151, 42, 42, 42, + 42, 42, 158, 158, 159, 160, 161, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + + 163, 163, 163, 163, 163, 164, 163, 163, + 163, 163, 163, 163, 163, 164, 164, 163, + 164, 163, 164, 163, 163, 165, 166, 166, + 166, 166, 165, 167, 166, 166, 166, 166, + + 166, 168, 168, 169, 169, 169, 169, 170, + 170, 166, 166, 166, 166, 169, 169, 166, + 169, 169, 166, 166, 171, 171, 171, 171, + 172, 166, 166, 166, 166, 164, 164, 164, + + 173, 173, 163, 173, 173, 174, 175, 176, + 176, 176, 175, 175, 175, 176, 176, 177, + 178, 178, 178, 179, 179, 179, 179, 178, + 180, 181, 181, 182, 183, 184, 184, 185, + + 186, 186, 187, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, + 189, 190, 189, 190, 191, 192, 189, 190, + 193, 193, 194, 195, 195, 195, 196, 193, + + 193, 193, 193, 193, 197, 198, 199, 200, + 201, 201, 201, 193, 202, 193, 203, 203, + 204, 205, 205, 205, 205, 205, 205, 205, + 205, 205, 205, 205, 205, 205, 205, 205, + + 205, 205, 193, 205, 205, 205, 205, 205, + 205, 205, 206, 206, 207, 208, 208, 208, + 209, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, + + 210, 210, 211, 210, 210, 210, 210, 210, + 210, 210, 212, 212, 213, 214, 214, 215, + 216, 217, 218, 219, 219, 220, 221, 222, + 223, 224, 225, 226, 225, 226, 225, 226, + + 225, 226, 227, 228, 227, 228, 227, 228, + 227, 228, 227, 228, 227, 228, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 236, 237, 239, 240, 240, 240, + + 241, 242, 243, 242, 243, 243, 243, 242, + 243, 243, 243, 243, 242, 241, 242, 243, + 244, 244, 244, 244, 244, 244, 244, 244, + 244, 245, 244, 244, 244, 244, 244, 244, + + 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 244, + 246, 246, 246, 246, 246, 246, 246, 246, + 246, 247, 246, 246, 246, 246, 246, 246, + + 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, + 248, 249, 250, 249, 250, 250, 250, 249, + 250, 250, 250, 250, 249, 248, 249, 250, + + 251, 252, 251, 252, 251, 252, 251, 252, + 251, 252, 251, 252, 251, 252, 251, 252, + 251, 252, 251, 252, 251, 252, 253, 254, + 251, 252, 251, 252, 251, 252, 251, 252, + + 251, 252, 255, 256, 256, 164, 164, 257, + 258, 258, 259, 260, 261, 262, 261, 262, + 251, 252, 251, 252, 251, 252, 251, 252, + 251, 252, 251, 252, 251, 252, 251, 252, + + 251, 252, 251, 252, 251, 252, 251, 252, + 251, 252, 251, 252, 251, 252, 251, 252, + 251, 252, 251, 252, 251, 252, 251, 252, + 251, 252, 251, 252, 251, 252, 251, 252, + + 263, 253, 254, 251, 252, 259, 260, 251, + 252, 259, 260, 251, 252, 259, 260, 264, + 253, 254, 253, 254, 251, 252, 253, 254, + 251, 252, 253, 254, 253, 254, 253, 254, + + 251, 252, 253, 254, 253, 254, 253, 254, + 251, 252, 253, 254, 265, 266, 253, 254, + 253, 254, 253, 254, 253, 254, 267, 268, + 253, 254, 269, 270, 269, 270, 269, 270, + + 259, 260, 259, 260, 259, 260, 259, 260, + 259, 260, 259, 260, 259, 260, 259, 260, + 269, 270, 269, 270, 271, 272, 271, 272, + 271, 272, 271, 272, 271, 272, 271, 272, + + 271, 272, 271, 272, 273, 274, 275, 276, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 193, + 193, 278, 279, 279, 280, 281, 280, 279, + + 193, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + + 282, 282, 282, 282, 282, 282, 282, 283, + 193, 284, 285, 193, 193, 193, 193, 286, + 287, 288, 289, 289, 289, 289, 288, 289, + 289, 289, 290, 288, 289, 289, 289, 289, + + 289, 289, 291, 288, 288, 288, 288, 288, + 289, 289, 288, 289, 289, 290, 292, 289, + 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, + + 309, 310, 311, 309, 289, 291, 312, 313, + 287, 287, 287, 287, 287, 287, 287, 287, + 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, + + 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 287, 287, 287, 287, 287, + 314, 314, 314, 315, 316, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + + 317, 317, 317, 317, 318, 319, 320, 320, + 321, 322, 322, 323, 19, 324, 325, 325, + 326, 326, 326, 326, 326, 326, 327, 327, + 328, 329, 330, 331, 332, 319, 333, 334, + + 335, 336, 337, 337, 337, 337, 338, 339, + 340, 339, 340, 340, 340, 340, 340, 339, + 339, 339, 339, 340, 340, 340, 340, 340, + 340, 340, 340, 341, 341, 341, 341, 341, + + 342, 340, 340, 340, 340, 340, 340, 340, + 339, 340, 340, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 351, 352, 353, 326, + 326, 354, 354, 354, 355, 354, 354, 356, + + 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 371, + 372, 339, 339, 339, 336, 373, 373, 373, + 374, 340, 340, 340, 340, 340, 340, 340, + + 340, 340, 340, 340, 340, 340, 340, 340, + 339, 339, 339, 339, 339, 339, 339, 339, + 339, 339, 339, 339, 339, 339, 339, 339, + 339, 339, 340, 340, 340, 340, 340, 340, + + 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, + 375, 375, 340, 340, 340, 340, 340, 375, + + 337, 340, 338, 339, 339, 339, 339, 339, + 339, 339, 339, 339, 340, 339, 340, 376, + 340, 340, 339, 337, 377, 339, 378, 378, + 378, 378, 378, 378, 378, 379, 380, 378, + + 378, 378, 378, 381, 378, 382, 382, 378, + 378, 380, 381, 378, 378, 381, 383, 383, + 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 375, 375, 375, 394, 394, 395, + + 396, 396, 396, 397, 397, 397, 397, 397, + 397, 397, 397, 397, 397, 397, 319, 398, + 399, 400, 401, 401, 401, 399, 399, 399, + 399, 399, 401, 401, 401, 401, 399, 401, + + 401, 401, 401, 401, 401, 401, 401, 401, + 399, 401, 399, 401, 399, 402, 402, 403, + 404, 405, 404, 404, 405, 404, 404, 405, + 405, 405, 404, 405, 405, 404, 405, 404, + + 404, 404, 405, 404, 405, 404, 405, 404, + 405, 404, 404, 319, 319, 403, 402, 402, + 406, 406, 406, 406, 406, 406, 406, 406, + 406, 407, 407, 407, 406, 406, 406, 406, + + 406, 406, 406, 406, 406, 406, 406, 406, + 406, 406, 406, 407, 407, 406, 341, 341, + 341, 408, 341, 408, 408, 341, 341, 341, + 408, 408, 341, 341, 341, 341, 341, 341, + + 409, 409, 409, 409, 409, 409, 409, 409, + 409, 409, 409, 409, 409, 409, 409, 409, + 409, 409, 409, 409, 409, 409, 409, 409, + 409, 409, 409, 409, 409, 409, 409, 409, + + 409, 409, 409, 409, 409, 409, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, + 410, 411, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, + + 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 422, 422, 422, 422, 422, + 422, 422, 422, 422, 422, 422, 422, 422, + 422, 422, 422, 422, 422, 422, 422, 422, + + 422, 422, 422, 422, 422, 422, 422, 422, + 422, 422, 422, 423, 423, 423, 423, 423, + 423, 423, 424, 423, 425, 425, 426, 427, + 428, 429, 430, 287, 287, 287, 287, 287, + + 431, 431, 431, 431, 431, 431, 431, 431, + 431, 431, 431, 431, 431, 431, 431, 431, + 431, 431, 431, 431, 431, 431, 432, 432, + 432, 432, 433, 432, 432, 432, 432, 432, + + 432, 432, 432, 432, 433, 432, 432, 432, + 433, 432, 432, 432, 432, 432, 287, 287, + 434, 434, 434, 434, 434, 434, 434, 434, + 434, 434, 434, 434, 434, 434, 434, 287, + + 435, 436, 436, 436, 436, 436, 435, 436, + 436, 435, 436, 436, 436, 436, 436, 435, + 436, 436, 436, 436, 435, 436, 437, 437, + 437, 438, 438, 438, 287, 287, 439, 287, + + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + + 440, 319, 440, 440, 440, 440, 440, 440, + 440, 440, 441, 441, 441, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, + + 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, + + 319, 319, 319, 319, 442, 442, 443, 442, + 442, 443, 442, 442, 442, 443, 443, 443, + 444, 445, 446, 442, 442, 442, 443, 442, + 442, 443, 443, 442, 442, 442, 442, 319, + + 447, 448, 448, 449, 450, 451, 451, 451, + 451, 451, 451, 451, 451, 451, 451, 451, + 451, 451, 451, 451, 451, 451, 451, 451, + 451, 451, 451, 451, 451, 451, 451, 451, + + 451, 451, 451, 451, 451, 451, 451, 451, + 451, 452, 451, 451, 451, 451, 451, 451, + 451, 452, 451, 451, 452, 451, 451, 451, + 451, 451, 453, 454, 455, 451, 449, 449, + + 449, 448, 448, 448, 448, 448, 448, 448, + 448, 449, 449, 449, 449, 456, 457, 454, + 451, 164, 166, 458, 458, 447, 453, 453, + 459, 459, 459, 459, 459, 459, 459, 459, + + 451, 451, 448, 448, 460, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 474, 474, 474, 474, + 193, 475, 475, 476, 476, 477, 476, 476, + + 193, 478, 479, 479, 193, 480, 480, 480, + 480, 480, 480, 480, 480, 193, 193, 480, + 480, 193, 193, 480, 480, 480, 480, 480, + 480, 480, 480, 480, 480, 480, 480, 480, + + 480, 480, 480, 480, 480, 480, 480, 480, + 480, 193, 480, 480, 480, 480, 480, 480, + 480, 193, 480, 193, 193, 193, 480, 480, + 480, 480, 193, 193, 481, 482, 483, 479, + + 479, 478, 478, 478, 478, 193, 193, 479, + 479, 193, 193, 484, 484, 485, 486, 193, + 193, 193, 193, 193, 193, 193, 193, 483, + 193, 193, 193, 193, 487, 487, 193, 487, + + 480, 480, 478, 478, 193, 193, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, + 480, 480, 498, 498, 499, 499, 499, 499, + 499, 500, 501, 502, 193, 193, 193, 193, + + 193, 503, 504, 505, 193, 506, 506, 506, + 506, 506, 506, 193, 193, 193, 193, 506, + 506, 193, 193, 506, 506, 506, 506, 506, + 506, 506, 506, 506, 506, 506, 506, 506, + + 506, 506, 506, 506, 506, 506, 506, 506, + 506, 193, 506, 506, 506, 506, 506, 506, + 506, 193, 506, 507, 193, 506, 507, 193, + 506, 506, 193, 193, 508, 193, 509, 509, + + 509, 504, 504, 193, 193, 193, 193, 504, + 504, 193, 193, 504, 504, 510, 193, 193, + 193, 511, 193, 193, 193, 193, 193, 193, + 193, 507, 507, 507, 506, 193, 507, 193, + + 193, 193, 193, 193, 193, 193, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, + 504, 504, 506, 506, 506, 511, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 193, 522, 522, 523, 193, 524, 524, 524, + 524, 524, 524, 524, 525, 524, 193, 524, + 524, 524, 193, 524, 524, 524, 524, 524, + 524, 524, 524, 524, 524, 524, 524, 524, + + 524, 524, 524, 524, 524, 524, 524, 524, + 524, 193, 524, 524, 524, 524, 524, 524, + 524, 193, 524, 524, 193, 524, 524, 524, + 524, 524, 193, 193, 526, 524, 523, 523, + + 523, 522, 522, 522, 522, 522, 193, 522, + 522, 523, 193, 523, 523, 527, 193, 193, + 524, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 524, 525, 528, 528, 193, 193, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 193, 541, 542, 542, 193, 543, 543, 543, + 543, 543, 543, 543, 543, 193, 193, 543, + 543, 193, 193, 543, 543, 543, 543, 543, + 543, 543, 543, 543, 543, 543, 543, 543, + + 543, 543, 543, 543, 543, 543, 543, 543, + 543, 193, 543, 543, 543, 543, 543, 543, + 543, 193, 543, 543, 193, 544, 543, 543, + 543, 543, 193, 193, 545, 543, 546, 541, + + 542, 541, 541, 541, 547, 193, 193, 542, + 548, 193, 193, 548, 548, 549, 193, 193, + 193, 193, 193, 193, 193, 193, 550, 546, + 193, 193, 193, 193, 551, 551, 193, 543, + + 543, 543, 547, 547, 193, 193, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, + 562, 544, 563, 563, 563, 563, 563, 563, + 193, 193, 193, 193, 193, 193, 193, 193, + + 193, 193, 564, 565, 193, 565, 565, 565, + 565, 565, 565, 193, 193, 193, 565, 565, + 565, 193, 565, 565, 566, 565, 193, 193, + 193, 565, 565, 193, 565, 193, 565, 565, + + 193, 193, 193, 565, 565, 193, 193, 193, + 565, 565, 565, 193, 193, 193, 565, 565, + 565, 565, 565, 565, 565, 565, 567, 565, + 565, 565, 193, 193, 193, 193, 568, 569, + + 564, 569, 569, 193, 193, 193, 569, 569, + 569, 193, 570, 570, 570, 571, 193, 193, + 572, 193, 193, 193, 193, 193, 193, 568, + 193, 193, 193, 193, 193, 193, 193, 193, + + 193, 193, 193, 193, 193, 193, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, + 583, 583, 583, 584, 584, 584, 584, 584, + 584, 585, 584, 193, 193, 193, 193, 193, + + 193, 586, 586, 586, 193, 587, 587, 587, + 587, 587, 587, 587, 587, 193, 587, 587, + 587, 193, 587, 587, 587, 587, 587, 587, + 587, 587, 587, 587, 587, 587, 587, 587, + + 587, 587, 587, 587, 587, 587, 587, 587, + 587, 193, 587, 587, 587, 587, 587, 587, + 587, 587, 587, 587, 193, 587, 587, 587, + 587, 587, 193, 193, 193, 588, 589, 589, + + 589, 586, 586, 586, 586, 193, 589, 589, + 590, 193, 589, 589, 589, 591, 193, 193, + 193, 193, 193, 193, 193, 592, 593, 193, + 588, 588, 193, 193, 193, 193, 193, 193, + + 587, 587, 594, 594, 193, 193, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, + 193, 193, 193, 193, 193, 193, 193, 193, + 605, 605, 605, 605, 605, 605, 605, 606, + + 193, 193, 607, 607, 193, 608, 608, 608, + 608, 608, 608, 608, 608, 193, 608, 608, + 608, 193, 608, 608, 608, 608, 608, 608, + 608, 608, 608, 608, 608, 608, 608, 608, + + 608, 608, 608, 608, 608, 608, 608, 608, + 608, 193, 608, 608, 608, 608, 608, 608, + 608, 608, 608, 608, 193, 608, 608, 608, + 608, 608, 193, 193, 609, 610, 607, 611, + + 612, 607, 613, 607, 607, 193, 611, 612, + 612, 193, 612, 612, 614, 615, 193, 193, + 193, 193, 193, 193, 193, 613, 613, 193, + 193, 193, 193, 193, 193, 193, 608, 193, + + 608, 608, 616, 616, 193, 193, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, + 193, 627, 627, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 193, 193, 628, 628, 193, 629, 629, 629, + 629, 629, 629, 629, 629, 193, 629, 629, + 629, 193, 629, 629, 629, 629, 629, 629, + 629, 629, 629, 629, 629, 629, 629, 629, + + 629, 629, 629, 629, 629, 629, 629, 629, + 629, 630, 629, 629, 629, 629, 629, 629, + 629, 629, 629, 629, 629, 629, 629, 629, + 629, 629, 630, 193, 193, 631, 632, 628, + + 628, 633, 633, 633, 634, 193, 628, 628, + 628, 193, 635, 635, 635, 636, 630, 193, + 193, 193, 193, 193, 193, 193, 193, 632, + 193, 193, 193, 193, 193, 193, 193, 193, + + 629, 629, 634, 634, 193, 193, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, + 647, 647, 647, 647, 647, 647, 193, 193, + 193, 648, 631, 631, 631, 631, 631, 631, + + 193, 193, 649, 649, 193, 650, 650, 650, + 650, 650, 650, 650, 650, 650, 650, 650, + 650, 650, 650, 650, 650, 650, 650, 193, + 193, 193, 650, 650, 650, 650, 650, 650, + + 650, 650, 650, 650, 650, 650, 650, 650, + 650, 650, 650, 650, 650, 650, 650, 650, + 650, 650, 193, 650, 650, 650, 650, 650, + 650, 650, 650, 650, 193, 650, 193, 193, + + 650, 650, 650, 650, 650, 650, 650, 193, + 193, 193, 651, 193, 193, 193, 193, 652, + 649, 649, 653, 653, 653, 193, 653, 193, + 649, 649, 654, 649, 654, 654, 654, 652, + + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 649, 649, 655, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 193, 656, 656, 656, 656, 656, 656, 656, + 656, 656, 656, 656, 656, 656, 656, 656, + 656, 656, 656, 656, 656, 656, 656, 656, + 656, 656, 656, 656, 656, 656, 656, 656, + + 656, 656, 656, 656, 656, 656, 656, 656, + 656, 656, 656, 656, 656, 656, 656, 656, + 656, 657, 656, 658, 657, 657, 657, 657, + 659, 659, 660, 193, 193, 193, 193, 12, + + 656, 656, 656, 656, 656, 656, 661, 657, + 662, 662, 662, 662, 657, 657, 657, 663, + 664, 665, 666, 667, 668, 669, 670, 671, + 672, 673, 674, 674, 193, 193, 193, 193, + + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 193, 675, 675, 193, 675, 193, 193, 675, + 675, 193, 675, 193, 193, 675, 193, 193, + 193, 193, 193, 193, 675, 675, 675, 675, + 193, 675, 675, 675, 675, 675, 675, 675, + + 193, 675, 675, 675, 193, 675, 193, 675, + 193, 193, 675, 675, 193, 675, 675, 675, + 675, 676, 675, 677, 676, 676, 676, 676, + 678, 678, 193, 676, 676, 675, 193, 193, + + 675, 675, 675, 675, 675, 193, 679, 193, + 680, 680, 680, 680, 676, 676, 193, 193, + 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 193, 193, 691, 691, 692, 692, + + 693, 694, 694, 694, 695, 696, 695, 695, + 697, 695, 695, 698, 699, 700, 700, 700, + 700, 700, 697, 701, 700, 701, 701, 701, + 702, 702, 701, 701, 701, 701, 701, 701, + + 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 713, 713, 713, 713, 713, + 713, 713, 713, 713, 714, 702, 701, 702, + 701, 715, 716, 717, 716, 717, 718, 718, + + 693, 693, 693, 719, 693, 693, 693, 693, + 193, 693, 693, 693, 693, 719, 693, 693, + 693, 693, 719, 693, 693, 693, 693, 719, + 693, 693, 693, 693, 719, 693, 693, 693, + + 693, 693, 693, 693, 693, 693, 693, 693, + 693, 719, 720, 721, 721, 193, 193, 193, + 193, 722, 723, 724, 725, 724, 724, 726, + 724, 726, 723, 723, 723, 723, 727, 728, + + 723, 724, 729, 729, 730, 698, 729, 729, + 693, 693, 693, 693, 731, 732, 732, 732, + 727, 727, 727, 724, 727, 727, 733, 727, + 193, 727, 727, 727, 727, 724, 727, 727, + + 727, 727, 724, 727, 727, 727, 727, 724, + 727, 727, 727, 727, 724, 727, 733, 733, + 733, 727, 727, 727, 727, 727, 727, 727, + 733, 724, 733, 733, 733, 193, 734, 734, + + 735, 735, 735, 735, 735, 735, 736, 735, + 735, 735, 735, 735, 735, 193, 737, 735, + 738, 738, 739, 740, 741, 742, 742, 742, + 742, 743, 743, 193, 193, 193, 193, 193, + + 744, 744, 744, 744, 744, 744, 744, 744, + 744, 744, 744, 744, 744, 744, 744, 744, + 744, 744, 744, 744, 744, 744, 744, 744, + 744, 744, 744, 744, 744, 744, 744, 744, + + 744, 744, 745, 744, 744, 744, 746, 744, + 745, 744, 744, 747, 748, 749, 750, 749, + 749, 751, 749, 752, 752, 752, 749, 753, + 748, 754, 755, 756, 756, 752, 752, 745, + + 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 767, 768, 768, 768, 768, + 744, 744, 744, 744, 744, 744, 751, 751, + 749, 749, 745, 745, 745, 745, 752, 752, + + 752, 745, 747, 747, 747, 745, 745, 747, + 747, 747, 747, 747, 747, 747, 745, 745, + 745, 752, 752, 752, 752, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, + + 745, 745, 752, 747, 756, 752, 752, 747, + 747, 747, 747, 747, 747, 769, 745, 747, + 770, 771, 772, 773, 774, 775, 776, 777, + 778, 779, 780, 780, 780, 781, 782, 782, + + 783, 783, 783, 783, 783, 783, 783, 783, + 783, 783, 783, 783, 783, 783, 783, 783, + 783, 783, 783, 783, 783, 783, 783, 783, + 783, 783, 783, 783, 783, 783, 783, 783, + + 783, 783, 783, 783, 783, 783, 193, 784, + 193, 193, 193, 193, 193, 784, 193, 193, + 785, 785, 785, 785, 785, 785, 785, 785, + 785, 785, 785, 785, 785, 785, 785, 785, + + 785, 785, 785, 785, 785, 785, 785, 785, + 785, 785, 785, 785, 785, 785, 785, 785, + 785, 785, 785, 785, 785, 785, 785, 786, + 786, 787, 787, 788, 789, 790, 790, 790, + + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 792, 792, 792, 792, 792, 791, + + 793, 794, 794, 794, 794, 794, 794, 794, + 794, 794, 794, 794, 794, 794, 794, 794, + 794, 794, 794, 794, 794, 794, 793, 793, + 793, 793, 793, 793, 793, 793, 793, 793, + + 793, 793, 793, 793, 793, 793, 793, 793, + 793, 793, 793, 793, 793, 793, 793, 793, + 793, 793, 793, 793, 793, 793, 793, 793, + 793, 793, 793, 793, 793, 793, 793, 793, + + 793, 793, 793, 795, 795, 795, 795, 795, + 796, 796, 796, 796, 796, 796, 796, 796, + 796, 796, 796, 796, 796, 796, 796, 796, + 796, 796, 796, 796, 796, 796, 796, 796, + + 796, 796, 796, 797, 797, 797, 797, 797, + 797, 797, 797, 797, 797, 797, 797, 797, + 797, 797, 797, 797, 797, 797, 797, 797, + 797, 797, 797, 797, 797, 797, 797, 797, + + 797, 797, 797, 797, 797, 797, 797, 797, + 797, 797, 797, 797, 797, 797, 797, 797, + 797, 797, 797, 797, 797, 797, 797, 797, + 797, 797, 798, 798, 798, 798, 798, 798, + + 799, 799, 799, 799, 799, 799, 799, 800, + 799, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 799, 799, 799, 799, 799, 799, + + 799, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 799, 799, 799, 799, 799, 799, + + 799, 799, 799, 799, 799, 799, 799, 800, + 799, 193, 799, 799, 799, 799, 193, 193, + 799, 799, 799, 799, 799, 799, 799, 193, + 799, 193, 799, 799, 799, 799, 193, 193, + + 799, 799, 799, 799, 799, 799, 799, 800, + 799, 193, 799, 799, 799, 799, 193, 193, + 799, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 799, 799, 799, 799, 799, 799, + + 799, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 799, 799, 799, 799, 799, 800, + 799, 193, 799, 799, 799, 799, 193, 193, + 799, 799, 799, 799, 799, 799, 799, 193, + + 799, 193, 799, 799, 799, 799, 193, 193, + 799, 799, 799, 799, 799, 799, 799, 800, + 799, 799, 799, 799, 799, 799, 799, 193, + 799, 799, 799, 799, 799, 799, 799, 799, + + 799, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 799, 799, 799, 799, 799, 800, + 799, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 799, 799, 799, 799, 799, 799, + + 799, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 799, 799, 799, 799, 799, 800, + 799, 193, 799, 799, 799, 799, 193, 193, + 799, 799, 799, 799, 799, 799, 799, 800, + + 799, 799, 799, 799, 799, 799, 799, 800, + 799, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 799, 193, 193, 801, 801, 802, + + 803, 804, 805, 806, 806, 806, 806, 805, + 805, 807, 808, 809, 810, 811, 812, 813, + 814, 815, 816, 816, 816, 816, 816, 816, + 816, 816, 816, 816, 816, 193, 193, 193, + + 800, 800, 800, 800, 800, 800, 800, 800, + 800, 800, 800, 800, 800, 800, 800, 800, + 817, 817, 817, 817, 817, 817, 817, 817, + 817, 817, 193, 193, 193, 193, 193, 193, + + 818, 818, 818, 818, 818, 818, 818, 818, + 818, 818, 818, 818, 818, 818, 818, 818, + 818, 818, 818, 818, 818, 818, 818, 818, + 818, 818, 818, 818, 818, 818, 818, 818, + + 818, 818, 818, 818, 818, 818, 818, 818, + 818, 818, 818, 818, 818, 818, 818, 818, + 818, 818, 818, 818, 818, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 819, 820, 820, 820, 820, 820, 820, 820, + 820, 820, 820, 820, 820, 820, 820, 820, + 820, 820, 820, 820, 820, 820, 820, 820, + 820, 820, 820, 820, 820, 820, 820, 820, + + 820, 820, 820, 820, 820, 820, 820, 820, + 820, 820, 820, 820, 820, 820, 820, 820, + 820, 820, 820, 820, 820, 820, 820, 820, + 820, 820, 820, 820, 820, 820, 820, 820, + + 820, 820, 820, 820, 820, 820, 820, 820, + 820, 820, 820, 820, 820, 821, 822, 820, + 820, 820, 820, 820, 820, 820, 820, 823, + 823, 823, 823, 823, 823, 823, 823, 823, + + 824, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 826, 827, 193, 193, 193, + + 828, 828, 828, 828, 828, 828, 828, 828, + 828, 828, 828, 828, 828, 828, 828, 828, + 828, 828, 828, 828, 828, 828, 828, 828, + 828, 828, 828, 828, 828, 828, 828, 828, + + 828, 828, 828, 828, 828, 828, 828, 828, + 828, 828, 828, 829, 829, 829, 830, 830, + 830, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 831, 831, 831, 831, 831, 831, 831, 831, + 831, 831, 831, 831, 831, 193, 831, 831, + 831, 831, 832, 832, 833, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 834, 834, 834, 834, 834, 834, 834, 834, + 834, 834, 834, 834, 834, 834, 834, 834, + 834, 834, 835, 835, 836, 837, 837, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 838, 838, 838, 838, 838, 838, 838, 838, + 838, 838, 838, 838, 838, 838, 838, 838, + 838, 838, 839, 839, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 840, 840, 840, 840, 840, 840, 840, 840, + 840, 840, 840, 840, 840, 193, 840, 840, + 840, 193, 841, 841, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 842, 842, 842, 842, 842, 842, 842, 842, + 842, 842, 842, 842, 842, 842, 842, 842, + 842, 842, 842, 842, 842, 842, 842, 842, + 842, 842, 842, 842, 842, 842, 842, 842, + + 842, 842, 842, 842, 842, 842, 842, 842, + 842, 842, 842, 842, 842, 842, 842, 842, + 842, 842, 842, 842, 843, 843, 844, 843, + 843, 843, 843, 843, 843, 843, 844, 844, + + 844, 844, 844, 844, 844, 844, 843, 844, + 844, 843, 843, 843, 843, 843, 843, 843, + 843, 843, 845, 843, 846, 846, 847, 848, + 846, 849, 846, 850, 842, 851, 193, 193, + + 852, 853, 854, 855, 856, 857, 858, 859, + 860, 861, 193, 193, 193, 193, 193, 193, + 862, 862, 862, 862, 862, 862, 862, 862, + 862, 862, 193, 193, 193, 193, 193, 193, + + 863, 863, 864, 865, 866, 867, 868, 869, + 870, 871, 872, 873, 873, 873, 874, 193, + 875, 876, 877, 878, 879, 880, 881, 882, + 883, 884, 193, 193, 193, 193, 193, 193, + + 885, 885, 885, 885, 885, 885, 885, 885, + 885, 885, 885, 885, 885, 885, 885, 885, + 885, 885, 885, 885, 885, 885, 885, 885, + 885, 885, 885, 885, 885, 885, 885, 885, + + 885, 885, 885, 886, 885, 885, 885, 885, + 885, 885, 885, 885, 885, 885, 885, 885, + 885, 885, 885, 885, 885, 885, 885, 885, + 885, 885, 885, 885, 885, 885, 885, 885, + + 885, 885, 885, 885, 885, 885, 885, 885, + 885, 885, 885, 885, 885, 885, 885, 885, + 885, 885, 885, 885, 885, 885, 885, 885, + 193, 193, 193, 193, 193, 193, 193, 193, + + 887, 887, 887, 887, 887, 887, 887, 885, + 885, 885, 885, 885, 885, 885, 885, 885, + 885, 885, 885, 885, 885, 885, 885, 885, + 885, 885, 885, 885, 885, 885, 885, 885, + + 885, 885, 885, 885, 885, 885, 885, 885, + 885, 888, 889, 193, 193, 193, 193, 193, + 823, 823, 823, 823, 823, 823, 823, 823, + 823, 823, 823, 823, 823, 823, 823, 823, + + 823, 823, 823, 823, 823, 823, 823, 823, + 823, 823, 823, 823, 823, 823, 823, 823, + 823, 823, 823, 823, 823, 823, 823, 823, + 823, 823, 823, 823, 823, 823, 823, 823, + + 823, 823, 823, 823, 823, 823, 823, 823, + 823, 823, 823, 823, 823, 823, 823, 823, + 823, 823, 823, 823, 823, 823, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 890, 890, 890, 890, 890, 890, 890, 890, + 890, 890, 890, 890, 890, 890, 890, 890, + 890, 890, 890, 890, 890, 890, 890, 890, + 890, 890, 890, 890, 890, 193, 193, 193, + + 891, 891, 891, 892, 892, 892, 892, 891, + 891, 892, 892, 892, 193, 193, 193, 193, + 892, 892, 891, 892, 892, 892, 892, 892, + 892, 893, 894, 895, 193, 193, 193, 193, + + 896, 193, 193, 193, 897, 897, 898, 899, + 900, 901, 902, 903, 904, 905, 906, 907, + 908, 908, 908, 908, 908, 908, 908, 908, + 908, 908, 908, 908, 908, 908, 908, 908, + + 908, 908, 908, 908, 908, 908, 908, 908, + 908, 908, 908, 908, 908, 908, 193, 193, + 908, 908, 908, 908, 908, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 909, 909, 909, 909, 909, 909, 909, 909, + 909, 909, 909, 909, 909, 909, 909, 909, + 909, 909, 909, 909, 909, 909, 909, 909, + 909, 909, 909, 909, 909, 909, 909, 909, + + 909, 909, 909, 909, 909, 909, 909, 909, + 909, 909, 910, 910, 193, 193, 193, 193, + 911, 911, 911, 911, 911, 912, 912, 912, + 911, 911, 912, 911, 911, 911, 911, 911, + + 911, 909, 909, 909, 909, 909, 909, 909, + 911, 911, 193, 193, 193, 193, 193, 193, + 913, 914, 915, 916, 917, 918, 919, 920, + 921, 922, 923, 193, 193, 193, 924, 924, + + 925, 925, 925, 925, 925, 925, 925, 925, + 925, 925, 925, 925, 925, 925, 925, 925, + 925, 925, 925, 925, 925, 925, 925, 925, + 925, 925, 925, 925, 925, 925, 925, 925, + + 926, 926, 926, 926, 926, 926, 926, 926, + 926, 926, 926, 926, 926, 926, 926, 926, + 926, 926, 926, 926, 926, 926, 926, 927, + 928, 929, 929, 930, 193, 193, 931, 931, + + 932, 932, 932, 932, 932, 932, 932, 932, + 932, 932, 932, 932, 932, 932, 932, 932, + 932, 932, 932, 932, 932, 932, 932, 932, + 932, 932, 932, 932, 932, 932, 932, 932, + + 932, 932, 932, 932, 932, 932, 932, 932, + 932, 932, 932, 932, 932, 932, 932, 932, + 932, 932, 932, 932, 932, 933, 934, 933, + 934, 934, 934, 934, 934, 934, 934, 193, + + 935, 936, 934, 936, 936, 934, 934, 934, + 934, 934, 934, 934, 934, 933, 933, 933, + 933, 933, 933, 934, 934, 937, 937, 937, + 937, 937, 937, 937, 937, 193, 193, 938, + + 939, 940, 941, 942, 943, 944, 945, 946, + 947, 948, 193, 193, 193, 193, 193, 193, + 939, 940, 941, 942, 943, 944, 945, 946, + 947, 948, 193, 193, 193, 193, 193, 193, + + 949, 949, 949, 949, 949, 949, 949, 950, + 951, 951, 951, 951, 949, 949, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 952, 952, 952, 952, 953, 954, 955, 954, + 955, 954, 955, 954, 955, 954, 955, 954, + 954, 954, 955, 954, 954, 954, 954, 954, + 954, 954, 954, 954, 954, 954, 954, 954, + + 954, 954, 954, 954, 954, 954, 954, 954, + 954, 954, 954, 954, 954, 954, 954, 954, + 954, 954, 954, 954, 956, 957, 952, 952, + 952, 952, 952, 958, 952, 958, 953, 953, + + 958, 958, 952, 958, 959, 954, 954, 954, + 954, 954, 954, 954, 193, 193, 193, 193, + 960, 961, 962, 963, 964, 965, 966, 967, + 968, 969, 970, 970, 971, 972, 970, 970, + + 972, 973, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 974, 975, 974, 974, 974, + 974, 974, 974, 974, 973, 973, 973, 973, + 973, 973, 973, 973, 973, 193, 193, 193, + + 976, 976, 977, 978, 978, 978, 978, 978, + 978, 978, 978, 978, 978, 978, 978, 978, + 978, 978, 978, 978, 978, 978, 978, 978, + 978, 978, 978, 978, 978, 978, 978, 978, + + 978, 977, 976, 976, 976, 976, 977, 977, + 976, 976, 979, 980, 981, 981, 978, 978, + 982, 983, 984, 985, 986, 987, 988, 989, + 990, 991, 992, 992, 992, 992, 992, 992, + + 993, 993, 993, 993, 993, 993, 993, 993, + 993, 993, 993, 993, 993, 993, 993, 993, + 993, 993, 993, 993, 993, 993, 993, 993, + 993, 993, 993, 993, 993, 993, 993, 993, + + 993, 993, 993, 993, 993, 993, 994, 995, + 996, 996, 995, 995, 995, 996, 995, 996, + 996, 996, 997, 997, 193, 193, 193, 193, + 193, 193, 193, 193, 998, 998, 998, 998, + + 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, + 999, 999, 999, 999, 999, 999, 999, 999, + + 999, 999, 999, 999, 1000, 1000, 1000, 1000, + 1000, 1000, 1000, 1000, 1001, 1001, 1001, 1001, + 1001, 1001, 1001, 1001, 1000, 1000, 1001, 1002, + 193, 193, 193, 1003, 1003, 1004, 1004, 1004, + + 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, + 1013, 1014, 193, 193, 193, 999, 999, 999, + 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, + 1023, 1024, 1025, 1025, 1025, 1025, 1025, 1025, + + 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, + 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, + 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, + 1026, 1026, 1026, 1026, 1026, 1026, 1027, 1027, + + 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028, + 193, 193, 193, 193, 193, 193, 193, 193, + 1029, 1029, 1029, 1030, 1031, 1032, 1032, 1032, + 1032, 1032, 1029, 1029, 1032, 1032, 1032, 1032, + + 1029, 1033, 1031, 1031, 1031, 1031, 1031, 1031, + 1031, 1034, 1034, 1034, 1034, 1032, 1034, 1034, + 1034, 1034, 1033, 1035, 1036, 1037, 1037, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, + + 114, 114, 114, 114, 114, 114, 1038, 1038, + 1038, 1038, 1038, 1039, 1040, 1040, 1040, 1041, + 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, + 1040, 1040, 1040, 1041, 1040, 1040, 1040, 1040, + + 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, + 1040, 1040, 1040, 1040, 1040, 1040, 1041, 1040, + 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, + 1040, 1040, 1040, 1040, 1040, 1042, 1042, 1042, + + 1042, 1042, 1040, 1040, 1040, 1040, 1042, 1042, + 1042, 1042, 1042, 114, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 115, + 1043, 1044, 115, 115, 115, 1045, 115, 115, + + 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 1046, 1046, 1046, 1046, 1046, + + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1047, + + 182, 182, 181, 182, 1048, 1048, 1048, 1048, + 1048, 1048, 1049, 1050, 1050, 1051, 1052, 1053, + 1054, 1050, 1050, 1050, 1050, 1050, 1050, 1050, + 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, + + 1050, 1050, 1050, 1050, 1050, 1050, 1050, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 1055, 1032, 1048, 1049, + + 70, 71, 70, 71, 70, 71, 70, 71, + 70, 71, 70, 71, 70, 71, 70, 71, + 70, 71, 70, 71, 70, 71, 70, 71, + 70, 71, 70, 71, 70, 71, 70, 71, + + 70, 71, 70, 71, 70, 71, 70, 71, + 70, 71, 70, 71, 70, 71, 70, 71, + 70, 71, 70, 71, 70, 71, 1056, 1057, + 1058, 1059, 1060, 1061, 1062, 1062, 1063, 1062, + + 70, 71, 70, 71, 70, 71, 70, 71, + 70, 71, 70, 71, 70, 71, 70, 71, + 70, 71, 70, 71, 70, 71, 70, 71, + 70, 71, 1064, 1065, 1064, 1065, 1064, 1065, + + 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, + 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, + 1066, 1066, 1066, 1066, 1066, 1066, 193, 193, + 1067, 1067, 1067, 1067, 1067, 1067, 193, 193, + + 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, + 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, + 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, + 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, + + 1066, 1066, 1066, 1066, 1066, 1066, 193, 193, + 1067, 1067, 1067, 1067, 1067, 1067, 193, 193, + 1068, 1066, 1069, 1066, 1070, 1066, 1071, 1066, + 193, 1067, 193, 1067, 193, 1067, 193, 1067, + + 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, + 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, + 1072, 1073, 1074, 1075, 1074, 1075, 1076, 1077, + 1078, 1079, 1080, 1081, 1082, 1083, 193, 193, + + 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, + 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, + 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, + 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, + + 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, + 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, + 1066, 1066, 1132, 1133, 1134, 193, 1135, 1136, + 1067, 1067, 1137, 1138, 1139, 197, 1140, 197, + + 197, 1141, 1142, 1143, 1144, 193, 1145, 1146, + 1147, 1148, 1147, 1148, 1149, 1141, 1141, 1141, + 1066, 1066, 1150, 1151, 193, 193, 1152, 1153, + 1067, 1067, 1154, 1155, 193, 1141, 1141, 1141, + + 1066, 1066, 1156, 1157, 1158, 1159, 1160, 1161, + 1067, 1067, 1162, 1163, 1164, 1141, 1165, 1165, + 193, 193, 1166, 1167, 1168, 193, 1169, 1170, + 1171, 1172, 1173, 1174, 1175, 1176, 197, 193, + + 1177, 1177, 1178, 1178, 1178, 1178, 1178, 1179, + 1178, 1178, 1178, 1180, 1181, 1182, 1183, 1184, + 1185, 1186, 1185, 1187, 1188, 1189, 14, 1190, + 1191, 1192, 1193, 1194, 1194, 1195, 1193, 1194, + + 14, 14, 14, 14, 1196, 1197, 1197, 1198, + 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, + 13, 13, 13, 1207, 1207, 1208, 1209, 1209, + 14, 1210, 1211, 14, 1212, 1213, 1190, 43, + + 43, 14, 14, 14, 1214, 16, 1215, 1216, + 1217, 1217, 1218, 1218, 1218, 1218, 1219, 1219, + 1219, 1219, 1220, 1221, 1222, 1223, 1224, 1225, + 1224, 1224, 1224, 1224, 1223, 1224, 1224, 1226, + + 1227, 1228, 1228, 1228, 1229, 1230, 1231, 1232, + 1233, 1234, 1235, 1235, 1235, 1235, 1235, 1235, + 1236, 1237, 193, 193, 1238, 1239, 1240, 1241, + 1242, 1243, 1244, 1244, 1245, 1246, 1247, 151, + + 1236, 63, 58, 59, 1238, 1239, 1240, 1241, + 1242, 1243, 1244, 1244, 1245, 1246, 1247, 193, + 1046, 1046, 1046, 1046, 1046, 1248, 1248, 1248, + 1248, 1248, 1248, 1248, 1248, 193, 193, 193, + + 12, 12, 12, 12, 12, 12, 12, 50, + 1249, 12, 12, 1250, 1251, 1252, 1252, 1252, + 1253, 1253, 1254, 1254, 1254, 1254, 1255, 1256, + 1256, 1257, 1258, 1259, 1259, 1259, 1259, 1259, + + 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, + 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, + 164, 164, 171, 171, 164, 164, 164, 164, + 171, 171, 171, 164, 164, 1260, 1260, 1260, + + 1260, 164, 1261, 1261, 1262, 1263, 1263, 188, + 1264, 188, 1263, 1265, 1049, 1049, 1049, 1049, + 1050, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1266, 1266, 1267, 1268, 51, 1266, 1266, 1267, + 51, 1268, 1269, 1267, 1267, 1267, 1269, 1269, + 1267, 1267, 1267, 1269, 51, 1267, 1270, 51, + 36, 1267, 1267, 1267, 1267, 1267, 51, 51, + + 1266, 1266, 1266, 51, 1267, 51, 1271, 51, + 1267, 51, 1272, 1273, 1267, 1267, 1274, 1269, + 1267, 1267, 1275, 1267, 1269, 1276, 1276, 1276, + 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1282, + + 1283, 1220, 1220, 1220, 1220, 1282, 1281, 1281, + 1281, 1281, 1284, 1220, 1285, 1286, 1287, 1288, + 1289, 1289, 1289, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, + + 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290, + 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290, + 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, + 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, + + 1292, 1292, 1292, 111, 122, 1293, 1293, 1293, + 1293, 1289, 193, 193, 193, 193, 193, 193, + 36, 36, 36, 36, 36, 51, 51, 51, + 51, 51, 1294, 1294, 51, 51, 51, 51, + + 36, 51, 51, 36, 51, 51, 36, 51, + 51, 51, 51, 51, 51, 51, 1294, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 1295, 1294, 1294, + 51, 51, 36, 51, 36, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 1278, 1278, 1278, 1278, 1278, + 1278, 1278, 1278, 1278, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + + 36, 36, 36, 36, 1294, 36, 36, 36, + 1296, 1297, 1296, 1298, 1299, 1298, 36, 36, + 36, 36, 18, 57, 36, 1300, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, + + 36, 36, 36, 36, 1294, 36, 1294, 36, + 36, 36, 36, 36, 1245, 1245, 36, 1245, + 1245, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 1301, 1302, 36, 36, + + 36, 1294, 36, 1303, 1294, 36, 36, 1294, + 36, 1294, 36, 36, 36, 36, 36, 36, + 36, 36, 1301, 1302, 1301, 1302, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, + + 1294, 36, 1294, 36, 1301, 1302, 1301, 1302, + 1301, 1302, 1301, 1302, 36, 1294, 1304, 1305, + 1304, 1305, 1301, 1302, 1304, 1305, 1301, 1302, + 1304, 1305, 1301, 1302, 1301, 1302, 1301, 1302, + + 1304, 1305, 1301, 1302, 1304, 1305, 1301, 1302, + 1304, 1305, 1301, 1302, 36, 36, 36, 1301, + 1302, 1301, 1302, 36, 36, 36, 36, 36, + 1306, 36, 36, 36, 36, 36, 36, 36, + + 36, 36, 1301, 1302, 36, 36, 1307, 36, + 1308, 1309, 36, 1309, 1294, 1294, 1294, 1294, + 1301, 1302, 1301, 1302, 1301, 1302, 1301, 1302, + 36, 36, 36, 36, 36, 36, 36, 36, + + 36, 36, 36, 36, 36, 36, 36, 36, + 36, 1301, 1302, 1301, 1302, 1310, 36, 36, + 1301, 1302, 36, 36, 36, 36, 1301, 1302, + 1301, 1302, 1301, 1302, 1301, 1302, 1301, 1302, + + 1304, 1305, 1304, 1305, 1301, 1302, 1301, 1302, + 1301, 1302, 1304, 1305, 1304, 1305, 36, 36, + 1301, 1302, 1311, 1311, 1311, 1220, 1312, 1312, + 1220, 1220, 1313, 1313, 1313, 1314, 1314, 1220, + + 51, 1278, 51, 51, 51, 51, 51, 51, + 1315, 1316, 1315, 1316, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 1317, 1317, 51, 51, 51, 51, + + 36, 36, 51, 51, 51, 51, 51, 51, + 51, 1318, 1319, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 1320, 1320, + 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, + + 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, + 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, + 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, + 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, + + 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, + 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, + 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, + 1320, 1320, 1320, 1278, 1220, 1278, 1278, 1278, + + 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, + 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, + 1278, 1278, 1278, 1278, 1278, 1321, 1278, 1278, + 1278, 1278, 1278, 1220, 1220, 1220, 1220, 1220, + + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1284, 1284, 1284, 1284, + 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, + + 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, + 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1322, + 1322, 1285, 1285, 1285, 1285, 1285, 1285, 1285, + 1285, 1285, 1285, 1285, 1323, 1323, 1323, 1323, + + 1323, 1323, 1286, 1286, 1286, 1286, 1286, 1286, + 1324, 1325, 1325, 1325, 1325, 1325, 1325, 1325, + 1326, 1326, 1326, 1326, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + + 51, 51, 51, 51, 51, 1278, 1278, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, + 1335, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 1327, 1328, 1329, 1330, + 1331, 1332, 1333, 1334, 1335, 65, 65, 65, + + 65, 65, 65, 65, 65, 65, 65, 65, + 63, 58, 59, 1238, 1239, 1240, 1241, 1242, + 1243, 1336, 1336, 1336, 1336, 1336, 1336, 1336, + 1336, 1336, 1336, 1336, 1337, 1337, 1337, 1337, + + 1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337, + 1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337, + 1337, 1337, 1337, 1337, 1337, 1337, 1338, 1338, + 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, + + 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, + 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, + 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, + 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, + + 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, + 1339, 1339, 1340, 1341, 1341, 1341, 1341, 1341, + 1341, 1341, 1341, 1341, 1341, 1342, 1343, 1344, + 1345, 1346, 1347, 1348, 1349, 1350, 1341, 1351, + + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 1284, 1284, + 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, + + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 36, + 51, 51, 51, 51, 51, 51, 51, 51, + + 51, 36, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + + 1317, 1317, 1317, 1317, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 1352, 1352, 1284, 1284, + 1353, 1278, 1317, 1317, 1317, 1317, 1317, 1317, + + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 1317, 1317, 1317, 51, 51, 51, 51, + + 51, 51, 51, 51, 51, 51, 51, 51, + 1317, 51, 51, 51, 51, 51, 51, 36, + 1278, 1278, 1284, 1284, 1284, 1284, 1284, 1284, + 1284, 1284, 1284, 1284, 1284, 1284, 1285, 1353, + + 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, + 1284, 1284, 1322, 1322, 1322, 1322, 1322, 1322, + 1322, 1322, 1285, 1285, 1285, 1285, 1285, 1285, + 1285, 1285, 1285, 1285, 1285, 1354, 1324, 1324, + + 1322, 1322, 1285, 1285, 1285, 1285, 1285, 1285, + 1285, 1285, 1285, 1285, 1355, 1285, 1285, 1285, + 1285, 1285, 1286, 1354, 1354, 1354, 1354, 1354, + 1354, 1354, 1354, 1354, 1354, 1356, 1356, 1356, + + 1357, 1357, 1357, 1357, 1356, 1356, 1356, 1356, + 1356, 1324, 1324, 1324, 1324, 1356, 1325, 1356, + 1356, 1356, 1324, 1356, 1356, 1324, 1324, 1324, + 1356, 1356, 1324, 1324, 1356, 1324, 1324, 1356, + + 1356, 1356, 1325, 1324, 1325, 1325, 1325, 1325, + 1324, 1324, 1356, 1324, 1324, 1324, 1324, 1324, + 1324, 1356, 1356, 1356, 1356, 1356, 1324, 1356, + 1356, 1356, 1356, 1324, 1324, 1356, 1356, 1356, + + 193, 1317, 1317, 1317, 1317, 1325, 51, 51, + 1317, 1317, 1326, 1326, 1317, 1317, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + + 51, 51, 51, 51, 51, 51, 51, 51, + 1325, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 1325, 51, 1325, 51, + 51, 51, 51, 1325, 1325, 1325, 51, 1324, + 51, 51, 51, 1358, 1358, 1358, 1358, 1325, + + 1325, 51, 1359, 1359, 51, 51, 51, 51, + 1360, 1361, 1360, 1361, 1360, 1361, 1360, 1361, + 1360, 1361, 1360, 1361, 1360, 1361, 1362, 1363, + 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, + + 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, + 1370, 1371, 1362, 1363, 1364, 1365, 1366, 1367, + 1368, 1369, 1370, 1371, 51, 1325, 1325, 1325, + 51, 51, 51, 51, 51, 51, 51, 51, + + 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, + 1325, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 1325, + + 1372, 1372, 1372, 1373, 1374, 1375, 1376, 1323, + 1377, 1378, 1323, 1379, 1380, 1381, 1382, 1382, + 1220, 1220, 1220, 1220, 1220, 1383, 1384, 1220, + 1220, 1220, 1220, 1220, 1220, 1383, 1384, 1220, + + 1220, 1220, 1383, 1384, 1383, 1384, 1360, 1361, + 1360, 1361, 1360, 1361, 1385, 1386, 1385, 1386, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + + 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, + 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, + 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, + 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, + + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + + 1220, 1220, 1220, 1360, 1361, 1360, 1361, 1360, + 1361, 1360, 1361, 1360, 1361, 1388, 1389, 1390, + 1391, 1360, 1361, 1360, 1361, 1360, 1361, 1360, + 1361, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1392, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + + 1383, 1384, 1220, 1220, 1383, 1384, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1383, + 1384, 1383, 1384, 1220, 1383, 1384, 1220, 1220, + 1360, 1361, 1360, 1361, 1220, 1220, 1220, 1220, + + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1393, 1220, 1220, + 1383, 1384, 1220, 1220, 1360, 1361, 1220, 1220, + + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1283, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1383, 1384, 1383, 1384, 1220, + 1220, 1220, 1220, 1220, 1383, 1384, 1220, 1220, + 1220, 1220, 1220, 1220, 1383, 1384, 1220, 1220, + + 1220, 1220, 1220, 1220, 1383, 1384, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1283, 1283, 1283, 1220, + 1220, 1383, 1384, 1220, 1220, 1383, 1384, 1383, + + 1384, 1383, 1384, 1383, 1384, 1220, 1220, 1220, + 1220, 1220, 1220, 1383, 1384, 1220, 1220, 1220, + 1220, 1383, 1384, 1383, 1384, 1383, 1384, 1383, + 1384, 1383, 1384, 1383, 1384, 1220, 1220, 1220, + + 1220, 1383, 1384, 1220, 1220, 1220, 1383, 1384, + 1383, 1384, 1383, 1384, 1383, 1384, 1220, 1383, + 1384, 1220, 1220, 1383, 1384, 1220, 1220, 1220, + 1220, 1220, 1220, 1383, 1384, 1383, 1384, 1383, + + 1384, 1383, 1384, 1383, 1384, 1383, 1384, 1220, + 1220, 1220, 1220, 1220, 1220, 1383, 1384, 1383, + 1384, 1383, 1384, 1383, 1384, 1383, 1384, 1220, + 1220, 1220, 1220, 1220, 1394, 1220, 1395, 1220, + + 1220, 1220, 1220, 1396, 1397, 1396, 1220, 1220, + 1220, 1220, 1220, 1220, 1383, 1384, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1383, + 1384, 1383, 1384, 1220, 1220, 1220, 1220, 1220, + + 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, + 1322, 1322, 1322, 1322, 1322, 1322, 1285, 1285, + 1285, 1285, 1285, 1285, 1286, 1286, 1286, 1286, + 1286, 1286, 1286, 1354, 1354, 1354, 1354, 1354, + + 1286, 1286, 1286, 1286, 1354, 1354, 1354, 1354, + 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, + 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, + 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, + + 1380, 1380, 1380, 1380, 1380, 1354, 1354, 1380, + 1380, 1380, 1380, 1380, 1380, 193, 193, 193, + 1354, 1354, 1354, 1354, 1354, 1324, 1324, 1324, + 1324, 1324, 193, 193, 193, 193, 193, 193, + + 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, + 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, + 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, + 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, + + 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, + 1398, 1398, 1398, 1398, 1398, 1398, 1398, 193, + 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, + 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, + + 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, + 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, + 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, + 1399, 1399, 1399, 1399, 1399, 1399, 1399, 193, + + 126, 122, 1400, 1401, 1402, 1403, 1404, 126, + 122, 126, 122, 126, 122, 1405, 1406, 1407, + 1408, 1062, 1064, 1065, 1409, 126, 122, 1409, + 1062, 1062, 1062, 1062, 1410, 1410, 1411, 1411, + + 1412, 1413, 1412, 1413, 1412, 1413, 1412, 1413, + 1412, 1413, 1412, 1413, 1412, 1413, 1412, 1413, + 1412, 1413, 1412, 1413, 1412, 1413, 1412, 1413, + 1412, 1413, 1412, 1413, 1412, 1413, 1412, 1413, + + 1412, 1413, 1412, 1413, 1414, 1415, 1415, 1415, + 1415, 1415, 1415, 1416, 1417, 1416, 1417, 1418, + 1418, 1418, 1419, 1420, 193, 193, 193, 193, + 193, 1421, 1422, 1422, 1422, 1423, 1421, 1422, + + 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, + 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, + 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, + 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, + + 1424, 1424, 1424, 1424, 1424, 1424, 193, 1425, + 193, 193, 193, 193, 193, 1425, 193, 193, + 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, + 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, + + 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, + 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, + 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, + 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, + + 1426, 1426, 1426, 1426, 1426, 1426, 1427, 1427, + 193, 193, 193, 193, 193, 193, 193, 1428, + 1429, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 1430, + + 800, 800, 800, 800, 800, 800, 800, 800, + 800, 800, 800, 800, 800, 800, 800, 800, + 800, 800, 800, 800, 800, 800, 800, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 800, 800, 800, 800, 800, 800, 800, 193, + 800, 800, 800, 800, 800, 800, 800, 193, + 800, 800, 800, 800, 800, 800, 800, 193, + 800, 800, 800, 800, 800, 800, 800, 193, + + 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 257, + + 1431, 1431, 1432, 1433, 1432, 1433, 1431, 1431, + 1431, 1432, 1433, 1431, 1432, 1433, 1224, 1224, + 1224, 1224, 1224, 1224, 1224, 1224, 1223, 1434, + 1435, 1436, 1437, 1438, 1432, 1433, 1438, 1438, + + 1439, 1440, 1385, 1386, 1385, 1386, 1385, 1386, + 1385, 1386, 1436, 1436, 1436, 1436, 1441, 1442, + 1436, 1443, 1444, 1445, 1445, 1444, 1444, 1444, + 1444, 1444, 1446, 1446, 193, 193, 193, 193, + + 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, + 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, + 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, + 1447, 1447, 193, 1447, 1447, 1447, 1447, 1448, + + 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, + 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, + 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, + 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, + + 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, + 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, + 1447, 1447, 1447, 1448, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, + 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, + 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, + 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, + + 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, + 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, + 1448, 1448, 1448, 1448, 1448, 1448, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, + 1449, 1449, 1449, 1449, 193, 193, 193, 193, + + 1178, 1450, 1451, 1452, 1317, 1453, 1454, 1455, + 16, 1215, 16, 1215, 16, 1215, 16, 1215, + 16, 1215, 1317, 1317, 16, 1215, 16, 1215, + 16, 1215, 16, 1215, 1456, 1193, 1457, 1457, + + 1317, 1455, 1455, 1455, 1455, 1455, 1455, 1455, + 1455, 1455, 1458, 1459, 165, 1460, 1461, 1461, + 1462, 1463, 1463, 1463, 1463, 1464, 1465, 1317, + 1466, 1466, 1466, 1467, 1468, 1469, 1449, 1317, + + 193, 1470, 1471, 1470, 1471, 1470, 1471, 1470, + 1471, 1470, 1471, 1471, 1472, 1471, 1472, 1471, + 1472, 1471, 1472, 1471, 1472, 1471, 1472, 1471, + 1472, 1471, 1472, 1471, 1472, 1471, 1472, 1471, + + 1472, 1471, 1472, 1470, 1471, 1472, 1471, 1472, + 1471, 1472, 1471, 1471, 1471, 1471, 1471, 1471, + 1472, 1472, 1471, 1472, 1472, 1471, 1472, 1472, + 1471, 1472, 1472, 1471, 1472, 1472, 1471, 1471, + + 1471, 1471, 1471, 1470, 1471, 1470, 1471, 1470, + 1471, 1471, 1471, 1471, 1471, 1471, 1470, 1471, + 1471, 1471, 1471, 1471, 1472, 1473, 1473, 193, + 193, 1474, 1474, 1475, 1475, 1476, 1477, 1478, + + 1479, 1480, 1481, 1480, 1481, 1480, 1481, 1480, + 1481, 1480, 1481, 1481, 1482, 1481, 1482, 1481, + 1482, 1481, 1482, 1481, 1482, 1481, 1482, 1481, + 1482, 1481, 1482, 1481, 1482, 1481, 1482, 1481, + + 1482, 1481, 1482, 1480, 1481, 1482, 1481, 1482, + 1481, 1482, 1481, 1481, 1481, 1481, 1481, 1481, + 1482, 1482, 1481, 1482, 1482, 1481, 1482, 1482, + 1481, 1482, 1482, 1481, 1482, 1482, 1481, 1481, + + 1481, 1481, 1481, 1480, 1481, 1480, 1481, 1480, + 1481, 1481, 1481, 1481, 1481, 1481, 1480, 1481, + 1481, 1481, 1481, 1481, 1482, 1480, 1480, 1482, + 1482, 1482, 1482, 1483, 1484, 1485, 1486, 1487, + + 193, 193, 193, 193, 193, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + + 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, + 1488, 1488, 1488, 1488, 1488, 1489, 193, 193, + 193, 1490, 1490, 1490, 1490, 1490, 1490, 1490, + 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, + + 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, + 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, + 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, + 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, + + 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, + 1490, 1490, 1490, 1490, 1490, 1490, 1490, 193, + 1491, 1491, 1492, 1492, 1492, 1492, 1493, 1493, + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + + 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, + 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, + 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, + 1495, 1495, 1495, 193, 193, 193, 193, 193, + + 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, + 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + + 1357, 1357, 1357, 1357, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, + 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, + + 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, + 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, + 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, + 1497, 1497, 1497, 1497, 1497, 1498, 1498, 193, + + 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, + 1492, 1492, 1493, 1493, 1493, 1493, 1493, 1493, + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + + 1493, 1493, 1493, 1493, 1499, 1499, 1499, 1499, + 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, + 1501, 1502, 1502, 1502, 1502, 1502, 1502, 1502, + 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, + + 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, + 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, + 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, + 1497, 1497, 1497, 1497, 1498, 1498, 1503, 1491, + + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + 1493, 1502, 1502, 1502, 1502, 1502, 1502, 1502, + 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, + + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + 1493, 1493, 1493, 1493, 1501, 1501, 1501, 1501, + 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, + 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, + + 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, + 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, + 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, + 1504, 1504, 1504, 1504, 1504, 1504, 1504, 193, + + 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, + 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, + 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, + 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, + + 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, + 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, + 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1501, + 1501, 1501, 1501, 1493, 1493, 1493, 1493, 1493, + + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + 1493, 1493, 1493, 1493, 1493, 1493, 1501, 1501, + + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, + 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1501, + + 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, + 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, + 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, + 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, + + 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, + 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, + 1505, 1505, 1505, 1505, 1505, 1505, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + + 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, + 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, + 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, + 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, + + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + + 1507, 1507, 1507, 1507, 1507, 1507, 1508, 1508, + 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, + 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, + 1508, 1508, 1508, 1508, 1509, 1509, 1509, 1509, + + 1509, 1509, 1509, 1509, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1511, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + + 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, + 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, + 1512, 1512, 1512, 1512, 1512, 1513, 1512, 1512, + 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, + + 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, + 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, + 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, + 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, + + 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, + 1512, 1512, 1512, 1512, 1512, 193, 193, 193, + 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, + 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, + + 1514, 1514, 1515, 1515, 1514, 1514, 1514, 1514, + 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, + 1514, 1514, 1514, 1514, 1515, 1514, 1514, 1514, + 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, + + 1514, 1515, 1514, 1514, 1514, 1515, 1514, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, + 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, + + 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, + 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, + 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, + 1517, 1517, 1517, 1517, 1517, 1517, 1518, 1519, + + 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, + 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, + 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, + 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, + + 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, + 1520, 1520, 1520, 1520, 1521, 1522, 1523, 1524, + 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, + 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, + + 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, + 1533, 1534, 1520, 1520, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 271, 272, 271, 272, 271, 272, 271, 272, + 271, 272, 271, 272, 271, 272, 271, 272, + 271, 272, 271, 272, 271, 272, 271, 272, + 271, 272, 271, 272, 271, 272, 271, 272, + + 275, 276, 271, 272, 271, 272, 271, 272, + 271, 272, 271, 272, 271, 272, 1535, 257, + 1536, 1536, 1536, 1537, 1538, 1538, 1538, 1538, + 1538, 1538, 1538, 1538, 257, 257, 1537, 1539, + + 271, 272, 271, 272, 271, 272, 271, 272, + 271, 272, 271, 272, 271, 272, 271, 272, + 271, 272, 271, 272, 271, 272, 271, 272, + 193, 193, 193, 193, 193, 193, 193, 1538, + + 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, + 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, + 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, + 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, + + 1540, 1540, 1540, 1540, 1540, 1540, 1541, 1541, + 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, + 1542, 1542, 1543, 1544, 1545, 1545, 1545, 1544, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, + 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, + 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1547, + 1547, 1547, 1547, 1442, 1442, 1442, 1442, 1442, + + 1548, 1548, 1064, 1065, 1064, 1065, 1064, 1065, + 1064, 1065, 1064, 1065, 1064, 1065, 1064, 1065, + 1062, 1062, 1064, 1065, 1064, 1065, 1064, 1065, + 1064, 1065, 1064, 1065, 1064, 1065, 1064, 1065, + + 1064, 1065, 1064, 1065, 1064, 1065, 1064, 1065, + 1064, 1065, 1064, 1065, 1064, 1065, 1064, 1065, + 1064, 1065, 1064, 1065, 1064, 1065, 1064, 1065, + 1064, 1065, 1064, 1065, 1064, 1065, 1064, 1065, + + 1064, 1065, 1064, 1065, 1064, 1065, 1064, 1065, + 1064, 1065, 1064, 1065, 1064, 1065, 1064, 1065, + 1410, 1062, 1062, 1062, 1062, 1062, 1062, 1062, + 1062, 1064, 1065, 1064, 1065, 1549, 1064, 1065, + + 1064, 1065, 1064, 1065, 1064, 1065, 1064, 1065, + 1442, 1550, 1550, 1064, 1065, 1551, 1552, 193, + 1553, 1554, 1555, 1556, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1553, 1554, 1553, 1554, 1553, 1554, 1553, 1554, + 1553, 1554, 1557, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1558, 1558, 1552, 1559, 1559, 1559, 1559, 1559, + + 1560, 1560, 1561, 1560, 1560, 1560, 1562, 1560, + 1560, 1560, 1560, 1561, 1560, 1560, 1560, 1560, + 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, + 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, + + 1560, 1560, 1560, 1563, 1563, 1561, 1561, 1563, + 1564, 1564, 1564, 1564, 193, 193, 193, 193, + 1500, 1500, 1500, 1500, 1500, 1500, 742, 742, + 1255, 1565, 193, 193, 193, 193, 193, 193, + + 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, + 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, + 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, + 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, + + 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, + 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, + 1566, 1566, 1567, 1568, 1569, 1569, 1570, 1570, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1571, 1571, 1572, 1572, 1572, 1572, 1572, 1572, + 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, + 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, + 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, + + 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, + 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, + 1572, 1572, 1572, 1572, 1571, 1571, 1571, 1571, + 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, + + 1571, 1571, 1571, 1571, 1573, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 1574, 1574, + 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, + 1583, 1584, 193, 193, 193, 193, 193, 193, + + 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, + 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, + 1585, 1585, 475, 475, 475, 475, 475, 475, + 1586, 1586, 1586, 475, 193, 193, 193, 193, + + 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, + 1595, 1596, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + + 1597, 1597, 1597, 1597, 1597, 1597, 1598, 1598, + 1598, 1598, 1598, 1599, 1599, 1599, 1600, 1601, + 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, + 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, + + 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1603, + 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, + 1603, 1603, 1604, 1605, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 1606, + + 792, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 792, 792, + 792, 792, 792, 792, 792, 193, 193, 193, + + 1607, 1607, 1607, 1608, 1609, 1609, 1609, 1609, + 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, + 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, + 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, + + 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, + 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, + 1609, 1609, 1609, 1610, 1608, 1608, 1607, 1607, + 1607, 1607, 1608, 1608, 1607, 1608, 1608, 1608, + + 1611, 1612, 1612, 1612, 1612, 1612, 1612, 1613, + 1614, 1614, 1612, 1612, 1612, 1612, 193, 1615, + 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, + 1624, 1625, 193, 193, 193, 193, 1612, 1612, + + 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, + 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, + 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, + 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, + + 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, + 1626, 1627, 1627, 1627, 1627, 1627, 1627, 1628, + 1628, 1627, 1627, 1628, 1628, 1627, 1627, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1626, 1626, 1626, 1627, 1626, 1626, 1626, 1626, + 1626, 1626, 1626, 1626, 1627, 1628, 193, 193, + 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, + 1637, 1638, 193, 193, 1639, 1640, 1640, 1640, + + 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, + 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, + 1642, 1641, 1641, 1641, 1641, 1641, 1641, 1643, + 1643, 1643, 1641, 780, 193, 193, 193, 193, + + 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, + 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, + 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, + 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, + + 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, + 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, + 1645, 1644, 1645, 1645, 1646, 1644, 1644, 1645, + 1645, 1644, 1644, 1644, 1644, 1644, 1645, 1645, + + 1644, 1645, 1644, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 1644, 1644, 1647, 1648, 1648, + + 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, + 1649, 1649, 1649, 1650, 1651, 1651, 1650, 1650, + 1652, 1652, 1649, 1653, 1653, 1650, 1654, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 193, 1655, 1655, 1655, 1655, 1655, 1655, 193, + 193, 1655, 1655, 1655, 1655, 1655, 1655, 193, + 193, 1655, 1655, 1655, 1655, 1655, 1655, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1655, 1655, 1655, 1655, 1655, 1655, 1655, 193, + 1655, 1655, 1655, 1655, 1655, 1655, 1655, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, + 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, + 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, + 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, + + 1656, 1656, 1656, 1657, 1657, 1658, 1657, 1657, + 1658, 1657, 1657, 1659, 1657, 1660, 193, 193, + 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, + 1669, 1670, 193, 193, 193, 193, 193, 193, + + 1671, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + 1672, 1672, 1672, 1672, 1671, 1672, 1672, 1672, + + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + 1671, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + 1672, 1672, 1672, 1672, 1671, 1672, 1672, 1672, + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + 1671, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + 1672, 1672, 1672, 1672, 1671, 1672, 1672, 1672, + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + 1671, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + + 1672, 1672, 1672, 1672, 1671, 1672, 1672, 1672, + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, + + 1672, 1672, 1672, 1672, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + + 795, 795, 795, 795, 795, 795, 795, 193, + 193, 193, 193, 798, 798, 798, 798, 798, + 798, 798, 798, 798, 798, 798, 798, 798, + 798, 798, 798, 798, 798, 798, 798, 798, + + 798, 798, 798, 798, 798, 798, 798, 798, + 798, 798, 798, 798, 798, 798, 798, 798, + 798, 798, 798, 798, 798, 798, 798, 798, + 798, 798, 798, 798, 193, 193, 193, 193, + + 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, + 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, + 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, + 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, + + 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, + 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, + 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, + 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, + + 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, + 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, + 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, + 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, + + 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, + 1675, 1675, 1675, 1675, 1675, 1675, 1507, 1507, + 1675, 1507, 1675, 1507, 1507, 1675, 1675, 1675, + 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1507, + + 1675, 1507, 1675, 1507, 1507, 1675, 1675, 1507, + 1507, 1507, 1675, 1675, 1675, 1675, 1676, 1676, + 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, + 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, + + 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, + 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, + 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, + 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, + + 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, + 1677, 1677, 1677, 1678, 1678, 1678, 1506, 1506, + 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, + 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, + + 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, + 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, + 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, + 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, + + 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, + 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, + 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, + 1679, 1679, 1506, 1506, 1506, 1506, 1506, 1506, + + 1680, 1681, 1682, 1683, 1684, 1685, 1685, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 1686, 1687, 1688, 1689, 1690, + 193, 193, 193, 193, 193, 1691, 1692, 1693, + + 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, + 1694, 1695, 1693, 1693, 1693, 1693, 1693, 1693, + 1693, 1693, 1693, 1693, 1693, 1693, 1693, 287, + 1693, 1693, 1693, 1693, 1693, 287, 1693, 287, + + 1693, 1693, 287, 1693, 1693, 287, 1693, 1693, + 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1694, + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + 1696, 1696, 1697, 1697, 1697, 1697, 1697, 1697, + 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, + + 1697, 1697, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 1696, 1696, 1696, 1696, 1696, + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + 1696, 1696, 1696, 1696, 1696, 1696, 1193, 1457, + + 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + 319, 319, 1696, 1696, 1696, 1696, 1696, 1696, + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + 319, 319, 319, 319, 319, 319, 319, 319, + 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, + 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, + + 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, + 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + 1696, 1696, 1696, 1696, 1699, 1322, 319, 319, + + 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, + 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, + 1701, 1702, 1703, 1704, 1705, 1706, 1706, 1707, + 1708, 1709, 193, 193, 193, 193, 193, 193, + + 164, 164, 164, 164, 1050, 1050, 1050, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1710, 1711, 1711, 1712, 1712, 1713, 1714, 1713, + 1714, 1713, 1714, 1713, 1714, 1713, 1714, 1713, + + 1714, 1713, 1714, 1713, 1714, 1469, 1469, 1715, + 1716, 1710, 1710, 1710, 1710, 1712, 1712, 1712, + 1717, 1718, 1719, 193, 1720, 1721, 1722, 1722, + 1711, 1246, 1247, 1246, 1247, 1246, 1247, 1723, + + 1710, 1710, 1724, 1725, 1726, 1727, 1728, 193, + 1710, 1249, 1207, 1710, 193, 193, 193, 193, + 1696, 1696, 1696, 1729, 1696, 319, 1696, 1696, + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, + 1696, 1696, 1696, 1696, 1696, 319, 319, 1730, + + 193, 1722, 1710, 1723, 1249, 1207, 1710, 1731, + 1246, 1247, 1710, 1724, 1717, 1725, 1719, 1732, + 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, + 1741, 1742, 1721, 1720, 1743, 1728, 1744, 1722, + + 1710, 1745, 1745, 1745, 1745, 1745, 1745, 1745, + 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, + 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, + 1745, 1745, 1745, 1746, 1710, 1747, 1748, 1712, + + 1748, 1749, 1749, 1749, 1749, 1749, 1749, 1749, + 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, + 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, + 1749, 1749, 1749, 1746, 1728, 1747, 1728, 1750, + + 1751, 1752, 1246, 1247, 1753, 1754, 1755, 1756, + 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, + 1757, 1755, 1755, 1755, 1755, 1755, 1755, 1755, + 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, + + 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, + 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, + 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, + 1755, 1755, 1755, 1755, 1755, 1755, 1758, 1758, + + 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, + 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, + 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, + 1759, 1759, 1759, 1759, 1759, 1759, 1759, 193, + + 193, 193, 1759, 1759, 1759, 1759, 1759, 1759, + 193, 193, 1759, 1759, 1759, 1759, 1759, 1759, + 193, 193, 1759, 1759, 1759, 1759, 1759, 1759, + 193, 193, 1759, 1759, 1759, 193, 193, 193, + + 1760, 1249, 1728, 1748, 1465, 1249, 1249, 193, + 1266, 1245, 1245, 1245, 1245, 1266, 1266, 193, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1761, 1761, 1761, 1762, 51, 1763, 1763, + + 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, + 1764, 1764, 1764, 1764, 193, 1764, 1764, 1764, + 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, + 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, + + 1764, 1764, 1764, 1764, 1764, 1764, 1764, 193, + 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, + 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, + 1764, 1764, 1764, 193, 1764, 1764, 193, 1764, + + 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, + 1764, 1764, 1764, 1764, 1764, 1764, 193, 193, + 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, + 1764, 1764, 1764, 1764, 1764, 1764, 193, 193, + + 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, + 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, + 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, + 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, + + 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, + 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, + 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, + 1764, 1764, 1764, 193, 193, 193, 193, 193, + + 1765, 1766, 1765, 193, 193, 193, 193, 1767, + 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, + 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, + 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, + + 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, + 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, + 1767, 1767, 1767, 1767, 193, 193, 193, 1768, + 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, + + 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, + 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, + 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, + 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, + + 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, + 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, + 1769, 1769, 1769, 1769, 1769, 1770, 1770, 1770, + 1770, 1771, 1771, 1771, 1771, 1771, 1771, 1771, + + 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, + 1771, 1771, 1770, 193, 193, 193, 193, 193, + 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, + 1354, 1354, 1354, 1354, 193, 193, 193, 193, + + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, + 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, + + 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, + 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, + 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, + 1288, 1288, 1288, 1288, 1288, 1053, 193, 193, + + 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, + 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, + 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, + 1772, 1772, 1772, 1772, 1772, 193, 193, 193, + + 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, + 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, + 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, + 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, + + 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, + 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, + 1773, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, + 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, + 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, + 1774, 1774, 1774, 1774, 1774, 1774, 1774, 193, + + 1775, 1775, 1775, 1775, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, + 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, + + 1776, 1777, 1776, 1776, 1776, 1776, 1776, 1776, + 1776, 1776, 1777, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, + 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, + 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, + 1778, 1778, 1778, 1778, 1778, 1778, 193, 1779, + + 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, + 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, + 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, + 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, + + 1780, 1780, 1780, 1780, 193, 193, 193, 193, + 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, + 1781, 1782, 1782, 1782, 1782, 1782, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + + 1783, 1783, 1783, 1783, 1783, 1783, 1784, 1784, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + + 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, + 1785, 1785, 1785, 1785, 1785, 1785, 1786, 1786, + 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, + 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, + + 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, + 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, + 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, + 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, + + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, + 1788, 1788, 1788, 1788, 1788, 1788, 193, 193, + + 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, + 1797, 1798, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1799, 1799, 1799, 1799, 1799, 1799, 287, 287, + 1799, 287, 1799, 1799, 1799, 1799, 1799, 1799, + 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, + 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, + + 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, + 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, + 1799, 1799, 1799, 1799, 1799, 1799, 287, 1799, + 1799, 287, 287, 287, 1799, 287, 287, 1799, + + 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, + 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, + 1800, 1800, 1800, 1800, 1800, 1800, 287, 1801, + 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, + + 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, + 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, + 1803, 1803, 1803, 1803, 1803, 1803, 1804, 1804, + 1804, 1804, 1805, 1805, 287, 287, 287, 1806, + + 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, + 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, + 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, + 1807, 1807, 287, 287, 287, 287, 287, 1808, + + 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, + 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, + 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, + 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, + + 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, + 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, + 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, + 287, 287, 287, 287, 287, 287, 1810, 1810, + + 1811, 1812, 1812, 1812, 287, 1812, 1812, 287, + 287, 287, 287, 287, 1812, 1813, 1812, 1814, + 1811, 1811, 1811, 1811, 287, 1811, 1811, 1811, + 287, 1811, 1811, 1811, 1811, 1811, 1811, 1811, + + 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, + 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, + 1811, 1811, 1811, 1811, 287, 287, 287, 287, + 1814, 1815, 1813, 287, 287, 287, 287, 1816, + + 1817, 1818, 1819, 1820, 1821, 1821, 1821, 1821, + 287, 287, 287, 287, 287, 287, 287, 287, + 1822, 1822, 1822, 1822, 1822, 1822, 1823, 1823, + 1824, 287, 287, 287, 287, 287, 287, 287, + + 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, + 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, + 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, + 1825, 1825, 1825, 1825, 1825, 1826, 1826, 1827, + + 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, + 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, + 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, + 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, + + 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, + 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, + 1828, 1828, 1828, 1828, 1828, 1828, 287, 287, + 287, 1829, 1829, 1829, 1829, 1829, 1829, 1829, + + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 287, 287, + 1831, 1831, 1831, 1831, 1831, 1831, 1831, 1831, + + 1832, 1832, 1832, 1832, 1832, 1832, 1832, 1832, + 1832, 1832, 1832, 1832, 1832, 1832, 1832, 1832, + 1832, 1832, 1832, 287, 287, 287, 287, 287, + 1833, 1833, 1833, 1833, 1833, 1833, 1833, 1833, + + 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, + 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, + 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, + 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, + + 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, + 1834, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + + 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, + 1843, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, + 1844, 1844, 1844, 1844, 1844, 1844, 1844, 287, + + 1845, 1846, 1845, 1847, 1847, 1847, 1847, 1847, + 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, + 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, + 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, + 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, + 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, + 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, + 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, + 1846, 1846, 1846, 1846, 1846, 1846, 1848, 1849, + 1849, 1850, 1850, 1850, 1850, 1850, 193, 193, + 193, 193, 1851, 1852, 1853, 1854, 1855, 1856, + 1857, 1858, 1859, 1860, 1860, 1860, 1860, 1860, + 1860, 1860, 1860, 1860, 1860, 1860, 1861, 1862, + 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1871, 1871, 1872, 1873, 1873, 1873, 1873, 1873, + 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, + 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, + 1873, 1873, 1874, 1873, 1874, 1873, 1873, 1873, + 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, + 1873, 1873, 1873, 1874, 1873, 1873, 1873, 1873, + 1872, 1872, 1872, 1871, 1871, 1871, 1871, 1872, + 1872, 1875, 1876, 1877, 1877, 1878, 1879, 1879, + 1879, 1879, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, + 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, + 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, + 1880, 193, 193, 193, 193, 193, 193, 193, + 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, + 1889, 1890, 193, 193, 193, 193, 193, 193, + + 1891, 1891, 1891, 1892, 1892, 1892, 1892, 1892, + 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, + 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, + 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, + 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1893, + 1894, 1894, 1894, 1894, 1895, 1894, 1896, 1896, + 1894, 1894, 1894, 1897, 1897, 193, 1898, 1899, + 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, + 1908, 1909, 1909, 1909, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1910, 1910, 1911, 1912, 1912, 1912, 1912, 1912, + 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, + 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, + 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, + 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, + 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, + 1912, 1912, 1912, 1911, 1911, 1911, 1910, 1910, + 1910, 1910, 1910, 1910, 1910, 1910, 1910, 1911, + 1913, 1912, 1912, 1912, 1912, 1914, 1914, 1915, + 1916, 193, 193, 193, 193, 193, 193, 193, + 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, + 1925, 1926, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, + 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, + 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, + 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, + 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, + 1927, 1927, 1927, 1928, 1929, 1928, 1929, 1929, + 1928, 1928, 1928, 1928, 1928, 1928, 1930, 1931, + 193, 193, 193, 193, 193, 193, 193, 193, + 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, + 1940, 1941, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, + 1942, 1942, 1942, 1942, 1942, 1942, 1942, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, + 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, + 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, + 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, + 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, + 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, + 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, + 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, + 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, + 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, + 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, + 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, + 1943, 1943, 1943, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1944, 1944, 1944, 1944, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1946, 1946, 1946, 1947, 1947, 1947, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1947, 1945, 1945, 1945, 1946, 1947, + 1946, 1947, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1946, 1947, 1947, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, + 1945, 1945, 1945, 1945, 1945, 1945, 1945, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, + 1948, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, + 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, + 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, + 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, + 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, + 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, + 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, + 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, + 1949, 1949, 1949, 1949, 1949, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1949, 1950, 1950, 1950, 1950, 1950, 1950, 1950, + 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, + 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, + 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, + 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, + 1950, 1950, 1950, 1950, 1950, 1950, 1950, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 1951, + 1951, 1951, 1951, 1952, 1952, 1952, 1952, 1952, + 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1953, 1954, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 193, + 193, 1288, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1956, 1956, + 1956, 1956, 1956, 1956, 1956, 1957, 1958, 1959, + 1959, 1959, 1955, 1955, 1955, 1960, 1957, 1957, + 1957, 1957, 1957, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1962, 1962, 1962, 1962, 1962, + 1962, 1962, 1962, 1955, 1955, 1963, 1963, 1963, + 1963, 1963, 1962, 1962, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1963, 1963, 1963, 1963, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1956, 1956, 1956, 1956, 1956, + 1956, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, + 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, + 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, + 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, + 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, + 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, + 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, + 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, + 1771, 1771, 1964, 1964, 1964, 1771, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, + 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, + 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, + 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, + 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, + 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, + 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, + 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, + 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, + 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, + 1322, 1322, 1322, 1322, 1322, 1322, 1322, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, + 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, + 1965, 1965, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 193, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1966, 193, 1966, 1966, + 193, 193, 1966, 193, 193, 1966, 1966, 193, + 193, 1966, 1966, 1966, 1966, 193, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1967, 1967, + 1967, 1967, 193, 1967, 193, 1967, 1967, 1967, + 1967, 1968, 1967, 1967, 193, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + + 1967, 1967, 1967, 1967, 1966, 1966, 193, 1966, + 1966, 1966, 1966, 193, 193, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 193, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 193, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1966, 1966, 193, 1966, 1966, 1966, 1966, 193, + 1966, 1966, 1966, 1966, 1966, 193, 1966, 193, + 193, 193, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 193, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1280, 1280, 193, 193, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1969, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1970, 1967, 1967, 1967, 1967, + 1967, 1967, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1969, 1967, 1967, 1967, 1967, + + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1970, 1967, 1967, + 1967, 1967, 1967, 1967, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1969, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1970, + 1967, 1967, 1967, 1967, 1967, 1967, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1969, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1970, 1967, 1967, 1967, 1967, 1967, 1967, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, + 1966, 1969, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, + 1967, 1967, 1967, 1970, 1967, 1967, 1967, 1967, + 1967, 1967, 1971, 1972, 193, 193, 1973, 1974, + 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, + 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, + 1981, 1982, 1973, 1974, 1975, 1976, 1977, 1978, + 1979, 1980, 1981, 1982, 1973, 1974, 1975, 1976, + 1977, 1978, 1979, 1980, 1981, 1982, 1973, 1974, + 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, + + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, + + 1983, 1983, 1983, 1983, 319, 1983, 1983, 1983, + 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, + 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, + 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, + 319, 1983, 1983, 319, 1983, 319, 319, 1983, + 319, 1983, 1983, 1983, 1983, 1983, 1983, 1983, + 1983, 1983, 1983, 319, 1983, 1983, 1983, 1983, + 319, 1983, 319, 1983, 319, 319, 319, 319, + 319, 319, 1983, 319, 319, 319, 319, 1983, + 319, 1983, 319, 1983, 319, 1983, 1983, 1983, + 319, 1983, 1983, 319, 1983, 319, 319, 1983, + 319, 1983, 319, 1983, 319, 1983, 319, 1983, + 319, 1983, 1983, 319, 1983, 319, 319, 1983, + 1983, 1983, 1983, 319, 1983, 1983, 1983, 1983, + 1983, 1983, 1983, 319, 1983, 1983, 1983, 1983, + 319, 1983, 1983, 1983, 1983, 319, 1983, 319, + 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, + 1983, 1983, 319, 1983, 1983, 1983, 1983, 1983, + 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, + 1983, 1983, 1983, 1983, 319, 319, 319, 319, + 319, 1983, 1983, 1983, 319, 1983, 1983, 1983, + 1983, 1983, 319, 1983, 1983, 1983, 1983, 1983, + 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, + 1983, 1983, 1983, 1983, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, + 1984, 1984, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, + + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, 1357, 1357, 1357, 193, 193, 193, 193, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, 1357, 1357, 1357, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 193, + 193, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 193, + 193, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 193, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1985, 1985, 1986, 1987, 1988, 1989, 1990, 1991, + 1992, 1993, 1994, 193, 193, 193, 193, 193, + 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, + 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, + 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, + 1995, 1995, 1995, 1995, 1995, 1995, 1995, 193, + 1996, 1995, 1996, 1996, 1996, 1996, 1996, 1996, + 1996, 1996, 1996, 1996, 1996, 1995, 1996, 1995, + 1996, 1996, 1995, 1996, 1996, 1996, 1995, 1996, + 1996, 1996, 1995, 1995, 1995, 1995, 1995, 1996, + 1997, 1997, 1997, 1997, 1997, 1997, 1997, 742, + 1997, 1997, 1997, 1997, 1997, 1997, 1997, 742, + 1997, 1997, 1997, 1997, 1997, 1997, 1997, 1997, + 1997, 1997, 1998, 1998, 193, 193, 193, 193, + 1997, 1997, 1997, 1997, 1997, 1997, 1997, 1997, + 1997, 742, 1997, 742, 742, 1997, 1997, 742, + 1997, 1997, 1997, 1997, 1997, 1997, 1997, 1997, + 1997, 1997, 742, 742, 742, 742, 1997, 1997, + 1995, 1997, 1997, 1997, 1997, 1997, 1997, 1997, + 1997, 1997, 1997, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 1999, 1999, + 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, + 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, + 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, + + 2000, 2001, 2001, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, + 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, + 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, + 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, + 1499, 1499, 2001, 2001, 2001, 2001, 2001, 2001, + 2001, 2001, 2001, 193, 193, 193, 193, 193, + 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, + 1499, 193, 193, 193, 193, 193, 193, 193, + 2001, 2001, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1326, 1326, 1326, 1326, 1326, 1326, 193, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 193, 193, 193, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1325, 1325, 1326, + 1326, 1326, 1326, 1326, 1325, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 193, 1326, 1326, + 1326, 1326, 1326, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 193, + 1326, 193, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1325, 1326, 1325, 1326, 1325, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1325, + 1326, 1325, 1325, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 193, 1326, 1326, 1326, 1326, 193, 193, 193, + + 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1325, + 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, + 1325, 1325, 1325, 1325, 1325, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1325, 1325, 1325, 1325, 1325, 1325, + 1325, 1325, 1325, 1325, 1325, 1325, 193, 193, + 2002, 2002, 2002, 2002, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 1326, 1326, 1326, 1326, 1326, + + 2003, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 2003, 1326, 1326, 1326, 2003, 1326, 2003, + 1326, 2003, 1326, 2003, 1326, 1326, 1326, 2003, + 1326, 1326, 1326, 1326, 1326, 1326, 2003, 2003, + 1326, 1326, 1326, 1326, 2003, 1326, 2003, 2003, + 1326, 1326, 1326, 1326, 2003, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 193, 193, 193, 193, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, + 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, + 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, + 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, + 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, + 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, + 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, + 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, + 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, + 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, + 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, + 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, + 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, + 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, + 1325, 1325, 1325, 1325, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 2004, 2004, + + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, + 2005, 2005, 2005, 2005, 2005, 2005, 2005, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1510, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, + 2006, 2006, 2006, 2006, 2006, 2006, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, + 2007, 2007, 2007, 2007, 2007, 2007, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, + 1506, 1506, 1506, 1506, 1506, 1506, 2004, 2004, + + 1230, 1961, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + 2009, 2009, 2009, 2009, 2009, 2009, 2004, 2004, +}; + +#define GET_PROP_INDEX(ucs4) \ + (ucs4 < 0x11000 \ + ? (uc_property_trie[uc_property_trie[ucs4>>5] + (ucs4 & 0x1f)]) \ + : (uc_property_trie[uc_property_trie[((ucs4 - 0x11000)>>8) + 0x880] + (ucs4 & 0xff)])) + +#define GET_PROP_INDEX_UCS2(ucs2) \ + (uc_property_trie[uc_property_trie[ucs2>>5] + (ucs2 & 0x1f)]) + +static const Properties uc_properties[] = { + { 9, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 21, 2 }, + { 9, 8, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 5, 17, 2 }, + { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 2, 2, 34, 2 }, + { 9, 8, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 3, 5, 35, 2 }, + { 9, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 3, 5, 35, 2 }, + { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 33, 2 }, + { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 21, 2 }, + { 9, 8, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 21, 2 }, + { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 32, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 6, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 10, 13, 3, 2 }, + { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 9, 2 }, + { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 9, 13, 3, 2 }, + { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 2, 2 }, + { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 9, 2 }, + { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 11, 8, 2 }, + { 20, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 11, 16, 2 }, + { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 10, 8, 2 }, + { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 7, 2 }, + { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 11, 8, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 0, 8, 2 }, + { 26, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 }, + { 21, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 0, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 9, 2 }, + { 22, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 2, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 19, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 15, 0, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 17, 2 }, + { 22, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 1, 2 }, + { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 3, 3, 35, 2 }, + { 6, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 5, 4, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 3 }, + { 23, 10, 0, 0, -1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 3, 2 }, + { 10, 18, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 4, 4, 17, 2 }, + { 29, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10, 2 }, + { 26, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 9, 2 }, + { 5, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 18, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 743, 743, 775, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 0, 12, 2 }, + { 5, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 24, 10, 0, 0, -1, -16, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 3, 2 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 16, 13, 0, 0, 1, 1, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 121, 121, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 19, 0, 0, 0, 1, 0, 0, 0, 1, 17, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -232, -232, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 80, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 98, 98, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -121, 0, 0, -121, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -300, -300, -268, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 195, 195, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 210, 0, 0, 210, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 206, 0, 0, 206, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 205, 0, 0, 205, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 79, 0, 0, 79, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 202, 0, 0, 202, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 203, 0, 0, 203, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 207, 0, 0, 207, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 97, 97, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 211, 0, 0, 211, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 209, 0, 0, 209, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 163, 163, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 213, 0, 0, 213, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 130, 130, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 214, 0, 0, 214, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 218, 0, 0, 218, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 217, 0, 0, 217, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 219, 0, 0, 219, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 56, 56, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 2, 0, 1, 2, 0, 0, 0, 0, 1, 80, 0, 8, 7, 12, 3 }, + { 16, 0, 0, 0, -1, 0, 1, -1, 0, 1, 0, 0, 0, 0, 1, 80, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -2, -1, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -79, -79, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 109, 109, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -97, 0, 0, -97, 0, 0, 0, 0, 4, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -56, 0, 0, -56, 0, 0, 0, 0, 4, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 4, 17, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 17, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 4, 0, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 0, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -130, 0, 0, -130, 0, 0, 0, 0, 6, 0, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 10795, 0, 0, 10795, 0, 0, 0, 0, 8, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 8, 0, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -163, 0, 0, -163, 0, 0, 0, 0, 8, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 10792, 0, 0, 10792, 0, 0, 0, 0, 8, 0, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 10815, 10815, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 9, 0, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -195, 0, 0, -195, 0, 0, 0, 0, 9, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 69, 0, 0, 69, 0, 0, 0, 0, 9, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 71, 0, 0, 71, 0, 0, 0, 0, 9, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 9, 0, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 10783, 10783, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 10780, 10780, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 10782, 10782, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -210, -210, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -206, -206, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -205, -205, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -202, -202, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -203, -203, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -207, -207, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 3, 3, 0, 0, 1, 1, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -209, -209, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -211, -211, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 10743, 10743, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 10749, 10749, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -213, -213, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -214, -214, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 10727, 10727, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -218, -218, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -69, -69, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -217, -217, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -71, -71, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -219, -219, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 6, 12, 3 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 3 }, + { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 2 }, + { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 18, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 0, 12, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 18, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 36 }, + { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 12, 2 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 204, 4, 4, 4, 21, 1 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 232, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 216, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 204, 4, 4, 4, 21, 1 }, + { 0, 17, 202, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 204, 4, 4, 4, 21, 1 }, + { 0, 17, 202, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 204, 4, 4, 4, 21, 1 }, + { 0, 17, 1, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 1, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 204, 4, 4, 4, 21, 1 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 4, 4, 4, 21, 1 }, + { 0, 17, 240, 5, -1, 0, 0, 84, 84, 116, 0, 0, 0, 0, 1, 204, 4, 4, 4, 21, 1 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 4, 4, 4, 4, 1 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 232, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 233, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 4, 1 }, + { 0, 17, 234, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 4, 4, 4, 4, 1 }, + { 0, 17, 233, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 4, 4, 4, 4, 1 }, + { 0, 17, 234, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 4, 1 }, + { 0, 17, 233, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 4, 1 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 4, 4, 4, 21, 1 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 10, 0, 0, 8, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 10, 0, 0, 8, 6, 12, 4 }, + { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 8, 8, 12, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 4 }, + { 13, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 130, 130, 0, 0, 0, 0, 0, 9, 0, 0, 8, 6, 12, 4 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 13, 0, 8, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 4 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 81, 0, 0, 0, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 38, 0, 0, 38, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 12, 0, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 37, 0, 0, 37, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 64, 0, 0, 64, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 63, 0, 0, 63, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 101, 101, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -38, -38, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -37, -37, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 105, 105, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -31, -31, 1, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -64, -64, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -63, -63, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 8, 0, 0, 8, 0, 0, 0, 0, 10, 0, 0, 8, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -62, -62, -30, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -57, -57, -25, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 8, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 81, 0, 8, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -47, -47, -15, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -54, -54, -22, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -8, -8, 0, 0, 0, 0, 0, 4, 0, 0, 8, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 0, 8, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 6, 0, 0, 8, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 0, 0, 8, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 46 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 46 }, + { 15, 0, 0, 0, -1, 0, 0, -86, -86, -54, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -80, -80, -48, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 7, 7, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -60, 0, 0, -60, 0, 0, 0, 0, 5, 80, 0, 8, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -96, -96, -64, 0, 0, 0, 0, 5, 80, 0, 8, 6, 12, 4 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 7, 0, 0, 8, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 7, 0, 0, 8, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -7, 0, 0, -7, 0, 0, 0, 0, 7, 80, 0, 8, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -130, 0, 0, -130, 0, 0, 0, 0, 8, 0, 0, 8, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, 80, 0, 0, 80, 0, 0, 0, 0, 4, 17, 0, 8, 7, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 80, 0, 0, 80, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 80, 0, 0, 80, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -80, -80, 0, 0, 0, 0, 0, 4, 17, 0, 8, 6, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -80, -80, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -80, -80, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 5 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 5 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 5 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 5 }, + { 2, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 5 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 0, 8, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 6, 0, 0, 8, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 4, 0, 0, 8, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 0, 0, 8, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 15, 0, 0, 15, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -15, -15, 0, 0, 0, 0, 0, 9, 0, 0, 8, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 4, 17, 0, 8, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 17, 0, 8, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 8, 0, 0, 8, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 9, 0, 0, 8, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 9, 0, 0, 8, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 10, 0, 0, 8, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 10, 0, 0, 8, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 11, 0, 0, 8, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 11, 0, 0, 8, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 12, 0, 0, 8, 7, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 12, 0, 0, 8, 6, 12, 5 }, + { 14, 0, 0, 0, -1, 0, 48, 0, 0, 48, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 6 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 6 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 6 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 12, 6 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 11, 12, 6 }, + { 15, 0, 0, 0, -1, 0, 0, -48, -48, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 6 }, + { 15, 0, 0, 0, -1, 0, 0, 65, 62, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 6 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 12, 8, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 17, 6 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 9, 6 }, + { 13, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 222, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 228, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 10, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 11, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 12, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 13, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 14, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 15, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 16, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 17, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 18, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 19, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 19, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 20, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 21, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 22, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 7 }, + { 20, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 17, 7 }, + { 0, 17, 23, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 7 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 7 }, + { 0, 17, 24, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 7 }, + { 0, 17, 25, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 7 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 6, 7 }, + { 0, 17, 18, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 7 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 7, 8, 13, 7 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 7 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 0, 12, 7 }, + { 10, 5, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 3, 4, 4, 12, 8 }, + { 10, 5, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 3, 4, 4, 12, 8 }, + { 13, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 8 }, + { 26, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 8 }, + { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 10, 8 }, + { 27, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 10, 8 }, + { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 13, 11, 8, 8 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 12, 8 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 4, 4, 4, 21, 8 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 8 }, + { 0, 17, 30, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 8 }, + { 0, 17, 31, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 8 }, + { 0, 17, 32, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 8 }, + { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 6, 2 }, + { 10, 13, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 3, 4, 4, 21, 8 }, + { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 6, 8 }, + { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 6, 2 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 8, 12, 8 }, + { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 8 }, + { 18, 13, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 0, 8, 8, 12, 8 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 0, 8, 8, 12, 8 }, + { 18, 13, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 8 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 8 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 8 }, + { 17, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 2 }, + { 0, 17, 27, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 28, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 29, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 30, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 31, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 32, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 33, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 34, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 204, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 204, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 4, 4, 4, 21, 8 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 8 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 8 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 4, 4, 4, 21, 8 }, + { 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 3, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 3, 5, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 3, 5, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 3, 5, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 3, 5, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 3, 5, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 3, 5, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 3, 5, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 3, 5, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 2 }, + { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10, 8 }, + { 25, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 8 }, + { 25, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 9, 11, 8 }, + { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 8 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 8, 12, 8 }, + { 0, 17, 35, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 18, 13, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 8, 8, 12, 8 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 8, 8, 12, 8 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 8 }, + { 18, 13, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 8 }, + { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 6, 8 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 8 }, + { 10, 5, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 4, 4, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 8 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 8 }, + { 17, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 8 }, + { 18, 13, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 8 }, + { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 8 }, + { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 8 }, + { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 8 }, + { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 8 }, + { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 8 }, + { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 8 }, + { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 8 }, + { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 8 }, + { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 8 }, + { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 8 }, + { 29, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 8 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 8 }, + { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 12, 9 }, + { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 9 }, + { 10, 13, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 3, 4, 4, 12, 9 }, + { 18, 13, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 9 }, + { 0, 17, 36, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 9 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 9 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 9 }, + { 18, 13, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 9 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 9 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 9 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 8 }, + { 18, 13, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 8 }, + { 18, 13, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 8 }, + { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 10 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 10 }, + { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 8, 12, 10 }, + { 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 66 }, + { 3, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 66 }, + { 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 66 }, + { 3, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 66 }, + { 3, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 66 }, + { 3, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 66 }, + { 3, 1, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 66 }, + { 3, 1, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 66 }, + { 3, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 66 }, + { 3, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 66 }, + { 18, 1, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 66 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 4, 4, 4, 21, 66 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 4, 4, 4, 21, 66 }, + { 17, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 66 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 12, 66 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 12, 66 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 13, 11, 8, 66 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 6, 66 }, + { 17, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 66 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 82 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 82 }, + { 17, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 82 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 82 }, + { 18, 1, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 8, 12, 95 }, + { 18, 1, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 8, 12, 95 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 8, 12, 95 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 4, 4, 4, 21, 95 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 95 }, + { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 8 }, + { 18, 13, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 8 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 8 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 8 }, + { 0, 17, 27, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 8 }, + { 0, 17, 28, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 8 }, + { 0, 17, 29, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 8 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 11 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 11 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 4, 4, 21, 11 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 11 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 11 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 0, 8, 8, 12, 11 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 4, 4, 4, 21, 11 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 4, 4, 21, 11 }, + { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 204, 4, 4, 4, 21, 11 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 11 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 4, 4, 21, 11 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 11 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 8, 8, 12, 11 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 17, 11 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 11 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 11 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 11 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 11 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 11 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 11 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 11 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 11 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 11 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 11 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 11 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 11 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 11 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 8, 12, 11 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 11 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 11 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 11 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 12 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 4, 4, 21, 12 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 12 }, + { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 12 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 12 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 204, 4, 4, 4, 21, 12 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 7, 4, 4, 21, 12 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 12 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 12 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 8, 8, 12, 12 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 12 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 12 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 12 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 12 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 12 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 12 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 12 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 12 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 12 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 12 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10, 12 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 12 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10, 12 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 12 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 9, 12 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 4, 4, 4, 21, 13 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 13 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 4, 4, 21, 13 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 13 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 8, 8, 12, 13 }, + { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 13 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 4, 4, 21, 13 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 13 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 13 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 13 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 13 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 13 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 13 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 13 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 13 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 13 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 13 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 13 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 13 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 14 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 4, 4, 21, 14 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 14 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 14 }, + { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 14 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 14 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 4, 4, 4, 21, 14 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 14 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 14 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 14 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 14 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 14 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 14 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 14 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 14 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 14 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 14 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 12, 14 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 9, 14 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 15 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 4, 4, 21, 15 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 15 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 15 }, + { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 15 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 204, 4, 4, 4, 21, 15 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 15 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 7, 4, 4, 21, 15 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 15 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 204, 4, 4, 4, 21, 15 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 8, 8, 12, 15 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 15 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 15 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 15 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 15 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 15 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 15 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 15 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 15 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 15 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 15 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 15 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 15 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 16 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 16 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 0, 8, 8, 12, 16 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 16 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 204, 4, 4, 4, 21, 16 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 4, 4, 21, 16 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 7, 4, 4, 21, 16 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 16 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 16 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 14, 9, 11, 16 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 16 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 16 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 16 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 16 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 16 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 16 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 16 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 16 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 16 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 16 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 12, 16 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 9, 16 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 4, 4, 21, 17 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 17 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 17 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 17 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 4, 4, 21, 17 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 17 }, + { 0, 17, 84, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 17 }, + { 0, 17, 91, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 204, 4, 4, 4, 21, 17 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 17 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 17 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 17 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 17 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 17 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 17 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 17 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 17 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 17 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 17 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 17 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 17 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 17 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 4, 4, 21, 18 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 18 }, + { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 4, 4, 4, 21, 18 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 18 }, + { 0, 0, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 18 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 7, 4, 4, 21, 18 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 204, 4, 4, 4, 21, 18 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 18 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 18 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 4, 4, 4, 21, 18 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 18 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 18 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 18 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 18 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 18 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 18 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 18 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 18 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 18 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 18 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 18 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 4, 4, 21, 19 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 19 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 8, 12, 19 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 19 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 204, 4, 4, 4, 21, 19 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 19 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 19 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 7, 4, 4, 21, 19 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 19 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 19 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 19 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 19 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 19 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 19 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 19 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 19 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 19 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 19 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 19 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 19 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 10, 19 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 4, 4, 21, 20 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 20 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 204, 4, 4, 4, 21, 20 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 204, 4, 4, 4, 21, 20 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 20 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 17, 7, 4, 4, 21, 20 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 20 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 30, 21 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 30, 21 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 7, 0, 8, 30, 21 }, + { 0, 17, 103, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 30, 21 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 30, 21 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 30, 21 }, + { 0, 17, 107, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 30, 21 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 21 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 21 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 21 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 21 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 21 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 21 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 21 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 21 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 21 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 21 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 21 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 17, 21 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 30, 22 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 30, 22 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 7, 0, 8, 30, 22 }, + { 0, 17, 118, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 30, 22 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 30, 22 }, + { 0, 17, 122, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 30, 22 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 22 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 22 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 22 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 22 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 22 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 22 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 22 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 22 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 22 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 22 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 8, 30, 22 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 8, 30, 22 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 8, 8, 12, 23 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 18, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 18, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 12, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 17, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 80, 0, 0, 0, 4, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 6, 23 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 12, 23 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 4, 4, 21, 23 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 14, 9, 11, 23 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 14, 9, 11, 23 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 14, 9, 11, 23 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 14, 9, 11, 23 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 14, 9, 11, 23 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 14, 9, 11, 23 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 14, 9, 11, 23 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 14, 9, 11, 23 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 14, 9, 11, 23 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 14, 9, 11, 23 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 12, 23 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 17, 23 }, + { 0, 17, 216, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 4, 4, 21, 23 }, + { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 13, 0, 23 }, + { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 13, 1, 23 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 7, 4, 4, 21, 23 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 85, 0, 8, 8, 12, 23 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 23 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 23 }, + { 0, 17, 129, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 4, 4, 21, 23 }, + { 0, 17, 130, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 4, 4, 21, 23 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 85, 4, 4, 4, 21, 23 }, + { 0, 17, 132, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 4, 4, 21, 23 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 80, 4, 4, 4, 21, 23 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 4, 4, 21, 23 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 7, 4, 4, 17, 23 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 4, 4, 21, 23 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 4, 4, 21, 23 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 8, 12, 23 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 4, 4, 4, 21, 23 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 23 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 17, 23 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 23 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 23 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 18, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 17, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 18, 23 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 23 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 2 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 4, 23 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 8, 30, 24 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 8, 30, 24 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 17, 0, 0, 8, 30, 24 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 4, 4, 30, 24 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 4, 4, 30, 24 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 30, 24 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 204, 4, 4, 4, 30, 24 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 4, 4, 30, 24 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 30, 24 }, + { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 30, 24 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 30, 24 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 30, 24 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 4, 4, 30, 24 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 24 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 24 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 24 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 24 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 24 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 24 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 24 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 24 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 24 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 24 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 17, 24 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 24 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 30, 24 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 24 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 24 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 24 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 24 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 24 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 24 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 24 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 24 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 24 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 24 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 4, 4, 30, 24 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 30, 24 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 30, 24 }, + { 14, 0, 0, 0, -1, 0, 7264, 0, 0, 7264, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 25 }, + { 14, 0, 0, 0, -1, 0, 7264, 0, 0, 7264, 0, 0, 0, 0, 13, 0, 0, 8, 7, 12, 25 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 25 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 8, 12, 25 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 25 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 8, 8, 12, 25 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 25 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 8, 8, 25, 26 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 8, 8, 8, 25, 26 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 8, 8, 26, 26 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 204, 9, 8, 8, 26, 26 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 9, 8, 8, 26, 26 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 204, 10, 8, 8, 27, 26 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 8, 8, 27, 26 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 10, 8, 8, 27, 26 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 27 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 27 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 4, 4, 4, 21, 27 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 27 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 27 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 17, 27 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 12, 27 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 27 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 27 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 27 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 28 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 17, 29 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 29 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 29 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 12, 29 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 29 }, + { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 17, 30 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 30 }, + { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 13, 0, 30 }, + { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 13, 1, 30 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 31 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 17, 2 }, + { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 31 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 8, 12, 42 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 4, 4, 4, 21, 42 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 4, 4, 4, 21, 42 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 8, 12, 43 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 4, 4, 4, 21, 43 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 4, 4, 4, 21, 43 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 17, 2 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 8, 12, 44 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 4, 4, 4, 21, 44 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 8, 12, 45 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 4, 4, 4, 21, 45 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 8, 30, 32 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 30, 32 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 4, 4, 30, 32 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 30, 32 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 17, 32 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 5, 32 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 8, 30, 32 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 32 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 9, 32 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 4, 4, 4, 30, 32 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 32 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 32 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 32 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 32 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 32 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 32 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 32 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 32 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 32 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 32 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 12, 32 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 33 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 11, 6, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 6, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 17, 33 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 17, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 18, 33 }, + { 25, 10, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 33 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 11, 6, 33 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 6, 33 }, + { 25, 10, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 33 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 33 }, + { 10, 18, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 3, 4, 4, 4, 33 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 33 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 33 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 33 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 33 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 33 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 33 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 33 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 33 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 33 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 14, 9, 11, 33 }, + { 18, 0, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 33 }, + { 17, 0, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 33 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 33 }, + { 0, 17, 228, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 33 }, + { 18, 0, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 33 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 47 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 4, 4, 4, 21, 47 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 4, 4, 21, 47 }, + { 0, 17, 222, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 4, 4, 4, 21, 47 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 4, 4, 4, 21, 47 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 4, 4, 4, 21, 47 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 12, 47 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 6, 47 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 47 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 47 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 47 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 47 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 47 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 47 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 47 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 47 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 47 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 47 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 8, 30, 48 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 30, 56 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 8, 30, 56 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 4, 4, 30, 56 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 4, 4, 30, 56 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 14, 9, 11, 56 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 14, 9, 11, 56 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 14, 9, 11, 56 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 14, 9, 11, 56 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 14, 9, 11, 56 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 14, 9, 11, 56 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 14, 9, 11, 56 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 14, 9, 11, 56 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 14, 9, 11, 56 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 14, 9, 11, 56 }, + { 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 30, 56 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 30, 56 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 12, 32 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 55 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 55 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 55 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 4, 4, 21, 55 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 55 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 55 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 8, 30, 78 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 4, 4, 30, 78 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 30, 78 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 30, 78 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 4, 4, 30, 78 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 30, 78 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 78 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 78 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 78 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 78 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 78 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 78 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 78 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 78 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 78 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 78 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 78 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 30, 78 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 8, 30, 78 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 30, 78 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 4, 4, 4, 21, 62 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 4, 4, 21, 62 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 62 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 17, 0, 8, 8, 12, 62 }, + { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 4, 4, 4, 21, 62 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 204, 7, 4, 4, 21, 62 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 17, 7, 4, 4, 21, 62 }, + { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 4, 4, 21, 62 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 62 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 62 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 62 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 62 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 62 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 62 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 62 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 62 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 62 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 14, 9, 11, 62 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 17, 62 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 12, 62 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 17, 62 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 12, 62 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 4, 4, 4, 21, 62 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 4, 4, 4, 21, 62 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 67 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 4, 4, 21, 67 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 67 }, + { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 4, 4, 21, 67 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 67 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 4, 4, 21, 67 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 67 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 67 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 67 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 67 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 67 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 67 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 67 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 67 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 67 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 67 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 67 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 8, 12, 93 }, + { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 4, 4, 4, 21, 93 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 4, 4, 21, 93 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 4, 4, 4, 21, 93 }, + { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 4, 4, 21, 93 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 93 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 68 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 4, 4, 21, 68 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 68 }, + { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 68 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 17, 68 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 17, 68 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 68 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 68 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 68 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 68 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 68 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 68 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 68 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 68 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 68 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 68 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 69 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 69 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 69 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 69 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 69 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 69 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 69 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 69 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 69 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 69 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 69 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 69 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 17, 69 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 12, 67 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 1 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 2 }, + { 0, 17, 1, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 1 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 4, 4, 21, 2 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 2 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 4, 4, 21, 2 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 1 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 6, 12, 5 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 80, 0, 8, 6, 12, 3 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 6, 12, 3 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 80, 0, 8, 6, 12, 4 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 8, 6, 12, 5 }, + { 15, 0, 0, 0, -1, 0, 0, 5, 5, 0, 0, 1, 1, 0, 8, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 3814, 3814, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 3 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 8, 6, 12, 3 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 8, 6, 12, 4 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 234, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 214, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 202, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 233, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 4, 4, 4, 21, 1 }, + { 15, 0, 0, 0, -1, 0, 0, 112, 112, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 115, 115, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 118, 118, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 121, 121, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 124, 124, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -59, -59, -58, 0, 0, 0, 0, 2, 81, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -7615, 0, 0, -7615, 0, 0, 0, 0, 10, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 10, 0, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 10, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 8, 8, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -8, 0, 0, -8, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 127, 127, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 130, 130, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 134, 134, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 138, 138, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 74, 74, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 74, 74, 0, 0, 0, 0, 0, 1, 85, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 86, 86, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 86, 86, 0, 0, 0, 0, 0, 1, 85, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 100, 100, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 100, 100, 0, 0, 0, 0, 0, 1, 85, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 128, 128, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 128, 128, 0, 0, 0, 0, 0, 1, 85, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 112, 112, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 112, 112, 0, 0, 0, 0, 0, 1, 85, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 126, 126, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 126, 126, 0, 0, 0, 0, 0, 1, 85, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 176, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 179, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 182, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 185, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 188, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 191, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 194, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 197, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 176, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 179, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 182, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 185, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 188, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 191, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 194, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 197, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 200, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 203, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 206, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 209, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 212, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 215, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 218, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 221, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 200, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 203, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 206, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 209, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 212, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 215, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 218, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 221, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 224, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 227, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 230, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 233, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 236, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 239, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 242, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 245, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 224, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 227, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 230, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 233, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 236, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 239, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 242, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -8, 245, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 260, 257, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 248, 9, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 266, 263, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 142, 142, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 297, 293, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -74, 0, 0, -74, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -74, 0, 0, -74, 0, 0, 0, 0, 1, 85, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -9, 248, 0, -9, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, -7205, -7205, -7173, 0, 0, 0, 0, 1, 85, 0, 8, 6, 12, 4 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 81, 0, 0, 0, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 272, 269, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 251, 9, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 278, 275, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 145, 145, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 305, 301, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -86, 0, 0, -86, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -86, 0, 0, -86, 0, 0, 0, 0, 1, 85, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -9, 251, 0, -9, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 148, 148, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 101, 101, 0, 0, 1, 1, 0, 1, 85, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 152, 152, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 155, 155, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -100, 0, 0, -100, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -100, 0, 0, -100, 0, 0, 0, 0, 1, 85, 0, 8, 7, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 159, 159, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 105, 105, 0, 0, 1, 1, 0, 1, 85, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 163, 163, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 7, 7, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 166, 166, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 169, 169, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -112, 0, 0, -112, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -112, 0, 0, -112, 0, 0, 0, 0, 1, 85, 0, 8, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -7, 0, 0, -7, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 0, 0, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 284, 281, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 254, 9, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 290, 287, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 173, 173, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 15, 0, 0, 0, -1, 0, 0, 313, 309, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -128, 0, 0, -128, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -128, 0, 0, -128, 0, 0, 0, 0, 1, 85, 0, 8, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -126, 0, 0, -126, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -126, 0, 0, -126, 0, 0, 0, 0, 1, 85, 0, 8, 7, 12, 4 }, + { 16, 0, 0, 0, -1, 0, -9, 254, 0, -9, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 0, 0, 18, 4 }, + { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 0, 5, 17, 2 }, + { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 5, 17, 2 }, + { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 5, 4, 2 }, + { 10, 18, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 4, 20, 2 }, + { 10, 18, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 10, 18, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 10, 0, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 4, 4, 21, 2 }, + { 10, 1, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 4, 4, 21, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 17, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 4, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 11, 17, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 11, 19, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 23, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 13, 3, 2 }, + { 24, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 13, 3, 2 }, + { 21, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 0, 2 }, + { 23, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 3, 2 }, + { 24, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 3, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 11, 10, 15, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 15, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 0, 17, 2 }, + { 7, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 3, 3, 35, 2 }, + { 8, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 3, 3, 35, 2 }, + { 10, 11, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 4, 4, 21, 2 }, + { 10, 14, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 4, 4, 21, 2 }, + { 10, 16, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 4, 4, 21, 2 }, + { 10, 12, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 4, 4, 21, 2 }, + { 10, 15, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 4, 4, 21, 2 }, + { 6, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 80, 0, 0, 5, 4, 2 }, + { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 10, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 10, 2 }, + { 23, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 3, 2 }, + { 24, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 3, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 12, 5, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 5, 2 }, + { 26, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 0, 8, 2 }, + { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 80, 0, 0, 12, 5, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 80, 0, 0, 12, 5, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 12, 2 }, + { 19, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 15, 0, 12, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 17, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 80, 0, 0, 0, 12, 2 }, + { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 80, 0, 0, 5, 17, 2 }, + { 10, 18, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 3, 4, 4, 22, 2 }, + { 10, 18, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 3, 4, 4, 12, 2 }, + { 10, 18, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 3, 4, 4, 12, 2 }, + { 13, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 12, 0 }, + { 10, 19, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 3, 4, 4, 21, 2 }, + { 10, 20, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 3, 4, 4, 21, 2 }, + { 10, 21, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 3, 4, 4, 21, 2 }, + { 10, 22, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 3, 4, 4, 21, 2 }, + { 10, 18, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 4, 4, 21, 2 }, + { 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 80, 0, 8, 6, 12, 3 }, + { 5, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 13, 1, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 80, 0, 8, 6, 12, 3 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 9, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 9, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 9, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 9, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 9, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 9, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 10, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 9, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 9, 2 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 9, 2 }, + { 13, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0 }, + { 2, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 2, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 1 }, + { 2, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 1, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 1, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 1 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 8, 7, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 10, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 9, 2 }, + { 14, 0, 0, 0, -1, 0, -7517, 0, 0, -7517, 0, 0, 0, 0, 1, 85, 0, 8, 7, 12, 4 }, + { 14, 0, 0, 0, -1, 0, -8383, 0, 0, -8383, 0, 0, 0, 0, 1, 85, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -8262, 0, 0, -8262, 0, 0, 0, 0, 1, 85, 0, 8, 7, 12, 3 }, + { 29, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 28, 0, 0, 28, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 8, 8, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 80, 0, 8, 6, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 80, 0, 0, 0, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 8, 6, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 80, 0, 8, 6, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 80, 0, 8, 7, 12, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 80, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, -28, -28, 0, 0, 0, 0, 0, 9, 0, 0, 8, 6, 12, 3 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 12, 2 }, + { 4, 0, 0, 0, -1, 0, 16, 0, 0, 16, 0, 0, 0, 0, 1, 80, 0, 8, 7, 12, 3 }, + { 4, 0, 0, 0, -1, 0, 0, -16, -16, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 3 }, + { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 3 }, + { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 3 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 2016, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 138, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 1824, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 2104, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 2108, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 2106, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -138, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -7, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 12, 2 }, + { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 14, 2 }, + { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 0, 13, 1, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 14, 2 }, + { 5, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 29, 0, 0, 0, -1, 0, 26, 0, 0, 26, 0, 0, 0, 0, 1, 80, 0, 8, 7, 12, 2 }, + { 29, 0, 0, 0, -1, 0, 0, -26, -26, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 2 }, + { 5, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 14, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 14, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 14, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 14, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 3, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 6, 2 }, + { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 13, 1, 2 }, + { 5, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 2 }, + { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 13, 1, 2 }, + { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 13, 1, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 54 }, + { 21, 10, 0, 0, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 13, 1, 2 }, + { 21, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 13, 1, 2 }, + { 26, 10, 0, 0, -1, -1824, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -2016, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 85, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -2104, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -2106, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, -2108, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 48, 0, 0, 48, 0, 0, 0, 0, 8, 0, 0, 8, 7, 12, 57 }, + { 15, 0, 0, 0, -1, 0, 0, -48, -48, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 57 }, + { 14, 0, 0, 0, -1, 0, -10743, 0, 0, -10743, 0, 0, 0, 0, 9, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -3814, 0, 0, -3814, 0, 0, 0, 0, 9, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -10727, 0, 0, -10727, 0, 0, 0, 0, 9, 0, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -10795, -10795, 0, 0, 0, 0, 0, 9, 0, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -10792, -10792, 0, 0, 0, 0, 0, 9, 0, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -10780, 0, 0, -10780, 0, 0, 0, 0, 10, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -10749, 0, 0, -10749, 0, 0, 0, 0, 10, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -10783, 0, 0, -10783, 0, 0, 0, 0, 10, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -10782, 0, 0, -10782, 0, 0, 0, 0, 11, 0, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 6, 12, 3 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 80, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, -10815, 0, 0, -10815, 0, 0, 0, 0, 11, 0, 0, 8, 7, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 8, 0, 0, 8, 7, 12, 46 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 46 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 46 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 46 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 11, 0, 0, 8, 7, 12, 46 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 11, 0, 0, 8, 6, 12, 46 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 46 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 13, 0, 0, 8, 7, 12, 46 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 13, 0, 0, 8, 6, 12, 46 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 6, 46 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 17, 46 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 46 }, + { 15, 0, 0, 0, -1, 0, 0, -7264, -7264, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 25 }, + { 15, 0, 0, 0, -1, 0, 0, -7264, -7264, 0, 0, 0, 0, 0, 13, 0, 0, 8, 6, 12, 25 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 58 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 58 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 8, 8, 12, 58 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 17, 58 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 4, 4, 4, 21, 58 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 13, 3, 2 }, + { 23, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 13, 3, 2 }, + { 24, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 13, 3, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 17, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 17, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 2 }, + { 23, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 13, 3, 2 }, + { 24, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 13, 3, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 6, 2 }, + { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 17, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 12, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 17, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 19, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 14, 37 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 80, 0, 0, 0, 14, 37 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 14, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 11, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 14, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 5, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 14, 2 }, + { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 14, 37 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 2 }, + { 22, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 1, 2 }, + { 0, 17, 218, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 228, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 222, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 }, + { 1, 0, 224, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 26 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 14, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 6, 8, 14, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 6, 8, 21, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 80, 0, 0, 8, 14, 37 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 8, 5, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 8, 5, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 14, 2 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 5, 34 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 14, 34 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 0, 0, 8, 14, 34 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 8, 5, 34 }, + { 0, 17, 8, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 204, 4, 4, 4, 21, 1 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 6, 0, 5, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 5, 34 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 0, 0, 8, 5, 34 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 80, 0, 0, 8, 14, 34 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 6, 0, 5, 2 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 6, 8, 5, 35 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 6, 8, 14, 35 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 0, 6, 8, 14, 35 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 6, 8, 5, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 6, 8, 5, 35 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 0, 6, 8, 5, 35 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 80, 0, 6, 8, 14, 35 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 14, 36 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 14, 36 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 8, 8, 14, 26 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 14, 2 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 14, 36 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 8, 14, 36 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 6, 8, 5, 35 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 26 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 80, 0, 0, 0, 14, 26 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 14, 2 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 80, 0, 0, 0, 14, 2 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 80, 0, 0, 0, 14, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 0, 0, 14, 26 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 6, 0, 14, 35 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 8, 14, 37 }, + { 13, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 14, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 14, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 8, 14, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 8, 14, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 8, 14, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 14, 38 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 5, 38 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 14, 38 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 14, 38 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 83 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 83 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 17, 83 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 17, 83 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 70 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 70 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 17, 70 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 6, 70 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 17, 70 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 70 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 70 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 70 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 70 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 70 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 70 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 70 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 70 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 70 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 70 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 5 }, + { 2, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 5 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 5 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 5 }, + { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 5 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 84 }, + { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 84 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 84 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 84 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 17, 84 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 17, 84 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 2 }, + { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 7, 0, 0, 7, 1, 0, 0, 1, 10, 0, 0, 8, 7, 12, 3 }, + { 28, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 9, 0, 0, 9, 1, 0, 0, 1, 12, 0, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 12, 0, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 12, 0, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 13, 0, 0, 8, 7, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 13, 0, 0, 8, 6, 12, 3 }, + { 14, 0, 0, 0, -1, 0, 11, 0, 0, 11, 1, 0, 0, 1, 13, 0, 0, 8, 7, 12, 3 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 80, 0, 8, 6, 12, 3 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 3 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 59 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 59 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 59 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 4, 4, 21, 59 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 59 }, + { 29, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 2 }, + { 18, 0, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 65 }, + { 18, 0, 0, 4, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 65 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 65 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 18, 65 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 6, 65 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 4, 4, 21, 71 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 71 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 71 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 17, 71 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 71 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 71 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 71 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 71 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 71 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 71 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 71 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 71 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 71 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 71 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 11 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 11 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 72 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 72 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 72 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 72 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 72 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 72 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 72 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 72 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 72 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 72 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 72 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 72 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 72 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 17, 72 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 17, 72 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 73 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 73 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 4, 4, 21, 73 }, + { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 4, 4, 21, 73 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 73 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 85 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 4, 4, 21, 85 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 85 }, + { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 85 }, + { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 4, 4, 21, 85 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 85 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 17, 85 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 17, 85 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 2 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 85 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 85 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 85 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 85 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 85 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 85 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 85 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 85 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 85 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 85 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 77 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 77 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 4, 4, 21, 77 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 77 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 77 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 77 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 77 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 77 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 77 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 77 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 77 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 77 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 77 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 77 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 17, 77 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 8, 30, 24 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 8, 30, 24 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 30, 24 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 8, 30, 79 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 30, 79 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 30, 79 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 8, 30, 79 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 30, 79 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 86 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 4, 4, 21, 86 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 86 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 17, 86 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 86 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 86 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 8, 12, 27 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 86 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 4, 4, 21, 86 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 86 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 17, 86 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 86 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 86 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 86 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 86 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 86 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 86 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 86 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 86 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 86 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 86 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 86 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 17, 11, 8, 8, 23, 26 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 17, 12, 8, 8, 24, 26 }, + { 11, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 0, 31, 0 }, + { 12, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 0 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 0, 8, 14, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 85, 0, 0, 8, 14, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 85, 0, 0, 8, 14, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 85, 0, 0, 8, 14, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 85, 0, 0, 8, 14, 37 }, + { 15, 0, 0, 0, -1, 0, 0, 25, 22, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 31, 28, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 37, 34, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 44, 40, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 52, 48, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 59, 56, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 3 }, + { 15, 0, 0, 0, -1, 0, 0, 71, 68, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 6 }, + { 15, 0, 0, 0, -1, 0, 0, 77, 74, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 6 }, + { 15, 0, 0, 0, -1, 0, 0, 83, 80, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 6 }, + { 15, 0, 0, 0, -1, 0, 0, 89, 86, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 6 }, + { 15, 0, 0, 0, -1, 0, 0, 95, 92, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 6 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 85, 0, 7, 8, 13, 7 }, + { 0, 17, 26, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 7 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 7, 8, 13, 7 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 7, 8, 13, 7 }, + { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 7 }, + { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 8, 8, 12, 8 }, + { 28, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 8 }, + { 13, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 12, 0 }, + { 27, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 80, 0, 0, 0, 10, 8 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 4, 4, 4, 21, 1 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 13, 11, 8, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 0, 11, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 0, 0, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 12, 11, 8, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 13, 0, 8, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 0, 0, 6, 2 }, + { 21, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 0, 13, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 0, 0, 15, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 11, 14, 2 }, + { 19, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 15, 0, 14, 2 }, + { 21, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 13, 1, 2 }, + { 21, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 80, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 80, 0, 0, 13, 1, 2 }, + { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 13, 11, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 11, 14, 2 }, + { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 11, 10, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 13, 0, 5, 2 }, + { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 12, 11, 5, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 12, 6, 2 }, + { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 20, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 11, 14, 2 }, + { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 8, 12, 8 }, + { 10, 18, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 4, 4, 22, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 11, 0, 14, 2 }, + { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 26, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 26, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 80, 0, 8, 7, 14, 3 }, + { 21, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 13, 1, 2 }, + { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 }, + { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 14, 3 }, + { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 80, 0, 0, 13, 0, 2 }, + { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 80, 0, 0, 13, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 12, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 11, 1, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 5, 2 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 6, 8, 12, 35 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 6, 8, 5, 35 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 6, 8, 5, 2 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 4, 4, 4, 5, 2 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 8, 8, 12, 26 }, + { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 10, 2 }, + { 10, 10, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 3, 4, 4, 21, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 29, 2 }, + { 13, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 0 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 49 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 17, 2 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 17, 2 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 12, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 12, 2 }, + { 4, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 4 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 4 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 4 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 74 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 75 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 8, 8, 12, 39 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 12, 39 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 8, 8, 12, 40 }, + { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 8, 8, 12, 40 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 50 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 17, 50 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 60 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 17, 60 }, + { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 60 }, + { 14, 0, 0, 0, -1, 0, 40, 0, 0, 40, 0, 0, 0, 0, 5, 0, 0, 8, 7, 12, 41 }, + { 14, 0, 0, 0, -1, 0, 40, 0, 0, 40, 0, 0, 0, 0, 7, 0, 0, 8, 7, 12, 41 }, + { 15, 0, 0, 0, -1, 0, 0, -40, -40, 0, 0, 0, 0, 0, 5, 0, 0, 8, 6, 12, 41 }, + { 15, 0, 0, 0, -1, 0, 0, -40, -40, 0, 0, 0, 0, 0, 7, 0, 0, 8, 6, 12, 41 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 51 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 52 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 52 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 52 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 52 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 52 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 52 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 52 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 52 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 52 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 52 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 52 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 53 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 87 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 17, 87 }, + { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 87 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 64 }, + { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 12, 64 }, + { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 64 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 17, 64 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 76 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 76 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 98 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 97 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 61 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 61 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 61 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 61 }, + { 0, 17, 1, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 61 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 61 }, + { 5, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 61 }, + { 5, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 61 }, + { 5, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 61 }, + { 5, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 61 }, + { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 61 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 17, 61 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 17, 61 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 61 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 88 }, + { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 88 }, + { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 88 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 80 }, + { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 17, 80 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 89 }, + { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 89 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 90 }, + { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 90 }, + { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 91 }, + { 5, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 8 }, + { 5, 5, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 8 }, + { 5, 5, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 8 }, + { 5, 5, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 8 }, + { 5, 5, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 8 }, + { 5, 5, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 8 }, + { 5, 5, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 8 }, + { 5, 5, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 8 }, + { 5, 5, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 8 }, + { 5, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 8 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 4, 4, 21, 94 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 4, 4, 4, 21, 94 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 8, 12, 94 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 4, 4, 4, 21, 94 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 17, 94 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 94 }, + { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 94 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 14, 9, 11, 94 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 14, 9, 11, 94 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 14, 9, 11, 94 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 14, 9, 11, 94 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 14, 9, 11, 94 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 14, 9, 11, 94 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 14, 9, 11, 94 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 14, 9, 11, 94 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 14, 9, 11, 94 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 14, 9, 11, 94 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 92 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 4, 4, 21, 92 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 92 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 17, 0, 8, 8, 12, 92 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 92 }, + { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 204, 4, 4, 4, 21, 92 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 92 }, + { 10, 0, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 3, 4, 4, 12, 92 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 17, 92 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 101 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 101 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 101 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 101 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 101 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 101 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 101 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 101 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 101 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 101 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 101 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 96 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 96 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 204, 4, 4, 4, 21, 96 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 96 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 4, 4, 21, 96 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 17, 4, 4, 4, 21, 96 }, + { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 96 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 96 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 96 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 96 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 96 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 96 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 96 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 96 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 96 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 96 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 96 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 17, 96 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 17, 96 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 100 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 4, 4, 21, 100 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 100 }, + { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 4, 4, 21, 100 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 17, 100 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 12, 100 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 17, 100 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 100 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 100 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 100 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 100 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 100 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 100 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 100 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 100 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 100 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 100 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 102 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 102 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 4, 4, 21, 102 }, + { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 4, 4, 21, 102 }, + { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 102 }, + { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 102 }, + { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 102 }, + { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 102 }, + { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 102 }, + { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 102 }, + { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 102 }, + { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 102 }, + { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 102 }, + { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 102 }, + { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 102 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 63 }, + { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 63 }, + { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 17, 63 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 81 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 0, 81 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 1, 81 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 8, 12, 84 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 99 }, + { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 4, 4, 21, 99 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 99 }, + { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 99 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 6, 8, 14, 35 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 8, 14, 34 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 12, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 85, 0, 0, 0, 12, 2 }, + { 1, 0, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 4, 4, 4, 21, 2 }, + { 1, 0, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 4, 4, 21, 2 }, + { 0, 17, 1, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 4, 4, 4, 21, 1 }, + { 1, 0, 226, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 4, 4, 21, 2 }, + { 10, 18, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 3, 4, 4, 21, 2 }, + { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 4, 4, 4, 21, 1 }, + { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 4, 21, 4 }, + { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 80, 0, 8, 7, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 80, 0, 8, 6, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 80, 0, 8, 6, 12, 2 }, + { 26, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 80, 0, 0, 0, 12, 2 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 80, 0, 0, 0, 12, 2 }, + { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 80, 0, 8, 7, 12, 2 }, + { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 80, 0, 8, 6, 12, 2 }, + { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 80, 0, 14, 9, 11, 2 }, + { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 80, 0, 14, 9, 11, 2 }, + { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 80, 0, 14, 9, 11, 2 }, + { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 80, 0, 14, 9, 11, 2 }, + { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 80, 0, 14, 9, 11, 2 }, + { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 80, 0, 14, 9, 11, 2 }, + { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 80, 0, 14, 9, 11, 2 }, + { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 80, 0, 14, 9, 11, 2 }, + { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 80, 0, 14, 9, 11, 2 }, + { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 80, 0, 14, 9, 11, 2 }, + { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 80, 0, 8, 8, 12, 8 }, + { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 12, 8 }, + { 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 12, 2 }, + { 5, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 12, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 12, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 80, 0, 0, 0, 12, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 80, 0, 0, 0, 12, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 5, 5, 0, 28, 2 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 14, 34 }, + { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 80, 0, 0, 0, 14, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 12, 2 }, + { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 14, 2 }, + { 13, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 12, 0 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 8, 14, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 8, 14, 37 }, + { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 85, 0, 0, 8, 14, 37 }, + { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 4, 4, 4, 21, 1 }, + { 12, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 12, 0 } +}; + +Q_DECL_CONST_FUNCTION static inline const Properties *qGetProp(uint ucs4) +{ + const int index = GET_PROP_INDEX(ucs4); + return uc_properties + index; +} + +Q_DECL_CONST_FUNCTION static inline const Properties *qGetProp(ushort ucs2) +{ + const int index = GET_PROP_INDEX_UCS2(ucs2); + return uc_properties + index; +} + +Q_DECL_CONST_FUNCTION Q_CORE_EXPORT const Properties * QT_FASTCALL properties(uint ucs4) +{ + return qGetProp(ucs4); +} + +Q_DECL_CONST_FUNCTION Q_CORE_EXPORT const Properties * QT_FASTCALL properties(ushort ucs2) +{ + return qGetProp(ucs2); +} + +Q_CORE_EXPORT GraphemeBreakClass QT_FASTCALL graphemeBreakClass(uint ucs4) +{ + return (GraphemeBreakClass)qGetProp(ucs4)->graphemeBreakClass; +} + +Q_CORE_EXPORT WordBreakClass QT_FASTCALL wordBreakClass(uint ucs4) +{ + return (WordBreakClass)qGetProp(ucs4)->wordBreakClass; +} + +Q_CORE_EXPORT SentenceBreakClass QT_FASTCALL sentenceBreakClass(uint ucs4) +{ + return (SentenceBreakClass)qGetProp(ucs4)->sentenceBreakClass; +} + +Q_CORE_EXPORT LineBreakClass QT_FASTCALL lineBreakClass(uint ucs4) +{ + return (LineBreakClass)qGetProp(ucs4)->lineBreakClass; +} + + +static const ushort specialCaseMap[] = { + 0x0, // placeholder + 0x1, 0xa78d, + 0x1, 0xa7aa, + 0x1, 0xa77d, + 0x1, 0x1d79, + 0x1, 0x265, + 0x1, 0x266, + 0x2, 0x53, 0x73, + 0x2, 0x53, 0x53, + 0x2, 0x69, 0x307, + 0x2, 0x46, 0x66, + 0x2, 0x46, 0x46, + 0x2, 0x46, 0x69, + 0x2, 0x46, 0x49, + 0x2, 0x46, 0x6c, + 0x2, 0x46, 0x4c, + 0x3, 0x46, 0x66, 0x69, + 0x3, 0x46, 0x46, 0x49, + 0x3, 0x46, 0x66, 0x6c, + 0x3, 0x46, 0x46, 0x4c, + 0x2, 0x53, 0x74, + 0x2, 0x53, 0x54, + 0x2, 0x535, 0x582, + 0x2, 0x535, 0x552, + 0x2, 0x544, 0x576, + 0x2, 0x544, 0x546, + 0x2, 0x544, 0x565, + 0x2, 0x544, 0x535, + 0x2, 0x544, 0x56b, + 0x2, 0x544, 0x53b, + 0x2, 0x54e, 0x576, + 0x2, 0x54e, 0x546, + 0x2, 0x544, 0x56d, + 0x2, 0x544, 0x53d, + 0x2, 0x2bc, 0x4e, + 0x3, 0x399, 0x308, 0x301, + 0x3, 0x3a5, 0x308, 0x301, + 0x2, 0x4a, 0x30c, + 0x2, 0x48, 0x331, + 0x2, 0x54, 0x308, + 0x2, 0x57, 0x30a, + 0x2, 0x59, 0x30a, + 0x2, 0x41, 0x2be, + 0x2, 0x3a5, 0x313, + 0x3, 0x3a5, 0x313, 0x300, + 0x3, 0x3a5, 0x313, 0x301, + 0x3, 0x3a5, 0x313, 0x342, + 0x2, 0x391, 0x342, + 0x2, 0x397, 0x342, + 0x3, 0x399, 0x308, 0x300, + 0x2, 0x399, 0x342, + 0x3, 0x399, 0x308, 0x342, + 0x3, 0x3a5, 0x308, 0x300, + 0x2, 0x3a1, 0x313, + 0x2, 0x3a5, 0x342, + 0x3, 0x3a5, 0x308, 0x342, + 0x2, 0x3a9, 0x342, + 0x2, 0x1f08, 0x399, + 0x2, 0x1f09, 0x399, + 0x2, 0x1f0a, 0x399, + 0x2, 0x1f0b, 0x399, + 0x2, 0x1f0c, 0x399, + 0x2, 0x1f0d, 0x399, + 0x2, 0x1f0e, 0x399, + 0x2, 0x1f0f, 0x399, + 0x2, 0x1f28, 0x399, + 0x2, 0x1f29, 0x399, + 0x2, 0x1f2a, 0x399, + 0x2, 0x1f2b, 0x399, + 0x2, 0x1f2c, 0x399, + 0x2, 0x1f2d, 0x399, + 0x2, 0x1f2e, 0x399, + 0x2, 0x1f2f, 0x399, + 0x2, 0x1f68, 0x399, + 0x2, 0x1f69, 0x399, + 0x2, 0x1f6a, 0x399, + 0x2, 0x1f6b, 0x399, + 0x2, 0x1f6c, 0x399, + 0x2, 0x1f6d, 0x399, + 0x2, 0x1f6e, 0x399, + 0x2, 0x1f6f, 0x399, + 0x2, 0x391, 0x399, + 0x2, 0x397, 0x399, + 0x2, 0x3a9, 0x399, + 0x2, 0x1fba, 0x345, + 0x2, 0x1fba, 0x399, + 0x2, 0x386, 0x345, + 0x2, 0x386, 0x399, + 0x2, 0x1fca, 0x345, + 0x2, 0x1fca, 0x399, + 0x2, 0x389, 0x345, + 0x2, 0x389, 0x399, + 0x2, 0x1ffa, 0x345, + 0x2, 0x1ffa, 0x399, + 0x2, 0x38f, 0x345, + 0x2, 0x38f, 0x399, + 0x3, 0x391, 0x342, 0x345, + 0x3, 0x391, 0x342, 0x399, + 0x3, 0x397, 0x342, 0x345, + 0x3, 0x397, 0x342, 0x399, + 0x3, 0x3a9, 0x342, 0x345, + 0x3, 0x3a9, 0x342, 0x399 +}; + + +static const unsigned short uc_decomposition_trie[] = { + // 0 - 0x3400 + + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1564, 1580, 1596, 1612, 1628, 1644, + 1660, 1676, 1692, 1708, 1724, 1740, 1756, 1772, + 1548, 1548, 1788, 1804, 1820, 1836, 1852, 1868, + 1884, 1900, 1916, 1932, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1948, 1548, 1964, 1980, 1548, + 1548, 1548, 1548, 1548, 1996, 1548, 1548, 2012, + 2028, 2044, 2060, 2076, 2092, 2108, 1548, 2124, + 2140, 2156, 1548, 2172, 1548, 2188, 1548, 2204, + 1548, 1548, 1548, 1548, 2220, 2236, 2252, 2268, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 2284, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 2300, 1548, 1548, 1548, 1548, 2316, + 1548, 1548, 1548, 1548, 2332, 2348, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 2364, 2380, 1548, 2396, 1548, 1548, + 1548, 1548, 1548, 1548, 2412, 2428, 1548, 1548, + 1548, 1548, 1548, 2444, 1548, 2460, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 2476, 2492, 1548, 1548, + 1548, 2508, 1548, 1548, 2524, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 2540, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 2556, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 2572, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 2588, 1548, 1548, + 1548, 1548, 1548, 2604, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 2620, 1548, 2636, 1548, 1548, + 2652, 1548, 1548, 1548, 2668, 2684, 2700, 2716, + 2732, 2748, 2764, 2780, 1548, 1548, 1548, 1548, + + 1548, 1548, 2796, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 2812, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 2828, 2844, 1548, 2860, 2876, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 2892, 2908, 2924, 2940, 2956, 2972, + 1548, 2988, 3004, 3020, 1548, 1548, 1548, 1548, + 3036, 3052, 3068, 3084, 3100, 3116, 3132, 3148, + 3164, 3180, 3196, 3212, 3228, 3244, 3260, 3276, + 3292, 3308, 3324, 3340, 3356, 3372, 3388, 3404, + 3420, 3436, 3452, 3468, 3484, 3500, 3516, 3532, + + 3548, 3564, 3580, 3596, 3612, 3628, 1548, 3644, + 3660, 3676, 3692, 1548, 1548, 1548, 1548, 1548, + 3708, 3724, 3740, 3756, 3772, 3788, 3804, 3820, + 3836, 3852, 3868, 1548, 3884, 1548, 1548, 1548, + 3900, 1548, 3916, 3932, 3948, 1548, 3964, 3980, + 3996, 1548, 4012, 1548, 1548, 1548, 4028, 1548, + 1548, 1548, 4044, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 4060, 4076, + 4092, 4108, 4124, 4140, 4156, 4172, 4188, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 4204, 1548, 1548, 1548, 1548, 1548, 1548, 4220, + 1548, 1548, 1548, 1548, 1548, 4236, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 4252, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 4268, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, + 1548, 4284, 1548, 1548, 1548, 1548, 1548, 4300, + 4316, 4332, 4348, 4364, 4380, 4396, 4412, 4428, + 4444, 4460, 4476, 4492, 4508, 4524, 1548, 1548, + + 4540, 1548, 1548, 4556, 4572, 4588, 4604, 4620, + 1548, 4636, 4652, 4668, 4684, 4700, 1548, 4716, + 1548, 1548, 1548, 4732, 4748, 4764, 4780, 4796, + 4812, 4828, 1548, 1548, 1548, 1548, 1548, 1548, + 4844, 4860, 4876, 4892, 4908, 4924, 4940, 4956, + 4972, 4988, 5004, 5020, 5036, 5052, 5068, 5084, + 5100, 5116, 5132, 5148, 5164, 5180, 5196, 5212, + 5228, 5244, 5260, 5276, 5292, 5308, 5324, 5340, + + // 0x3400 - 0x30000 + + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5612, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + + 5356, 5356, 5356, 5356, 5356, 5868, 6124, 6380, + 6636, 6892, 7148, 7404, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 7660, 7916, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 8172, 5356, 5356, + 8428, 8684, 8940, 9196, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 9452, 5356, 5356, 9708, 9964, 5356, + + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356, + + 5356, 5356, 5356, 5356, 10220, 10476, 10732, 5356, + 5356, 5356, 5356, 5356, + + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x2, 0xffff, 0x5, 0xffff, 0xffff, 0xffff, 0xffff, 0x7, + + 0xffff, 0xffff, 0xa, 0xc, 0xe, 0x11, 0xffff, 0xffff, + 0x13, 0x16, 0x18, 0xffff, 0x1a, 0x1e, 0x22, 0xffff, + + 0x26, 0x29, 0x2c, 0x2f, 0x32, 0x35, 0xffff, 0x38, + 0x3b, 0x3e, 0x41, 0x44, 0x47, 0x4a, 0x4d, 0x50, + + 0xffff, 0x53, 0x56, 0x59, 0x5c, 0x5f, 0x62, 0xffff, + 0xffff, 0x65, 0x68, 0x6b, 0x6e, 0x71, 0xffff, 0xffff, + + 0x74, 0x77, 0x7a, 0x7d, 0x80, 0x83, 0xffff, 0x86, + 0x89, 0x8c, 0x8f, 0x92, 0x95, 0x98, 0x9b, 0x9e, + + 0xffff, 0xa1, 0xa4, 0xa7, 0xaa, 0xad, 0xb0, 0xffff, + 0xffff, 0xb3, 0xb6, 0xb9, 0xbc, 0xbf, 0xffff, 0xc2, + + 0xc5, 0xc8, 0xcb, 0xce, 0xd1, 0xd4, 0xd7, 0xda, + 0xdd, 0xe0, 0xe3, 0xe6, 0xe9, 0xec, 0xef, 0xf2, + + 0xffff, 0xffff, 0xf5, 0xf8, 0xfb, 0xfe, 0x101, 0x104, + 0x107, 0x10a, 0x10d, 0x110, 0x113, 0x116, 0x119, 0x11c, + + 0x11f, 0x122, 0x125, 0x128, 0x12b, 0x12e, 0xffff, 0xffff, + 0x131, 0x134, 0x137, 0x13a, 0x13d, 0x140, 0x143, 0x146, + + 0x149, 0xffff, 0x14c, 0x14f, 0x152, 0x155, 0x158, 0x15b, + 0xffff, 0x15e, 0x161, 0x164, 0x167, 0x16a, 0x16d, 0x170, + + 0x173, 0xffff, 0xffff, 0x176, 0x179, 0x17c, 0x17f, 0x182, + 0x185, 0x188, 0xffff, 0xffff, 0x18b, 0x18e, 0x191, 0x194, + + 0x197, 0x19a, 0xffff, 0xffff, 0x19d, 0x1a0, 0x1a3, 0x1a6, + 0x1a9, 0x1ac, 0x1af, 0x1b2, 0x1b5, 0x1b8, 0x1bb, 0x1be, + + 0x1c1, 0x1c4, 0x1c7, 0x1ca, 0x1cd, 0x1d0, 0xffff, 0xffff, + 0x1d3, 0x1d6, 0x1d9, 0x1dc, 0x1df, 0x1e2, 0x1e5, 0x1e8, + + 0x1eb, 0x1ee, 0x1f1, 0x1f4, 0x1f7, 0x1fa, 0x1fd, 0x200, + 0x203, 0x206, 0x209, 0x20c, 0x20f, 0x212, 0x215, 0x218, + + 0x21a, 0x21d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x220, + + 0x223, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0x226, 0x229, 0x22c, 0x22f, + 0x232, 0x235, 0x238, 0x23b, 0x23e, 0x241, 0x244, 0x247, + + 0x24a, 0x24d, 0x250, 0x253, 0x256, 0x259, 0x25c, 0x25f, + 0x262, 0x265, 0x268, 0x26b, 0x26e, 0xffff, 0x271, 0x274, + + 0x277, 0x27a, 0x27d, 0x280, 0xffff, 0xffff, 0x283, 0x286, + 0x289, 0x28c, 0x28f, 0x292, 0x295, 0x298, 0x29b, 0x29e, + + 0x2a1, 0x2a4, 0x2a7, 0x2aa, 0x2ad, 0x2b0, 0xffff, 0xffff, + 0x2b3, 0x2b6, 0x2b9, 0x2bc, 0x2bf, 0x2c2, 0x2c5, 0x2c8, + + 0x2cb, 0x2ce, 0x2d1, 0x2d4, 0x2d7, 0x2da, 0x2dd, 0x2e0, + 0x2e3, 0x2e6, 0x2e9, 0x2ec, 0x2ef, 0x2f2, 0x2f5, 0x2f8, + + 0x2fb, 0x2fe, 0x301, 0x304, 0x307, 0x30a, 0x30d, 0x310, + 0x313, 0x316, 0x319, 0x31c, 0xffff, 0xffff, 0x31f, 0x322, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x325, 0x328, + 0x32b, 0x32e, 0x331, 0x334, 0x337, 0x33a, 0x33d, 0x340, + + 0x343, 0x346, 0x349, 0x34c, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x34f, 0x351, 0x353, 0x355, 0x357, 0x359, 0x35b, 0x35d, + 0x35f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x361, 0x364, 0x367, 0x36a, 0x36d, 0x370, 0xffff, 0xffff, + + 0x373, 0x375, 0x377, 0x379, 0x37b, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x37d, 0x37f, 0xffff, 0x381, 0x383, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0x386, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0x388, 0xffff, 0xffff, 0xffff, 0x38b, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0x38d, 0x390, 0x393, 0x396, + 0x398, 0x39b, 0x39e, 0xffff, 0x3a1, 0xffff, 0x3a4, 0x3a7, + + 0x3aa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0x3ad, 0x3b0, 0x3b3, 0x3b6, 0x3b9, 0x3bc, + + 0x3bf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0x3c2, 0x3c5, 0x3c8, 0x3cb, 0x3ce, 0xffff, + + 0x3d1, 0x3d3, 0x3d5, 0x3d7, 0x3da, 0x3dd, 0x3df, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x3e1, 0x3e3, 0x3e5, 0xffff, 0x3e7, 0x3e9, 0xffff, 0xffff, + 0xffff, 0x3eb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x3ed, 0x3f0, 0xffff, 0x3f3, 0xffff, 0xffff, 0xffff, 0x3f6, + 0xffff, 0xffff, 0xffff, 0xffff, 0x3f9, 0x3fc, 0x3ff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0x402, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0x405, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x408, 0x40b, 0xffff, 0x40e, 0xffff, 0xffff, 0xffff, 0x411, + 0xffff, 0xffff, 0xffff, 0xffff, 0x414, 0x417, 0x41a, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x41d, 0x420, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0x423, 0x426, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x429, 0x42c, 0x42f, 0x432, 0xffff, 0xffff, 0x435, 0x438, + 0xffff, 0xffff, 0x43b, 0x43e, 0x441, 0x444, 0x447, 0x44a, + + 0xffff, 0xffff, 0x44d, 0x450, 0x453, 0x456, 0x459, 0x45c, + 0xffff, 0xffff, 0x45f, 0x462, 0x465, 0x468, 0x46b, 0x46e, + + 0x471, 0x474, 0x477, 0x47a, 0x47d, 0x480, 0xffff, 0xffff, + 0x483, 0x486, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x489, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0x48c, 0x48f, 0x492, 0x495, 0x498, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x49b, 0x49e, 0x4a1, + 0x4a4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x4a7, 0xffff, 0x4aa, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0x4ad, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0x4b0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0x4b3, 0xffff, 0xffff, 0x4b6, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x4b9, 0x4bc, 0x4bf, 0x4c2, 0x4c5, 0x4c8, 0x4cb, 0x4ce, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0x4d1, 0x4d4, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0x4d7, 0x4da, 0xffff, 0x4dd, + + 0xffff, 0xffff, 0xffff, 0x4e0, 0xffff, 0xffff, 0x4e3, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0x4e6, 0x4e9, 0x4ec, 0xffff, 0xffff, 0x4ef, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x4f2, 0xffff, 0xffff, 0x4f5, 0x4f8, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0x4fb, 0x4fe, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0x501, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0x504, 0x507, 0x50a, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x50d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x510, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x513, + 0x516, 0xffff, 0x519, 0x51c, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0x51f, 0x522, 0x525, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0x528, 0xffff, 0x52b, 0x52e, 0x531, 0xffff, + + 0xffff, 0xffff, 0xffff, 0x534, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0x537, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0x53a, 0x53d, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0x540, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0x542, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x545, 0xffff, 0xffff, + + 0xffff, 0xffff, 0x548, 0xffff, 0xffff, 0xffff, 0xffff, 0x54b, + 0xffff, 0xffff, 0xffff, 0xffff, 0x54e, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0x551, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0x554, 0xffff, 0x557, 0x55a, 0x55d, + 0x560, 0x563, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0x566, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0x569, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x56c, 0xffff, 0xffff, + + 0xffff, 0xffff, 0x56f, 0xffff, 0xffff, 0xffff, 0xffff, 0x572, + 0xffff, 0xffff, 0xffff, 0xffff, 0x575, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0x578, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x57b, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0x57e, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x580, 0xffff, + 0x583, 0xffff, 0x586, 0xffff, 0x589, 0xffff, 0x58c, 0xffff, + + 0xffff, 0xffff, 0x58f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0x592, 0xffff, 0x595, 0xffff, 0xffff, + + 0x598, 0x59b, 0xffff, 0x59e, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0x5a1, 0x5a3, 0x5a5, 0xffff, + + 0x5a7, 0x5a9, 0x5ab, 0x5ad, 0x5af, 0x5b1, 0x5b3, 0x5b5, + 0x5b7, 0x5b9, 0x5bb, 0xffff, 0x5bd, 0x5bf, 0x5c1, 0x5c3, + + 0x5c5, 0x5c7, 0x5c9, 0x5cb, 0x5cd, 0x5cf, 0x5d1, 0x5d3, + 0x5d5, 0x5d7, 0x5d9, 0x5db, 0x5dd, 0x5df, 0xffff, 0x5e1, + + 0x5e3, 0x5e5, 0x5e7, 0x5e9, 0x5eb, 0x5ed, 0x5ef, 0x5f1, + 0x5f3, 0x5f5, 0x5f7, 0x5f9, 0x5fb, 0x5fd, 0x5ff, 0x601, + + 0x603, 0x605, 0x607, 0x609, 0x60b, 0x60d, 0x60f, 0x611, + 0x613, 0x615, 0x617, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x619, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0x61b, 0x61d, 0x61f, 0x621, 0x623, + + 0x625, 0x627, 0x629, 0x62b, 0x62d, 0x62f, 0x631, 0x633, + 0x635, 0x637, 0x639, 0x63b, 0x63d, 0x63f, 0x641, 0x643, + + 0x645, 0x647, 0x649, 0x64b, 0x64d, 0x64f, 0x651, 0x653, + 0x655, 0x657, 0x659, 0x65b, 0x65d, 0x65f, 0x661, 0x663, + + 0x665, 0x668, 0x66b, 0x66e, 0x671, 0x674, 0x677, 0x67a, + 0x67d, 0x680, 0x683, 0x686, 0x689, 0x68c, 0x68f, 0x692, + + 0x695, 0x698, 0x69b, 0x69e, 0x6a1, 0x6a4, 0x6a7, 0x6aa, + 0x6ad, 0x6b0, 0x6b3, 0x6b6, 0x6b9, 0x6bc, 0x6bf, 0x6c2, + + 0x6c5, 0x6c8, 0x6cb, 0x6ce, 0x6d1, 0x6d4, 0x6d7, 0x6da, + 0x6dd, 0x6e0, 0x6e3, 0x6e6, 0x6e9, 0x6ec, 0x6ef, 0x6f2, + + 0x6f5, 0x6f8, 0x6fb, 0x6fe, 0x701, 0x704, 0x707, 0x70a, + 0x70d, 0x710, 0x713, 0x716, 0x719, 0x71c, 0x71f, 0x722, + + 0x725, 0x728, 0x72b, 0x72e, 0x731, 0x734, 0x737, 0x73a, + 0x73d, 0x740, 0x743, 0x746, 0x749, 0x74c, 0x74f, 0x752, + + 0x755, 0x758, 0x75b, 0x75e, 0x761, 0x764, 0x767, 0x76a, + 0x76d, 0x770, 0x773, 0x776, 0x779, 0x77c, 0x77f, 0x782, + + 0x785, 0x788, 0x78b, 0x78e, 0x791, 0x794, 0x797, 0x79a, + 0x79d, 0x7a0, 0x7a3, 0x7a6, 0x7a9, 0x7ac, 0x7af, 0x7b2, + + 0x7b5, 0x7b8, 0x7bb, 0x7be, 0x7c1, 0x7c4, 0x7c7, 0x7ca, + 0x7cd, 0x7d0, 0x7d3, 0x7d6, 0x7d9, 0x7dc, 0x7df, 0x7e2, + + 0x7e5, 0x7e8, 0x7eb, 0x7ee, 0x7f1, 0x7f4, 0x7f7, 0x7fa, + 0x7fd, 0x800, 0x803, 0x806, 0x809, 0x80c, 0x80f, 0x812, + + 0x815, 0x818, 0x81b, 0x81e, 0x821, 0x824, 0x827, 0x82a, + 0x82d, 0x830, 0x833, 0x836, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x839, 0x83c, 0x83f, 0x842, 0x845, 0x848, 0x84b, 0x84e, + 0x851, 0x854, 0x857, 0x85a, 0x85d, 0x860, 0x863, 0x866, + + 0x869, 0x86c, 0x86f, 0x872, 0x875, 0x878, 0x87b, 0x87e, + 0x881, 0x884, 0x887, 0x88a, 0x88d, 0x890, 0x893, 0x896, + + 0x899, 0x89c, 0x89f, 0x8a2, 0x8a5, 0x8a8, 0x8ab, 0x8ae, + 0x8b1, 0x8b4, 0x8b7, 0x8ba, 0x8bd, 0x8c0, 0x8c3, 0x8c6, + + 0x8c9, 0x8cc, 0x8cf, 0x8d2, 0x8d5, 0x8d8, 0x8db, 0x8de, + 0x8e1, 0x8e4, 0x8e7, 0x8ea, 0x8ed, 0x8f0, 0x8f3, 0x8f6, + + 0x8f9, 0x8fc, 0x8ff, 0x902, 0x905, 0x908, 0x90b, 0x90e, + 0x911, 0x914, 0x917, 0x91a, 0x91d, 0x920, 0x923, 0x926, + + 0x929, 0x92c, 0x92f, 0x932, 0x935, 0x938, 0x93b, 0x93e, + 0x941, 0x944, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x947, 0x94a, 0x94d, 0x950, 0x953, 0x956, 0x959, 0x95c, + 0x95f, 0x962, 0x965, 0x968, 0x96b, 0x96e, 0x971, 0x974, + + 0x977, 0x97a, 0x97d, 0x980, 0x983, 0x986, 0xffff, 0xffff, + 0x989, 0x98c, 0x98f, 0x992, 0x995, 0x998, 0xffff, 0xffff, + + 0x99b, 0x99e, 0x9a1, 0x9a4, 0x9a7, 0x9aa, 0x9ad, 0x9b0, + 0x9b3, 0x9b6, 0x9b9, 0x9bc, 0x9bf, 0x9c2, 0x9c5, 0x9c8, + + 0x9cb, 0x9ce, 0x9d1, 0x9d4, 0x9d7, 0x9da, 0x9dd, 0x9e0, + 0x9e3, 0x9e6, 0x9e9, 0x9ec, 0x9ef, 0x9f2, 0x9f5, 0x9f8, + + 0x9fb, 0x9fe, 0xa01, 0xa04, 0xa07, 0xa0a, 0xffff, 0xffff, + 0xa0d, 0xa10, 0xa13, 0xa16, 0xa19, 0xa1c, 0xffff, 0xffff, + + 0xa1f, 0xa22, 0xa25, 0xa28, 0xa2b, 0xa2e, 0xa31, 0xa34, + 0xffff, 0xa37, 0xffff, 0xa3a, 0xffff, 0xa3d, 0xffff, 0xa40, + + 0xa43, 0xa46, 0xa49, 0xa4c, 0xa4f, 0xa52, 0xa55, 0xa58, + 0xa5b, 0xa5e, 0xa61, 0xa64, 0xa67, 0xa6a, 0xa6d, 0xa70, + + 0xa73, 0xa76, 0xa78, 0xa7b, 0xa7d, 0xa80, 0xa82, 0xa85, + 0xa87, 0xa8a, 0xa8c, 0xa8f, 0xa91, 0xa94, 0xffff, 0xffff, + + 0xa96, 0xa99, 0xa9c, 0xa9f, 0xaa2, 0xaa5, 0xaa8, 0xaab, + 0xaae, 0xab1, 0xab4, 0xab7, 0xaba, 0xabd, 0xac0, 0xac3, + + 0xac6, 0xac9, 0xacc, 0xacf, 0xad2, 0xad5, 0xad8, 0xadb, + 0xade, 0xae1, 0xae4, 0xae7, 0xaea, 0xaed, 0xaf0, 0xaf3, + + 0xaf6, 0xaf9, 0xafc, 0xaff, 0xb02, 0xb05, 0xb08, 0xb0b, + 0xb0e, 0xb11, 0xb14, 0xb17, 0xb1a, 0xb1d, 0xb20, 0xb23, + + 0xb26, 0xb29, 0xb2c, 0xb2f, 0xb32, 0xffff, 0xb35, 0xb38, + 0xb3b, 0xb3e, 0xb41, 0xb44, 0xb46, 0xb49, 0xb4c, 0xb4e, + + 0xb51, 0xb54, 0xb57, 0xb5a, 0xb5d, 0xffff, 0xb60, 0xb63, + 0xb66, 0xb69, 0xb6b, 0xb6e, 0xb70, 0xb73, 0xb76, 0xb79, + + 0xb7c, 0xb7f, 0xb82, 0xb85, 0xffff, 0xffff, 0xb87, 0xb8a, + 0xb8d, 0xb90, 0xb93, 0xb96, 0xffff, 0xb98, 0xb9b, 0xb9e, + + 0xba1, 0xba4, 0xba7, 0xbaa, 0xbac, 0xbaf, 0xbb2, 0xbb5, + 0xbb8, 0xbbb, 0xbbe, 0xbc1, 0xbc3, 0xbc6, 0xbc9, 0xbcb, + + 0xffff, 0xffff, 0xbcd, 0xbd0, 0xbd3, 0xffff, 0xbd6, 0xbd9, + 0xbdc, 0xbdf, 0xbe1, 0xbe4, 0xbe6, 0xbe9, 0xbeb, 0xffff, + + 0xbee, 0xbf0, 0xbf2, 0xbf4, 0xbf6, 0xbf8, 0xbfa, 0xbfc, + 0xbfe, 0xc00, 0xc02, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xc04, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc06, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xc09, 0xc0b, 0xc0e, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc12, + + 0xffff, 0xffff, 0xffff, 0xc14, 0xc17, 0xffff, 0xc1b, 0xc1e, + 0xffff, 0xffff, 0xffff, 0xffff, 0xc22, 0xffff, 0xc25, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc28, + 0xc2b, 0xc2e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc31, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc36, + + 0xc38, 0xc3a, 0xffff, 0xffff, 0xc3c, 0xc3e, 0xc40, 0xc42, + 0xc44, 0xc46, 0xc48, 0xc4a, 0xc4c, 0xc4e, 0xc50, 0xc52, + + 0xc54, 0xc56, 0xc58, 0xc5a, 0xc5c, 0xc5e, 0xc60, 0xc62, + 0xc64, 0xc66, 0xc68, 0xc6a, 0xc6c, 0xc6e, 0xc70, 0xffff, + + 0xc72, 0xc74, 0xc76, 0xc78, 0xc7a, 0xc7c, 0xc7e, 0xc80, + 0xc82, 0xc84, 0xc86, 0xc88, 0xc8a, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xc8c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xc8f, 0xc93, 0xc97, 0xc99, 0xffff, 0xc9c, 0xca0, 0xca4, + 0xffff, 0xca6, 0xca9, 0xcab, 0xcad, 0xcaf, 0xcb1, 0xcb3, + + 0xcb5, 0xcb7, 0xcb9, 0xcbb, 0xffff, 0xcbd, 0xcbf, 0xffff, + 0xffff, 0xcc2, 0xcc4, 0xcc6, 0xcc8, 0xcca, 0xffff, 0xffff, + + 0xccc, 0xccf, 0xcd3, 0xffff, 0xcd6, 0xffff, 0xcd8, 0xffff, + 0xcda, 0xffff, 0xcdc, 0xcde, 0xce0, 0xce2, 0xffff, 0xce4, + + 0xce6, 0xce8, 0xffff, 0xcea, 0xcec, 0xcee, 0xcf0, 0xcf2, + 0xcf4, 0xcf6, 0xffff, 0xcf8, 0xcfc, 0xcfe, 0xd00, 0xd02, + + 0xd04, 0xffff, 0xffff, 0xffff, 0xffff, 0xd06, 0xd08, 0xd0a, + 0xd0c, 0xd0e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xd10, 0xd14, 0xd18, 0xd1d, 0xd21, 0xd25, 0xd29, 0xd2d, + 0xd31, 0xd35, 0xd39, 0xd3d, 0xd41, 0xd45, 0xd49, 0xd4d, + + 0xd50, 0xd52, 0xd55, 0xd59, 0xd5c, 0xd5e, 0xd61, 0xd65, + 0xd6a, 0xd6d, 0xd6f, 0xd72, 0xd76, 0xd78, 0xd7a, 0xd7c, + + 0xd7e, 0xd80, 0xd83, 0xd87, 0xd8a, 0xd8c, 0xd8f, 0xd93, + 0xd98, 0xd9b, 0xd9d, 0xda0, 0xda4, 0xda6, 0xda8, 0xdaa, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xdac, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xdb0, 0xdb3, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdb6, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdb9, 0xdbc, 0xdbf, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xdc2, 0xffff, 0xffff, 0xffff, + 0xffff, 0xdc5, 0xffff, 0xffff, 0xdc8, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xdcb, 0xffff, 0xdce, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xdd1, 0xdd4, 0xffff, 0xdd8, + + 0xddb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xddf, 0xffff, 0xffff, 0xde2, 0xffff, 0xffff, 0xde5, + 0xffff, 0xde8, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xdeb, 0xffff, 0xdee, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf1, 0xdf4, 0xdf7, + + 0xdfa, 0xdfd, 0xffff, 0xffff, 0xe00, 0xe03, 0xffff, 0xffff, + 0xe06, 0xe09, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xe0c, 0xe0f, 0xffff, 0xffff, 0xe12, 0xe15, 0xffff, 0xffff, + 0xe18, 0xe1b, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xe1e, 0xe21, 0xe24, 0xe27, + + 0xe2a, 0xe2d, 0xe30, 0xe33, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xe36, 0xe39, 0xe3c, 0xe3f, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xe42, 0xe44, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xe46, 0xe48, 0xe4a, 0xe4c, 0xe4e, 0xe50, 0xe52, 0xe54, + 0xe56, 0xe58, 0xe5b, 0xe5e, 0xe61, 0xe64, 0xe67, 0xe6a, + + 0xe6d, 0xe70, 0xe73, 0xe76, 0xe79, 0xe7d, 0xe81, 0xe85, + 0xe89, 0xe8d, 0xe91, 0xe95, 0xe99, 0xe9d, 0xea2, 0xea7, + + 0xeac, 0xeb1, 0xeb6, 0xebb, 0xec0, 0xec5, 0xeca, 0xecf, + 0xed4, 0xed7, 0xeda, 0xedd, 0xee0, 0xee3, 0xee6, 0xee9, + + 0xeec, 0xeef, 0xef3, 0xef7, 0xefb, 0xeff, 0xf03, 0xf07, + 0xf0b, 0xf0f, 0xf13, 0xf17, 0xf1b, 0xf1f, 0xf23, 0xf27, + + 0xf2b, 0xf2f, 0xf33, 0xf37, 0xf3b, 0xf3f, 0xf43, 0xf47, + 0xf4b, 0xf4f, 0xf53, 0xf57, 0xf5b, 0xf5f, 0xf63, 0xf67, + + 0xf6b, 0xf6f, 0xf73, 0xf77, 0xf7b, 0xf7f, 0xf83, 0xf85, + 0xf87, 0xf89, 0xf8b, 0xf8d, 0xf8f, 0xf91, 0xf93, 0xf95, + + 0xf97, 0xf99, 0xf9b, 0xf9d, 0xf9f, 0xfa1, 0xfa3, 0xfa5, + 0xfa7, 0xfa9, 0xfab, 0xfad, 0xfaf, 0xfb1, 0xfb3, 0xfb5, + + 0xfb7, 0xfb9, 0xfbb, 0xfbd, 0xfbf, 0xfc1, 0xfc3, 0xfc5, + 0xfc7, 0xfc9, 0xfcb, 0xfcd, 0xfcf, 0xfd1, 0xfd3, 0xfd5, + + 0xfd7, 0xfd9, 0xfdb, 0xfdd, 0xfdf, 0xfe1, 0xfe3, 0xfe5, + 0xfe7, 0xfe9, 0xfeb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xfed, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xff2, 0xff6, 0xff9, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffd, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0x1000, 0x1002, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x1004, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x1006, + + 0xffff, 0xffff, 0xffff, 0x1008, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x100a, 0x100c, 0x100e, 0x1010, 0x1012, 0x1014, 0x1016, 0x1018, + 0x101a, 0x101c, 0x101e, 0x1020, 0x1022, 0x1024, 0x1026, 0x1028, + + 0x102a, 0x102c, 0x102e, 0x1030, 0x1032, 0x1034, 0x1036, 0x1038, + 0x103a, 0x103c, 0x103e, 0x1040, 0x1042, 0x1044, 0x1046, 0x1048, + + 0x104a, 0x104c, 0x104e, 0x1050, 0x1052, 0x1054, 0x1056, 0x1058, + 0x105a, 0x105c, 0x105e, 0x1060, 0x1062, 0x1064, 0x1066, 0x1068, + + 0x106a, 0x106c, 0x106e, 0x1070, 0x1072, 0x1074, 0x1076, 0x1078, + 0x107a, 0x107c, 0x107e, 0x1080, 0x1082, 0x1084, 0x1086, 0x1088, + + 0x108a, 0x108c, 0x108e, 0x1090, 0x1092, 0x1094, 0x1096, 0x1098, + 0x109a, 0x109c, 0x109e, 0x10a0, 0x10a2, 0x10a4, 0x10a6, 0x10a8, + + 0x10aa, 0x10ac, 0x10ae, 0x10b0, 0x10b2, 0x10b4, 0x10b6, 0x10b8, + 0x10ba, 0x10bc, 0x10be, 0x10c0, 0x10c2, 0x10c4, 0x10c6, 0x10c8, + + 0x10ca, 0x10cc, 0x10ce, 0x10d0, 0x10d2, 0x10d4, 0x10d6, 0x10d8, + 0x10da, 0x10dc, 0x10de, 0x10e0, 0x10e2, 0x10e4, 0x10e6, 0x10e8, + + 0x10ea, 0x10ec, 0x10ee, 0x10f0, 0x10f2, 0x10f4, 0x10f6, 0x10f8, + 0x10fa, 0x10fc, 0x10fe, 0x1100, 0x1102, 0x1104, 0x1106, 0x1108, + + 0x110a, 0x110c, 0x110e, 0x1110, 0x1112, 0x1114, 0x1116, 0x1118, + 0x111a, 0x111c, 0x111e, 0x1120, 0x1122, 0x1124, 0x1126, 0x1128, + + 0x112a, 0x112c, 0x112e, 0x1130, 0x1132, 0x1134, 0x1136, 0x1138, + 0x113a, 0x113c, 0x113e, 0x1140, 0x1142, 0x1144, 0x1146, 0x1148, + + 0x114a, 0x114c, 0x114e, 0x1150, 0x1152, 0x1154, 0x1156, 0x1158, + 0x115a, 0x115c, 0x115e, 0x1160, 0x1162, 0x1164, 0x1166, 0x1168, + + 0x116a, 0x116c, 0x116e, 0x1170, 0x1172, 0x1174, 0x1176, 0x1178, + 0x117a, 0x117c, 0x117e, 0x1180, 0x1182, 0x1184, 0x1186, 0x1188, + + 0x118a, 0x118c, 0x118e, 0x1190, 0x1192, 0x1194, 0x1196, 0x1198, + 0x119a, 0x119c, 0x119e, 0x11a0, 0x11a2, 0x11a4, 0x11a6, 0x11a8, + + 0x11aa, 0x11ac, 0x11ae, 0x11b0, 0x11b2, 0x11b4, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x11b6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x11b8, 0xffff, + 0x11ba, 0x11bc, 0x11be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0x11c0, 0xffff, 0x11c3, 0xffff, + + 0x11c6, 0xffff, 0x11c9, 0xffff, 0x11cc, 0xffff, 0x11cf, 0xffff, + 0x11d2, 0xffff, 0x11d5, 0xffff, 0x11d8, 0xffff, 0x11db, 0xffff, + + 0x11de, 0xffff, 0x11e1, 0xffff, 0xffff, 0x11e4, 0xffff, 0x11e7, + 0xffff, 0x11ea, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x11ed, 0x11f0, 0xffff, 0x11f3, 0x11f6, 0xffff, 0x11f9, 0x11fc, + 0xffff, 0x11ff, 0x1202, 0xffff, 0x1205, 0x1208, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0x120b, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0x120e, 0x1211, 0xffff, 0x1214, 0x1217, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0x121a, 0xffff, 0x121d, 0xffff, + + 0x1220, 0xffff, 0x1223, 0xffff, 0x1226, 0xffff, 0x1229, 0xffff, + 0x122c, 0xffff, 0x122f, 0xffff, 0x1232, 0xffff, 0x1235, 0xffff, + + 0x1238, 0xffff, 0x123b, 0xffff, 0xffff, 0x123e, 0xffff, 0x1241, + 0xffff, 0x1244, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x1247, 0x124a, 0xffff, 0x124d, 0x1250, 0xffff, 0x1253, 0x1256, + 0xffff, 0x1259, 0x125c, 0xffff, 0x125f, 0x1262, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0x1265, 0xffff, 0xffff, 0x1268, + 0x126b, 0x126e, 0x1271, 0xffff, 0xffff, 0xffff, 0x1274, 0x1277, + + 0xffff, 0x127a, 0x127c, 0x127e, 0x1280, 0x1282, 0x1284, 0x1286, + 0x1288, 0x128a, 0x128c, 0x128e, 0x1290, 0x1292, 0x1294, 0x1296, + + 0x1298, 0x129a, 0x129c, 0x129e, 0x12a0, 0x12a2, 0x12a4, 0x12a6, + 0x12a8, 0x12aa, 0x12ac, 0x12ae, 0x12b0, 0x12b2, 0x12b4, 0x12b6, + + 0x12b8, 0x12ba, 0x12bc, 0x12be, 0x12c0, 0x12c2, 0x12c4, 0x12c6, + 0x12c8, 0x12ca, 0x12cc, 0x12ce, 0x12d0, 0x12d2, 0x12d4, 0x12d6, + + 0x12d8, 0x12da, 0x12dc, 0x12de, 0x12e0, 0x12e2, 0x12e4, 0x12e6, + 0x12e8, 0x12ea, 0x12ec, 0x12ee, 0x12f0, 0x12f2, 0x12f4, 0x12f6, + + 0x12f8, 0x12fa, 0x12fc, 0x12fe, 0x1300, 0x1302, 0x1304, 0x1306, + 0x1308, 0x130a, 0x130c, 0x130e, 0x1310, 0x1312, 0x1314, 0x1316, + + 0x1318, 0x131a, 0x131c, 0x131e, 0x1320, 0x1322, 0x1324, 0x1326, + 0x1328, 0x132a, 0x132c, 0x132e, 0x1330, 0x1332, 0x1334, 0xffff, + + 0xffff, 0xffff, 0x1336, 0x1338, 0x133a, 0x133c, 0x133e, 0x1340, + 0x1342, 0x1344, 0x1346, 0x1348, 0x134a, 0x134c, 0x134e, 0x1350, + + 0x1352, 0x1356, 0x135a, 0x135e, 0x1362, 0x1366, 0x136a, 0x136e, + 0x1372, 0x1376, 0x137a, 0x137e, 0x1382, 0x1386, 0x138a, 0x138f, + + 0x1394, 0x1399, 0x139e, 0x13a3, 0x13a8, 0x13ad, 0x13b2, 0x13b7, + 0x13bc, 0x13c1, 0x13c6, 0x13cb, 0x13d0, 0x13d5, 0x13dd, 0xffff, + + 0x13e4, 0x13e8, 0x13ec, 0x13f0, 0x13f4, 0x13f8, 0x13fc, 0x1400, + 0x1404, 0x1408, 0x140c, 0x1410, 0x1414, 0x1418, 0x141c, 0x1420, + + 0x1424, 0x1428, 0x142c, 0x1430, 0x1434, 0x1438, 0x143c, 0x1440, + 0x1444, 0x1448, 0x144c, 0x1450, 0x1454, 0x1458, 0x145c, 0x1460, + + 0x1464, 0x1468, 0x146c, 0x1470, 0x1474, 0x1476, 0x1478, 0x147a, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x147c, 0x1480, 0x1483, 0x1486, 0x1489, 0x148c, 0x148f, 0x1492, + 0x1495, 0x1498, 0x149b, 0x149e, 0x14a1, 0x14a4, 0x14a7, 0x14aa, + + 0x14ad, 0x14af, 0x14b1, 0x14b3, 0x14b5, 0x14b7, 0x14b9, 0x14bb, + 0x14bd, 0x14bf, 0x14c1, 0x14c3, 0x14c5, 0x14c7, 0x14c9, 0x14cc, + + 0x14cf, 0x14d2, 0x14d5, 0x14d8, 0x14db, 0x14de, 0x14e1, 0x14e4, + 0x14e7, 0x14ea, 0x14ed, 0x14f0, 0x14f3, 0x14f9, 0x14fe, 0xffff, + + 0x1501, 0x1503, 0x1505, 0x1507, 0x1509, 0x150b, 0x150d, 0x150f, + 0x1511, 0x1513, 0x1515, 0x1517, 0x1519, 0x151b, 0x151d, 0x151f, + + 0x1521, 0x1523, 0x1525, 0x1527, 0x1529, 0x152b, 0x152d, 0x152f, + 0x1531, 0x1533, 0x1535, 0x1537, 0x1539, 0x153b, 0x153d, 0x153f, + + 0x1541, 0x1543, 0x1545, 0x1547, 0x1549, 0x154b, 0x154d, 0x154f, + 0x1551, 0x1553, 0x1555, 0x1557, 0x1559, 0x155b, 0x155d, 0x155f, + + 0x1561, 0x1563, 0x1566, 0x1569, 0x156c, 0x156f, 0x1572, 0x1575, + 0x1578, 0x157b, 0x157e, 0x1581, 0x1584, 0x1587, 0x158a, 0x158d, + + 0x1590, 0x1593, 0x1596, 0x1599, 0x159c, 0x159f, 0x15a2, 0x15a5, + 0x15a8, 0x15ab, 0x15af, 0x15b3, 0x15b7, 0x15ba, 0x15be, 0x15c1, + + 0x15c5, 0x15c7, 0x15c9, 0x15cb, 0x15cd, 0x15cf, 0x15d1, 0x15d3, + 0x15d5, 0x15d7, 0x15d9, 0x15db, 0x15dd, 0x15df, 0x15e1, 0x15e3, + + 0x15e5, 0x15e7, 0x15e9, 0x15eb, 0x15ed, 0x15ef, 0x15f1, 0x15f3, + 0x15f5, 0x15f7, 0x15f9, 0x15fb, 0x15fd, 0x15ff, 0x1601, 0x1603, + + 0x1605, 0x1607, 0x1609, 0x160b, 0x160d, 0x160f, 0x1611, 0x1613, + 0x1615, 0x1617, 0x1619, 0x161b, 0x161d, 0x161f, 0x1621, 0xffff, + + 0x1623, 0x1628, 0x162d, 0x1632, 0x1636, 0x163b, 0x163f, 0x1643, + 0x1649, 0x164e, 0x1652, 0x1656, 0x165a, 0x165f, 0x1664, 0x1668, + + 0x166c, 0x166f, 0x1673, 0x1678, 0x167d, 0x1680, 0x1686, 0x168d, + 0x1693, 0x1697, 0x169d, 0x16a3, 0x16a8, 0x16ac, 0x16b0, 0x16b4, + + 0x16b9, 0x16bf, 0x16c4, 0x16c8, 0x16cc, 0x16d0, 0x16d3, 0x16d6, + 0x16d9, 0x16dc, 0x16e0, 0x16e4, 0x16ea, 0x16ee, 0x16f3, 0x16f9, + + 0x16fd, 0x1700, 0x1703, 0x1709, 0x170e, 0x1714, 0x1718, 0x171e, + 0x1721, 0x1725, 0x1729, 0x172d, 0x1731, 0x1735, 0x173a, 0x173e, + + 0x1741, 0x1745, 0x1749, 0x174d, 0x1752, 0x1756, 0x175a, 0x175e, + 0x1764, 0x1769, 0x176c, 0x1772, 0x1775, 0x177a, 0x177f, 0x1783, + + 0x1787, 0x178b, 0x1790, 0x1793, 0x1797, 0x179c, 0x179f, 0x17a5, + 0x17a9, 0x17ac, 0x17af, 0x17b2, 0x17b5, 0x17b8, 0x17bb, 0x17be, + + 0x17c1, 0x17c4, 0x17c7, 0x17cb, 0x17cf, 0x17d3, 0x17d7, 0x17db, + 0x17df, 0x17e3, 0x17e7, 0x17eb, 0x17ef, 0x17f3, 0x17f7, 0x17fb, + + 0x17ff, 0x1803, 0x1807, 0x180a, 0x180d, 0x1811, 0x1814, 0x1817, + 0x181a, 0x181e, 0x1822, 0x1825, 0x1828, 0x182b, 0x182e, 0x1831, + + 0x1836, 0x1839, 0x183c, 0x183f, 0x1842, 0x1845, 0x1848, 0x184b, + 0x184e, 0x1852, 0x1857, 0x185a, 0x185d, 0x1860, 0x1863, 0x1866, + + 0x1869, 0x186c, 0x1870, 0x1874, 0x1878, 0x187c, 0x187f, 0x1882, + 0x1885, 0x1888, 0x188b, 0x188e, 0x1891, 0x1894, 0x1897, 0x189a, + + 0x189e, 0x18a2, 0x18a5, 0x18a9, 0x18ad, 0x18b1, 0x18b4, 0x18b8, + 0x18bc, 0x18c1, 0x18c4, 0x18c8, 0x18cc, 0x18d0, 0x18d4, 0x18da, + + 0x18e1, 0x18e4, 0x18e7, 0x18ea, 0x18ed, 0x18f0, 0x18f3, 0x18f6, + 0x18f9, 0x18fc, 0x18ff, 0x1902, 0x1905, 0x1908, 0x190b, 0x190e, + + 0x1911, 0x1914, 0x1917, 0x191c, 0x191f, 0x1922, 0x1925, 0x192a, + 0x192e, 0x1931, 0x1934, 0x1937, 0x193a, 0x193d, 0x1940, 0x1943, + + 0x1946, 0x1949, 0x194c, 0x1950, 0x1953, 0x1956, 0x195a, 0x195e, + 0x1961, 0x1966, 0x196a, 0x196d, 0x1970, 0x1973, 0x1976, 0x197a, + + 0x197e, 0x1981, 0x1984, 0x1987, 0x198a, 0x198d, 0x1990, 0x1993, + 0x1996, 0x1999, 0x199d, 0x19a1, 0x19a5, 0x19a9, 0x19ad, 0x19b1, + + 0x19b5, 0x19b9, 0x19bd, 0x19c1, 0x19c5, 0x19c9, 0x19cd, 0x19d1, + 0x19d5, 0x19d9, 0x19dd, 0x19e1, 0x19e5, 0x19e9, 0x19ed, 0x19f1, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x19f5, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x19f7, 0x19f9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x19fb, 0x19fd, 0x19ff, 0x1a01, 0x1a03, 0x1a05, 0x1a07, 0x1a09, + 0x1a0b, 0x1a0d, 0x1a0f, 0x1a11, 0x1a13, 0x1a15, 0x1a17, 0x1a19, + 0x1a1b, 0x1a1d, 0x1a1f, 0x1a21, 0x1a23, 0x1a25, 0x1a27, 0x1a29, + 0x1a2b, 0x1a2d, 0x1a2f, 0x1a31, 0x1a33, 0x1a35, 0x1a37, 0x1a39, + 0x1a3b, 0x1a3d, 0x1a3f, 0x1a41, 0x1a43, 0x1a45, 0x1a47, 0x1a49, + 0x1a4b, 0x1a4d, 0x1a4f, 0x1a51, 0x1a53, 0x1a55, 0x1a57, 0x1a59, + 0x1a5b, 0x1a5d, 0x1a5f, 0x1a61, 0x1a63, 0x1a65, 0x1a67, 0x1a69, + 0x1a6b, 0x1a6d, 0x1a6f, 0x1a71, 0x1a73, 0x1a75, 0x1a77, 0x1a79, + 0x1a7b, 0x1a7d, 0x1a7f, 0x1a81, 0x1a83, 0x1a85, 0x1a87, 0x1a89, + 0x1a8b, 0x1a8d, 0x1a8f, 0x1a91, 0x1a93, 0x1a95, 0x1a97, 0x1a99, + 0x1a9b, 0x1a9d, 0x1a9f, 0x1aa1, 0x1aa3, 0x1aa5, 0x1aa7, 0x1aa9, + 0x1aab, 0x1aad, 0x1aaf, 0x1ab1, 0x1ab3, 0x1ab5, 0x1ab7, 0x1ab9, + 0x1abb, 0x1abd, 0x1abf, 0x1ac1, 0x1ac3, 0x1ac5, 0x1ac7, 0x1ac9, + 0x1acb, 0x1acd, 0x1acf, 0x1ad1, 0x1ad3, 0x1ad5, 0x1ad7, 0x1ad9, + 0x1adb, 0x1add, 0x1adf, 0x1ae1, 0x1ae3, 0x1ae5, 0x1ae7, 0x1ae9, + 0x1aeb, 0x1aed, 0x1aef, 0x1af1, 0x1af3, 0x1af5, 0x1af7, 0x1af9, + 0x1afb, 0x1afd, 0x1aff, 0x1b01, 0x1b03, 0x1b05, 0x1b07, 0x1b09, + 0x1b0b, 0x1b0d, 0x1b0f, 0x1b11, 0x1b13, 0x1b15, 0x1b17, 0x1b19, + 0x1b1b, 0x1b1d, 0x1b1f, 0x1b21, 0x1b23, 0x1b25, 0x1b27, 0x1b29, + 0x1b2b, 0x1b2d, 0x1b2f, 0x1b31, 0x1b33, 0x1b35, 0x1b37, 0x1b39, + 0x1b3b, 0x1b3d, 0x1b3f, 0x1b41, 0x1b43, 0x1b45, 0x1b47, 0x1b49, + 0x1b4b, 0x1b4d, 0x1b4f, 0x1b51, 0x1b53, 0x1b55, 0x1b57, 0x1b59, + 0x1b5b, 0x1b5d, 0x1b5f, 0x1b61, 0x1b63, 0x1b65, 0x1b67, 0x1b69, + 0x1b6b, 0x1b6d, 0x1b6f, 0x1b71, 0x1b73, 0x1b75, 0x1b77, 0x1b79, + 0x1b7b, 0x1b7d, 0x1b7f, 0x1b81, 0x1b83, 0x1b85, 0x1b87, 0x1b89, + 0x1b8b, 0x1b8d, 0x1b8f, 0x1b91, 0x1b93, 0x1b95, 0x1b97, 0x1b99, + 0x1b9b, 0x1b9d, 0x1b9f, 0x1ba1, 0x1ba3, 0x1ba5, 0x1ba7, 0x1ba9, + 0x1bab, 0x1bad, 0x1baf, 0x1bb1, 0x1bb3, 0x1bb5, 0x1bb7, 0x1bb9, + 0x1bbb, 0x1bbd, 0x1bbf, 0x1bc1, 0x1bc3, 0x1bc5, 0x1bc7, 0x1bc9, + 0x1bcb, 0x1bcd, 0x1bcf, 0x1bd1, 0x1bd3, 0x1bd5, 0x1bd7, 0x1bd9, + 0x1bdb, 0x1bdd, 0x1bdf, 0x1be1, 0x1be3, 0x1be5, 0x1be7, 0x1be9, + 0x1beb, 0x1bed, 0x1bef, 0x1bf1, 0x1bf3, 0x1bf5, 0x1bf7, 0x1bf9, + + 0x1bfb, 0x1bfd, 0x1bff, 0x1c01, 0x1c03, 0x1c05, 0x1c07, 0x1c09, + 0x1c0b, 0x1c0d, 0x1c0f, 0x1c11, 0x1c13, 0x1c15, 0xffff, 0xffff, + 0x1c17, 0xffff, 0x1c19, 0xffff, 0xffff, 0x1c1b, 0x1c1d, 0x1c1f, + 0x1c21, 0x1c23, 0x1c25, 0x1c27, 0x1c29, 0x1c2b, 0x1c2d, 0xffff, + 0x1c2f, 0xffff, 0x1c31, 0xffff, 0xffff, 0x1c33, 0x1c35, 0xffff, + 0xffff, 0xffff, 0x1c37, 0x1c39, 0x1c3b, 0x1c3d, 0x1c3f, 0x1c41, + 0x1c43, 0x1c45, 0x1c47, 0x1c49, 0x1c4b, 0x1c4d, 0x1c4f, 0x1c51, + 0x1c53, 0x1c55, 0x1c57, 0x1c59, 0x1c5b, 0x1c5d, 0x1c5f, 0x1c61, + 0x1c63, 0x1c65, 0x1c67, 0x1c69, 0x1c6b, 0x1c6d, 0x1c6f, 0x1c71, + 0x1c73, 0x1c75, 0x1c77, 0x1c79, 0x1c7b, 0x1c7d, 0x1c7f, 0x1c81, + 0x1c83, 0x1c85, 0x1c87, 0x1c89, 0x1c8b, 0x1c8d, 0x1c8f, 0x1c91, + 0x1c93, 0x1c95, 0x1c97, 0x1c99, 0x1c9b, 0x1c9d, 0x1c9f, 0x1ca1, + 0x1ca3, 0x1ca5, 0x1ca7, 0x1ca9, 0x1cab, 0x1cad, 0x1caf, 0x1cb1, + 0x1cb3, 0x1cb5, 0x1cb7, 0x1cb9, 0x1cbb, 0x1cbe, 0xffff, 0xffff, + 0x1cc0, 0x1cc2, 0x1cc4, 0x1cc6, 0x1cc8, 0x1cca, 0x1ccc, 0x1cce, + 0x1cd0, 0x1cd2, 0x1cd4, 0x1cd6, 0x1cd8, 0x1cda, 0x1cdc, 0x1cde, + 0x1ce0, 0x1ce2, 0x1ce4, 0x1ce6, 0x1ce8, 0x1cea, 0x1cec, 0x1cee, + 0x1cf0, 0x1cf2, 0x1cf4, 0x1cf6, 0x1cf8, 0x1cfa, 0x1cfc, 0x1cfe, + 0x1d00, 0x1d02, 0x1d04, 0x1d06, 0x1d08, 0x1d0a, 0x1d0c, 0x1d0e, + 0x1d10, 0x1d12, 0x1d14, 0x1d16, 0x1d18, 0x1d1a, 0x1d1c, 0x1d1e, + 0x1d20, 0x1d22, 0x1d24, 0x1d26, 0x1d28, 0x1d2a, 0x1d2c, 0x1d2e, + 0x1d30, 0x1d32, 0x1d34, 0x1d36, 0x1d38, 0x1d3a, 0x1d3c, 0x1d3e, + 0x1d40, 0x1d42, 0x1d44, 0x1d46, 0x1d48, 0x1d4a, 0x1d4c, 0x1d4e, + 0x1d50, 0x1d52, 0x1d54, 0x1d56, 0x1d58, 0x1d5a, 0x1d5c, 0x1d5e, + 0x1d60, 0x1d62, 0x1d64, 0x1d66, 0x1d68, 0x1d6a, 0x1d6c, 0x1d6e, + 0x1d70, 0x1d72, 0x1d74, 0x1d76, 0x1d78, 0x1d7a, 0x1d7c, 0x1d7e, + 0x1d81, 0x1d84, 0x1d87, 0x1d89, 0x1d8b, 0x1d8d, 0x1d90, 0x1d93, + 0x1d96, 0x1d98, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x1d9a, 0x1d9d, 0x1da0, 0x1da3, 0x1da7, 0x1dab, 0x1dae, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0x1db1, 0x1db4, 0x1db7, 0x1dba, 0x1dbd, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x1dc0, 0xffff, 0x1dc3, + 0x1dc6, 0x1dc8, 0x1dca, 0x1dcc, 0x1dce, 0x1dd0, 0x1dd2, 0x1dd4, + 0x1dd6, 0x1dd8, 0x1dda, 0x1ddd, 0x1de0, 0x1de3, 0x1de6, 0x1de9, + 0x1dec, 0x1def, 0x1df2, 0x1df5, 0x1df8, 0x1dfb, 0x1dfe, 0xffff, + 0x1e01, 0x1e04, 0x1e07, 0x1e0a, 0x1e0d, 0xffff, 0x1e10, 0xffff, + 0x1e13, 0x1e16, 0xffff, 0x1e19, 0x1e1c, 0xffff, 0x1e1f, 0x1e22, + 0x1e25, 0x1e28, 0x1e2b, 0x1e2e, 0x1e31, 0x1e34, 0x1e37, 0x1e3a, + 0x1e3d, 0x1e3f, 0x1e41, 0x1e43, 0x1e45, 0x1e47, 0x1e49, 0x1e4b, + 0x1e4d, 0x1e4f, 0x1e51, 0x1e53, 0x1e55, 0x1e57, 0x1e59, 0x1e5b, + 0x1e5d, 0x1e5f, 0x1e61, 0x1e63, 0x1e65, 0x1e67, 0x1e69, 0x1e6b, + 0x1e6d, 0x1e6f, 0x1e71, 0x1e73, 0x1e75, 0x1e77, 0x1e79, 0x1e7b, + 0x1e7d, 0x1e7f, 0x1e81, 0x1e83, 0x1e85, 0x1e87, 0x1e89, 0x1e8b, + 0x1e8d, 0x1e8f, 0x1e91, 0x1e93, 0x1e95, 0x1e97, 0x1e99, 0x1e9b, + 0x1e9d, 0x1e9f, 0x1ea1, 0x1ea3, 0x1ea5, 0x1ea7, 0x1ea9, 0x1eab, + 0x1ead, 0x1eaf, 0x1eb1, 0x1eb3, 0x1eb5, 0x1eb7, 0x1eb9, 0x1ebb, + 0x1ebd, 0x1ebf, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ec7, 0x1ec9, 0x1ecb, + 0x1ecd, 0x1ecf, 0x1ed1, 0x1ed3, 0x1ed5, 0x1ed7, 0x1ed9, 0x1edb, + 0x1edd, 0x1edf, 0x1ee1, 0x1ee3, 0x1ee5, 0x1ee7, 0x1ee9, 0x1eeb, + 0x1eed, 0x1eef, 0x1ef1, 0x1ef3, 0x1ef5, 0x1ef7, 0x1ef9, 0x1efb, + 0x1efd, 0x1eff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0x1f01, 0x1f03, 0x1f05, 0x1f07, 0x1f09, + 0x1f0b, 0x1f0d, 0x1f0f, 0x1f11, 0x1f13, 0x1f15, 0x1f17, 0x1f19, + 0x1f1b, 0x1f1d, 0x1f1f, 0x1f21, 0x1f23, 0x1f25, 0x1f27, 0x1f29, + 0x1f2b, 0x1f2d, 0x1f2f, 0x1f32, 0x1f35, 0x1f38, 0x1f3b, 0x1f3e, + 0x1f41, 0x1f44, 0x1f47, 0x1f4a, 0x1f4d, 0x1f50, 0x1f53, 0x1f56, + 0x1f59, 0x1f5c, 0x1f5f, 0x1f62, 0x1f65, 0x1f67, 0x1f69, 0x1f6b, + + 0x1f6d, 0x1f70, 0x1f73, 0x1f76, 0x1f79, 0x1f7c, 0x1f7f, 0x1f82, + 0x1f85, 0x1f88, 0x1f8b, 0x1f8e, 0x1f91, 0x1f94, 0x1f97, 0x1f9a, + 0x1f9d, 0x1fa0, 0x1fa3, 0x1fa6, 0x1fa9, 0x1fac, 0x1faf, 0x1fb2, + 0x1fb5, 0x1fb8, 0x1fbb, 0x1fbe, 0x1fc1, 0x1fc4, 0x1fc7, 0x1fca, + 0x1fcd, 0x1fd0, 0x1fd3, 0x1fd6, 0x1fd9, 0x1fdc, 0x1fdf, 0x1fe2, + 0x1fe5, 0x1fe8, 0x1feb, 0x1fee, 0x1ff1, 0x1ff4, 0x1ff7, 0x1ffa, + 0x1ffd, 0x2000, 0x2003, 0x2006, 0x2009, 0x200c, 0x200f, 0x2012, + 0x2015, 0x2018, 0x201b, 0x201e, 0x2021, 0x2024, 0x2027, 0x202a, + 0x202d, 0x2030, 0x2033, 0x2036, 0x2039, 0x203c, 0x203f, 0x2042, + 0x2045, 0x2048, 0x204b, 0x204e, 0x2051, 0x2054, 0x2057, 0x205a, + 0x205d, 0x2060, 0x2063, 0x2066, 0x2069, 0x206c, 0x206f, 0x2072, + 0x2075, 0x2078, 0x207b, 0x207e, 0x2081, 0x2084, 0x2087, 0x208b, + 0x208f, 0x2093, 0x2097, 0x209b, 0x209f, 0x20a2, 0x20a5, 0x20a8, + 0x20ab, 0x20ae, 0x20b1, 0x20b4, 0x20b7, 0x20ba, 0x20bd, 0x20c0, + 0x20c3, 0x20c6, 0x20c9, 0x20cc, 0x20cf, 0x20d2, 0x20d5, 0x20d8, + 0x20db, 0x20de, 0x20e1, 0x20e4, 0x20e7, 0x20ea, 0x20ed, 0x20f0, + 0x20f3, 0x20f6, 0x20f9, 0x20fc, 0x20ff, 0x2102, 0x2105, 0x2108, + 0x210b, 0x210e, 0x2111, 0x2114, 0x2117, 0x211a, 0x211d, 0x2120, + 0x2123, 0x2126, 0x2129, 0x212c, 0x212f, 0x2132, 0x2135, 0x2138, + 0x213b, 0x213e, 0x2141, 0x2144, 0x2147, 0x214a, 0x214d, 0x2150, + 0x2153, 0x2156, 0x2159, 0x215c, 0x215f, 0x2162, 0x2165, 0x2168, + 0x216b, 0x216e, 0x2171, 0x2174, 0x2177, 0x217a, 0x217d, 0x2180, + 0x2183, 0x2186, 0x2189, 0x218c, 0x218f, 0x2192, 0x2195, 0x2198, + 0x219b, 0x219e, 0x21a1, 0x21a4, 0x21a7, 0x21aa, 0x21ad, 0x21b0, + 0x21b3, 0x21b6, 0x21b9, 0x21bc, 0x21bf, 0x21c2, 0x21c5, 0x21c8, + 0x21cb, 0x21ce, 0x21d1, 0x21d4, 0x21d7, 0x21da, 0x21dd, 0x21e0, + 0x21e3, 0x21e6, 0x21e9, 0x21ec, 0x21ef, 0x21f2, 0x21f5, 0x21f8, + 0x21fb, 0x21fe, 0x2201, 0x2204, 0x2207, 0x220a, 0x220d, 0x2210, + 0x2213, 0x2216, 0x2219, 0x221c, 0x221f, 0x2222, 0x2225, 0x2228, + 0x222b, 0x222e, 0x2231, 0x2234, 0x2237, 0x223a, 0x223d, 0x2240, + 0x2243, 0x2246, 0x2249, 0x224d, 0x2251, 0x2255, 0x2258, 0x225b, + 0x225e, 0x2261, 0x2264, 0x2267, 0x226a, 0x226d, 0x2270, 0x2273, + + 0x2276, 0x2279, 0x227c, 0x227f, 0x2282, 0x2285, 0x2288, 0x228b, + 0x228e, 0x2291, 0x2294, 0x2297, 0x229a, 0x229d, 0x22a0, 0x22a3, + 0x22a6, 0x22a9, 0x22ac, 0x22af, 0x22b2, 0x22b5, 0x22b8, 0x22bb, + 0x22be, 0x22c1, 0x22c4, 0x22c7, 0x22ca, 0x22cd, 0x22d0, 0x22d3, + 0x22d6, 0x22d9, 0x22dc, 0x22df, 0x22e2, 0x22e5, 0x22e8, 0x22eb, + 0x22ee, 0x22f1, 0x22f4, 0x22f7, 0x22fa, 0x22fd, 0x2300, 0x2303, + 0x2306, 0x2309, 0x230c, 0x230f, 0x2312, 0x2315, 0x2318, 0x231b, + 0x231e, 0x2321, 0x2324, 0x2327, 0x232a, 0x232d, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x2330, 0x2334, 0x2338, 0x233c, 0x2340, 0x2344, 0x2348, 0x234c, + 0x2350, 0x2354, 0x2358, 0x235c, 0x2360, 0x2364, 0x2368, 0x236c, + 0x2370, 0x2374, 0x2378, 0x237c, 0x2380, 0x2384, 0x2388, 0x238c, + 0x2390, 0x2394, 0x2398, 0x239c, 0x23a0, 0x23a4, 0x23a8, 0x23ac, + 0x23b0, 0x23b4, 0x23b8, 0x23bc, 0x23c0, 0x23c4, 0x23c8, 0x23cc, + 0x23d0, 0x23d4, 0x23d8, 0x23dc, 0x23e0, 0x23e4, 0x23e8, 0x23ec, + 0x23f0, 0x23f4, 0x23f8, 0x23fc, 0x2400, 0x2404, 0x2408, 0x240c, + 0x2410, 0x2414, 0x2418, 0x241c, 0x2420, 0x2424, 0x2428, 0x242c, + 0xffff, 0xffff, 0x2430, 0x2434, 0x2438, 0x243c, 0x2440, 0x2444, + 0x2448, 0x244c, 0x2450, 0x2454, 0x2458, 0x245c, 0x2460, 0x2464, + 0x2468, 0x246c, 0x2470, 0x2474, 0x2478, 0x247c, 0x2480, 0x2484, + 0x2488, 0x248c, 0x2490, 0x2494, 0x2498, 0x249c, 0x24a0, 0x24a4, + 0x24a8, 0x24ac, 0x24b0, 0x24b4, 0x24b8, 0x24bc, 0x24c0, 0x24c4, + 0x24c8, 0x24cc, 0x24d0, 0x24d4, 0x24d8, 0x24dc, 0x24e0, 0x24e4, + 0x24e8, 0x24ec, 0x24f0, 0x24f4, 0x24f8, 0x24fc, 0x2500, 0x2504, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x2508, 0x250c, 0x2510, 0x2515, 0x251a, 0x251f, 0x2524, 0x2529, + 0x252e, 0x2533, 0x2537, 0x254a, 0x2553, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x2558, 0x255a, 0x255c, 0x255e, 0x2560, 0x2562, 0x2564, 0x2566, + 0x2568, 0x256a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x256c, 0x256e, 0x2570, 0x2572, 0x2574, 0x2576, 0x2578, 0x257a, + 0x257c, 0x257e, 0x2580, 0x2582, 0x2584, 0x2586, 0x2588, 0x258a, + 0x258c, 0x258e, 0x2590, 0x2592, 0x2594, 0xffff, 0xffff, 0x2596, + 0x2598, 0x259a, 0x259c, 0x259e, 0x25a0, 0x25a2, 0x25a4, 0x25a6, + 0x25a8, 0x25aa, 0x25ac, 0xffff, 0x25ae, 0x25b0, 0x25b2, 0x25b4, + 0x25b6, 0x25b8, 0x25ba, 0x25bc, 0x25be, 0x25c0, 0x25c2, 0x25c4, + 0x25c6, 0x25c8, 0x25ca, 0x25cc, 0x25ce, 0x25d0, 0x25d2, 0xffff, + 0x25d4, 0x25d6, 0x25d8, 0x25da, 0xffff, 0xffff, 0xffff, 0xffff, + 0x25dc, 0x25df, 0x25e2, 0xffff, 0x25e5, 0xffff, 0x25e8, 0x25eb, + 0x25ee, 0x25f1, 0x25f4, 0x25f7, 0x25fa, 0x25fd, 0x2600, 0x2603, + 0x2606, 0x2608, 0x260a, 0x260c, 0x260e, 0x2610, 0x2612, 0x2614, + 0x2616, 0x2618, 0x261a, 0x261c, 0x261e, 0x2620, 0x2622, 0x2624, + 0x2626, 0x2628, 0x262a, 0x262c, 0x262e, 0x2630, 0x2632, 0x2634, + 0x2636, 0x2638, 0x263a, 0x263c, 0x263e, 0x2640, 0x2642, 0x2644, + 0x2646, 0x2648, 0x264a, 0x264c, 0x264e, 0x2650, 0x2652, 0x2654, + 0x2656, 0x2658, 0x265a, 0x265c, 0x265e, 0x2660, 0x2662, 0x2664, + 0x2666, 0x2668, 0x266a, 0x266c, 0x266e, 0x2670, 0x2672, 0x2674, + 0x2676, 0x2678, 0x267a, 0x267c, 0x267e, 0x2680, 0x2682, 0x2684, + 0x2686, 0x2688, 0x268a, 0x268c, 0x268e, 0x2690, 0x2692, 0x2694, + 0x2696, 0x2698, 0x269a, 0x269c, 0x269e, 0x26a0, 0x26a2, 0x26a4, + 0x26a6, 0x26a8, 0x26aa, 0x26ac, 0x26ae, 0x26b0, 0x26b2, 0x26b4, + 0x26b6, 0x26b8, 0x26ba, 0x26bc, 0x26be, 0x26c0, 0x26c2, 0x26c4, + 0x26c6, 0x26c8, 0x26ca, 0x26cc, 0x26ce, 0x26d0, 0x26d2, 0x26d4, + 0x26d6, 0x26d8, 0x26da, 0x26dc, 0x26de, 0x26e0, 0x26e2, 0x26e4, + 0x26e6, 0x26e8, 0x26ea, 0x26ec, 0x26ee, 0x26f0, 0x26f3, 0x26f6, + 0x26f9, 0x26fc, 0x26ff, 0x2702, 0x2705, 0xffff, 0xffff, 0xffff, + + 0xffff, 0x2708, 0x270a, 0x270c, 0x270e, 0x2710, 0x2712, 0x2714, + 0x2716, 0x2718, 0x271a, 0x271c, 0x271e, 0x2720, 0x2722, 0x2724, + 0x2726, 0x2728, 0x272a, 0x272c, 0x272e, 0x2730, 0x2732, 0x2734, + 0x2736, 0x2738, 0x273a, 0x273c, 0x273e, 0x2740, 0x2742, 0x2744, + 0x2746, 0x2748, 0x274a, 0x274c, 0x274e, 0x2750, 0x2752, 0x2754, + 0x2756, 0x2758, 0x275a, 0x275c, 0x275e, 0x2760, 0x2762, 0x2764, + 0x2766, 0x2768, 0x276a, 0x276c, 0x276e, 0x2770, 0x2772, 0x2774, + 0x2776, 0x2778, 0x277a, 0x277c, 0x277e, 0x2780, 0x2782, 0x2784, + 0x2786, 0x2788, 0x278a, 0x278c, 0x278e, 0x2790, 0x2792, 0x2794, + 0x2796, 0x2798, 0x279a, 0x279c, 0x279e, 0x27a0, 0x27a2, 0x27a4, + 0x27a6, 0x27a8, 0x27aa, 0x27ac, 0x27ae, 0x27b0, 0x27b2, 0x27b4, + 0x27b6, 0x27b8, 0x27ba, 0x27bc, 0x27be, 0x27c0, 0x27c2, 0x27c4, + 0x27c6, 0x27c8, 0x27ca, 0x27cc, 0x27ce, 0x27d0, 0x27d2, 0x27d4, + 0x27d6, 0x27d8, 0x27da, 0x27dc, 0x27de, 0x27e0, 0x27e2, 0x27e4, + 0x27e6, 0x27e8, 0x27ea, 0x27ec, 0x27ee, 0x27f0, 0x27f2, 0x27f4, + 0x27f6, 0x27f8, 0x27fa, 0x27fc, 0x27fe, 0x2800, 0x2802, 0x2804, + 0x2806, 0x2808, 0x280a, 0x280c, 0x280e, 0x2810, 0x2812, 0x2814, + 0x2816, 0x2818, 0x281a, 0x281c, 0x281e, 0x2820, 0x2822, 0x2824, + 0x2826, 0x2828, 0x282a, 0x282c, 0x282e, 0x2830, 0x2832, 0x2834, + 0x2836, 0x2838, 0x283a, 0x283c, 0x283e, 0x2840, 0x2842, 0x2844, + 0x2846, 0x2848, 0x284a, 0x284c, 0x284e, 0x2850, 0x2852, 0x2854, + 0x2856, 0x2858, 0x285a, 0x285c, 0x285e, 0x2860, 0x2862, 0x2864, + 0x2866, 0x2868, 0x286a, 0x286c, 0x286e, 0x2870, 0x2872, 0x2874, + 0x2876, 0x2878, 0x287a, 0x287c, 0x287e, 0x2880, 0x2882, 0xffff, + 0xffff, 0xffff, 0x2884, 0x2886, 0x2888, 0x288a, 0x288c, 0x288e, + 0xffff, 0xffff, 0x2890, 0x2892, 0x2894, 0x2896, 0x2898, 0x289a, + 0xffff, 0xffff, 0x289c, 0x289e, 0x28a0, 0x28a2, 0x28a4, 0x28a6, + 0xffff, 0xffff, 0x28a8, 0x28aa, 0x28ac, 0xffff, 0xffff, 0xffff, + 0x28ae, 0x28b0, 0x28b2, 0x28b4, 0x28b6, 0x28b8, 0x28ba, 0xffff, + 0x28bc, 0x28be, 0x28c0, 0x28c2, 0x28c4, 0x28c6, 0x28c8, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0x28ca, 0xffff, 0x28cf, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0x28d4, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x28d9, 0x28de, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x28e3, 0x28e8, + 0x28ed, 0x28f2, 0x28f7, 0x28fc, 0x2901, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0x2906, 0x290b, 0x2910, 0x2915, 0x291a, + 0x291f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x2924, 0x2926, 0x2928, 0x292a, 0x292c, 0x292e, 0x2930, 0x2932, + 0x2934, 0x2936, 0x2938, 0x293a, 0x293c, 0x293e, 0x2940, 0x2942, + 0x2944, 0x2946, 0x2948, 0x294a, 0x294c, 0x294e, 0x2950, 0x2952, + 0x2954, 0x2956, 0x2958, 0x295a, 0x295c, 0x295e, 0x2960, 0x2962, + 0x2964, 0x2966, 0x2968, 0x296a, 0x296c, 0x296e, 0x2970, 0x2972, + 0x2974, 0x2976, 0x2978, 0x297a, 0x297c, 0x297e, 0x2980, 0x2982, + 0x2984, 0x2986, 0x2988, 0x298a, 0x298c, 0x298e, 0x2990, 0x2992, + 0x2994, 0x2996, 0x2998, 0x299a, 0x299c, 0x299e, 0x29a0, 0x29a2, + 0x29a4, 0x29a6, 0x29a8, 0x29aa, 0x29ac, 0x29ae, 0x29b0, 0x29b2, + 0x29b4, 0x29b6, 0x29b8, 0x29ba, 0x29bc, 0x29be, 0x29c0, 0x29c2, + 0x29c4, 0x29c6, 0x29c8, 0x29ca, 0x29cc, 0xffff, 0x29ce, 0x29d0, + 0x29d2, 0x29d4, 0x29d6, 0x29d8, 0x29da, 0x29dc, 0x29de, 0x29e0, + 0x29e2, 0x29e4, 0x29e6, 0x29e8, 0x29ea, 0x29ec, 0x29ee, 0x29f0, + 0x29f2, 0x29f4, 0x29f6, 0x29f8, 0x29fa, 0x29fc, 0x29fe, 0x2a00, + 0x2a02, 0x2a04, 0x2a06, 0x2a08, 0x2a0a, 0x2a0c, 0x2a0e, 0x2a10, + 0x2a12, 0x2a14, 0x2a16, 0x2a18, 0x2a1a, 0x2a1c, 0x2a1e, 0x2a20, + 0x2a22, 0x2a24, 0x2a26, 0x2a28, 0x2a2a, 0x2a2c, 0x2a2e, 0x2a30, + 0x2a32, 0x2a34, 0x2a36, 0x2a38, 0x2a3a, 0x2a3c, 0x2a3e, 0x2a40, + 0x2a42, 0x2a44, 0x2a46, 0x2a48, 0x2a4a, 0x2a4c, 0x2a4e, 0x2a50, + 0x2a52, 0x2a54, 0x2a56, 0x2a58, 0x2a5a, 0xffff, 0x2a5c, 0x2a5e, + 0xffff, 0xffff, 0x2a60, 0xffff, 0xffff, 0x2a62, 0x2a64, 0xffff, + 0xffff, 0x2a66, 0x2a68, 0x2a6a, 0x2a6c, 0xffff, 0x2a6e, 0x2a70, + 0x2a72, 0x2a74, 0x2a76, 0x2a78, 0x2a7a, 0x2a7c, 0x2a7e, 0x2a80, + 0x2a82, 0x2a84, 0xffff, 0x2a86, 0xffff, 0x2a88, 0x2a8a, 0x2a8c, + 0x2a8e, 0x2a90, 0x2a92, 0x2a94, 0xffff, 0x2a96, 0x2a98, 0x2a9a, + 0x2a9c, 0x2a9e, 0x2aa0, 0x2aa2, 0x2aa4, 0x2aa6, 0x2aa8, 0x2aaa, + 0x2aac, 0x2aae, 0x2ab0, 0x2ab2, 0x2ab4, 0x2ab6, 0x2ab8, 0x2aba, + 0x2abc, 0x2abe, 0x2ac0, 0x2ac2, 0x2ac4, 0x2ac6, 0x2ac8, 0x2aca, + 0x2acc, 0x2ace, 0x2ad0, 0x2ad2, 0x2ad4, 0x2ad6, 0x2ad8, 0x2ada, + 0x2adc, 0x2ade, 0x2ae0, 0x2ae2, 0x2ae4, 0x2ae6, 0x2ae8, 0x2aea, + 0x2aec, 0x2aee, 0x2af0, 0x2af2, 0x2af4, 0x2af6, 0x2af8, 0x2afa, + 0x2afc, 0x2afe, 0x2b00, 0x2b02, 0x2b04, 0x2b06, 0x2b08, 0x2b0a, + + 0x2b0c, 0x2b0e, 0x2b10, 0x2b12, 0x2b14, 0x2b16, 0xffff, 0x2b18, + 0x2b1a, 0x2b1c, 0x2b1e, 0xffff, 0xffff, 0x2b20, 0x2b22, 0x2b24, + 0x2b26, 0x2b28, 0x2b2a, 0x2b2c, 0x2b2e, 0xffff, 0x2b30, 0x2b32, + 0x2b34, 0x2b36, 0x2b38, 0x2b3a, 0x2b3c, 0xffff, 0x2b3e, 0x2b40, + 0x2b42, 0x2b44, 0x2b46, 0x2b48, 0x2b4a, 0x2b4c, 0x2b4e, 0x2b50, + 0x2b52, 0x2b54, 0x2b56, 0x2b58, 0x2b5a, 0x2b5c, 0x2b5e, 0x2b60, + 0x2b62, 0x2b64, 0x2b66, 0x2b68, 0x2b6a, 0x2b6c, 0x2b6e, 0x2b70, + 0x2b72, 0x2b74, 0xffff, 0x2b76, 0x2b78, 0x2b7a, 0x2b7c, 0xffff, + 0x2b7e, 0x2b80, 0x2b82, 0x2b84, 0x2b86, 0xffff, 0x2b88, 0xffff, + 0xffff, 0xffff, 0x2b8a, 0x2b8c, 0x2b8e, 0x2b90, 0x2b92, 0x2b94, + 0x2b96, 0xffff, 0x2b98, 0x2b9a, 0x2b9c, 0x2b9e, 0x2ba0, 0x2ba2, + 0x2ba4, 0x2ba6, 0x2ba8, 0x2baa, 0x2bac, 0x2bae, 0x2bb0, 0x2bb2, + 0x2bb4, 0x2bb6, 0x2bb8, 0x2bba, 0x2bbc, 0x2bbe, 0x2bc0, 0x2bc2, + 0x2bc4, 0x2bc6, 0x2bc8, 0x2bca, 0x2bcc, 0x2bce, 0x2bd0, 0x2bd2, + 0x2bd4, 0x2bd6, 0x2bd8, 0x2bda, 0x2bdc, 0x2bde, 0x2be0, 0x2be2, + 0x2be4, 0x2be6, 0x2be8, 0x2bea, 0x2bec, 0x2bee, 0x2bf0, 0x2bf2, + 0x2bf4, 0x2bf6, 0x2bf8, 0x2bfa, 0x2bfc, 0x2bfe, 0x2c00, 0x2c02, + 0x2c04, 0x2c06, 0x2c08, 0x2c0a, 0x2c0c, 0x2c0e, 0x2c10, 0x2c12, + 0x2c14, 0x2c16, 0x2c18, 0x2c1a, 0x2c1c, 0x2c1e, 0x2c20, 0x2c22, + 0x2c24, 0x2c26, 0x2c28, 0x2c2a, 0x2c2c, 0x2c2e, 0x2c30, 0x2c32, + 0x2c34, 0x2c36, 0x2c38, 0x2c3a, 0x2c3c, 0x2c3e, 0x2c40, 0x2c42, + 0x2c44, 0x2c46, 0x2c48, 0x2c4a, 0x2c4c, 0x2c4e, 0x2c50, 0x2c52, + 0x2c54, 0x2c56, 0x2c58, 0x2c5a, 0x2c5c, 0x2c5e, 0x2c60, 0x2c62, + 0x2c64, 0x2c66, 0x2c68, 0x2c6a, 0x2c6c, 0x2c6e, 0x2c70, 0x2c72, + 0x2c74, 0x2c76, 0x2c78, 0x2c7a, 0x2c7c, 0x2c7e, 0x2c80, 0x2c82, + 0x2c84, 0x2c86, 0x2c88, 0x2c8a, 0x2c8c, 0x2c8e, 0x2c90, 0x2c92, + 0x2c94, 0x2c96, 0x2c98, 0x2c9a, 0x2c9c, 0x2c9e, 0x2ca0, 0x2ca2, + 0x2ca4, 0x2ca6, 0x2ca8, 0x2caa, 0x2cac, 0x2cae, 0x2cb0, 0x2cb2, + 0x2cb4, 0x2cb6, 0x2cb8, 0x2cba, 0x2cbc, 0x2cbe, 0x2cc0, 0x2cc2, + 0x2cc4, 0x2cc6, 0x2cc8, 0x2cca, 0x2ccc, 0x2cce, 0x2cd0, 0x2cd2, + 0x2cd4, 0x2cd6, 0x2cd8, 0x2cda, 0x2cdc, 0x2cde, 0x2ce0, 0x2ce2, + 0x2ce4, 0x2ce6, 0x2ce8, 0x2cea, 0x2cec, 0x2cee, 0x2cf0, 0x2cf2, + + 0x2cf4, 0x2cf6, 0x2cf8, 0x2cfa, 0x2cfc, 0x2cfe, 0x2d00, 0x2d02, + 0x2d04, 0x2d06, 0x2d08, 0x2d0a, 0x2d0c, 0x2d0e, 0x2d10, 0x2d12, + 0x2d14, 0x2d16, 0x2d18, 0x2d1a, 0x2d1c, 0x2d1e, 0x2d20, 0x2d22, + 0x2d24, 0x2d26, 0x2d28, 0x2d2a, 0x2d2c, 0x2d2e, 0x2d30, 0x2d32, + 0x2d34, 0x2d36, 0x2d38, 0x2d3a, 0x2d3c, 0x2d3e, 0x2d40, 0x2d42, + 0x2d44, 0x2d46, 0x2d48, 0x2d4a, 0x2d4c, 0x2d4e, 0x2d50, 0x2d52, + 0x2d54, 0x2d56, 0x2d58, 0x2d5a, 0x2d5c, 0x2d5e, 0x2d60, 0x2d62, + 0x2d64, 0x2d66, 0x2d68, 0x2d6a, 0x2d6c, 0x2d6e, 0x2d70, 0x2d72, + 0x2d74, 0x2d76, 0x2d78, 0x2d7a, 0x2d7c, 0x2d7e, 0x2d80, 0x2d82, + 0x2d84, 0x2d86, 0x2d88, 0x2d8a, 0x2d8c, 0x2d8e, 0x2d90, 0x2d92, + 0x2d94, 0x2d96, 0x2d98, 0x2d9a, 0x2d9c, 0x2d9e, 0x2da0, 0x2da2, + 0x2da4, 0x2da6, 0x2da8, 0x2daa, 0x2dac, 0x2dae, 0x2db0, 0x2db2, + 0x2db4, 0x2db6, 0x2db8, 0x2dba, 0x2dbc, 0x2dbe, 0x2dc0, 0x2dc2, + 0x2dc4, 0x2dc6, 0x2dc8, 0x2dca, 0x2dcc, 0x2dce, 0x2dd0, 0x2dd2, + 0x2dd4, 0x2dd6, 0x2dd8, 0x2dda, 0x2ddc, 0x2dde, 0x2de0, 0x2de2, + 0x2de4, 0x2de6, 0x2de8, 0x2dea, 0x2dec, 0x2dee, 0x2df0, 0x2df2, + 0x2df4, 0x2df6, 0x2df8, 0x2dfa, 0x2dfc, 0x2dfe, 0x2e00, 0x2e02, + 0x2e04, 0x2e06, 0x2e08, 0x2e0a, 0x2e0c, 0x2e0e, 0x2e10, 0x2e12, + 0x2e14, 0x2e16, 0x2e18, 0x2e1a, 0x2e1c, 0x2e1e, 0x2e20, 0x2e22, + 0x2e24, 0x2e26, 0x2e28, 0x2e2a, 0x2e2c, 0x2e2e, 0x2e30, 0x2e32, + 0x2e34, 0x2e36, 0x2e38, 0x2e3a, 0x2e3c, 0x2e3e, 0xffff, 0xffff, + 0x2e40, 0x2e42, 0x2e44, 0x2e46, 0x2e48, 0x2e4a, 0x2e4c, 0x2e4e, + 0x2e50, 0x2e52, 0x2e54, 0x2e56, 0x2e58, 0x2e5a, 0x2e5c, 0x2e5e, + 0x2e60, 0x2e62, 0x2e64, 0x2e66, 0x2e68, 0x2e6a, 0x2e6c, 0x2e6e, + 0x2e70, 0x2e72, 0x2e74, 0x2e76, 0x2e78, 0x2e7a, 0x2e7c, 0x2e7e, + 0x2e80, 0x2e82, 0x2e84, 0x2e86, 0x2e88, 0x2e8a, 0x2e8c, 0x2e8e, + 0x2e90, 0x2e92, 0x2e94, 0x2e96, 0x2e98, 0x2e9a, 0x2e9c, 0x2e9e, + 0x2ea0, 0x2ea2, 0x2ea4, 0x2ea6, 0x2ea8, 0x2eaa, 0x2eac, 0x2eae, + 0x2eb0, 0x2eb2, 0x2eb4, 0x2eb6, 0x2eb8, 0x2eba, 0x2ebc, 0x2ebe, + 0x2ec0, 0x2ec2, 0x2ec4, 0x2ec6, 0x2ec8, 0x2eca, 0x2ecc, 0x2ece, + 0x2ed0, 0x2ed2, 0x2ed4, 0x2ed6, 0x2ed8, 0x2eda, 0x2edc, 0x2ede, + 0x2ee0, 0x2ee2, 0x2ee4, 0x2ee6, 0x2ee8, 0x2eea, 0x2eec, 0x2eee, + + 0x2ef0, 0x2ef2, 0x2ef4, 0x2ef6, 0x2ef8, 0x2efa, 0x2efc, 0x2efe, + 0x2f00, 0x2f02, 0x2f04, 0x2f06, 0x2f08, 0x2f0a, 0x2f0c, 0x2f0e, + 0x2f10, 0x2f12, 0x2f14, 0x2f16, 0x2f18, 0x2f1a, 0x2f1c, 0x2f1e, + 0x2f20, 0x2f22, 0x2f24, 0x2f26, 0x2f28, 0x2f2a, 0x2f2c, 0x2f2e, + 0x2f30, 0x2f32, 0x2f34, 0x2f36, 0x2f38, 0x2f3a, 0x2f3c, 0x2f3e, + 0x2f40, 0x2f42, 0x2f44, 0x2f46, 0x2f48, 0x2f4a, 0x2f4c, 0x2f4e, + 0x2f50, 0x2f52, 0x2f54, 0x2f56, 0x2f58, 0x2f5a, 0x2f5c, 0x2f5e, + 0x2f60, 0x2f62, 0x2f64, 0x2f66, 0x2f68, 0x2f6a, 0x2f6c, 0x2f6e, + 0x2f70, 0x2f72, 0x2f74, 0x2f76, 0x2f78, 0x2f7a, 0x2f7c, 0x2f7e, + 0x2f80, 0x2f82, 0x2f84, 0x2f86, 0x2f88, 0x2f8a, 0x2f8c, 0x2f8e, + 0x2f90, 0x2f92, 0x2f94, 0x2f96, 0x2f98, 0x2f9a, 0x2f9c, 0x2f9e, + 0x2fa0, 0x2fa2, 0x2fa4, 0x2fa6, 0x2fa8, 0x2faa, 0x2fac, 0x2fae, + 0x2fb0, 0x2fb2, 0x2fb4, 0x2fb6, 0x2fb8, 0x2fba, 0x2fbc, 0x2fbe, + 0x2fc0, 0x2fc2, 0x2fc4, 0x2fc6, 0x2fc8, 0x2fca, 0x2fcc, 0x2fce, + 0x2fd0, 0x2fd2, 0x2fd4, 0x2fd6, 0x2fd8, 0x2fda, 0x2fdc, 0x2fde, + 0x2fe0, 0x2fe2, 0x2fe4, 0x2fe6, 0x2fe8, 0x2fea, 0x2fec, 0x2fee, + 0x2ff0, 0x2ff2, 0x2ff4, 0x2ff6, 0x2ff8, 0x2ffa, 0x2ffc, 0x2ffe, + 0x3000, 0x3002, 0x3004, 0x3006, 0x3008, 0x300a, 0x300c, 0x300e, + 0x3010, 0x3012, 0x3014, 0x3016, 0x3018, 0x301a, 0x301c, 0x301e, + 0x3020, 0x3022, 0x3024, 0x3026, 0x3028, 0x302a, 0x302c, 0x302e, + 0x3030, 0x3032, 0x3034, 0x3036, 0x3038, 0x303a, 0x303c, 0x303e, + 0x3040, 0x3042, 0x3044, 0x3046, 0x3048, 0x304a, 0x304c, 0x304e, + 0x3050, 0x3052, 0x3054, 0x3056, 0x3058, 0x305a, 0x305c, 0x305e, + 0x3060, 0x3062, 0x3064, 0x3066, 0x3068, 0x306a, 0x306c, 0x306e, + 0x3070, 0x3072, 0x3074, 0x3076, 0x3078, 0x307a, 0x307c, 0x307e, + 0x3080, 0x3082, 0x3084, 0x3086, 0xffff, 0xffff, 0x3088, 0x308a, + 0x308c, 0x308e, 0x3090, 0x3092, 0x3094, 0x3096, 0x3098, 0x309a, + 0x309c, 0x309e, 0x30a0, 0x30a2, 0x30a4, 0x30a6, 0x30a8, 0x30aa, + 0x30ac, 0x30ae, 0x30b0, 0x30b2, 0x30b4, 0x30b6, 0x30b8, 0x30ba, + 0x30bc, 0x30be, 0x30c0, 0x30c2, 0x30c4, 0x30c6, 0x30c8, 0x30ca, + 0x30cc, 0x30ce, 0x30d0, 0x30d2, 0x30d4, 0x30d6, 0x30d8, 0x30da, + 0x30dc, 0x30de, 0x30e0, 0x30e2, 0x30e4, 0x30e6, 0x30e8, 0x30ea, + + 0x30ec, 0x30ee, 0x30f0, 0x30f2, 0xffff, 0x30f4, 0x30f6, 0x30f8, + 0x30fa, 0x30fc, 0x30fe, 0x3100, 0x3102, 0x3104, 0x3106, 0x3108, + 0x310a, 0x310c, 0x310e, 0x3110, 0x3112, 0x3114, 0x3116, 0x3118, + 0x311a, 0x311c, 0x311e, 0x3120, 0x3122, 0x3124, 0x3126, 0x3128, + 0xffff, 0x312a, 0x312c, 0xffff, 0x312e, 0xffff, 0xffff, 0x3130, + 0xffff, 0x3132, 0x3134, 0x3136, 0x3138, 0x313a, 0x313c, 0x313e, + 0x3140, 0x3142, 0x3144, 0xffff, 0x3146, 0x3148, 0x314a, 0x314c, + 0xffff, 0x314e, 0xffff, 0x3150, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0x3152, 0xffff, 0xffff, 0xffff, 0xffff, 0x3154, + 0xffff, 0x3156, 0xffff, 0x3158, 0xffff, 0x315a, 0x315c, 0x315e, + 0xffff, 0x3160, 0x3162, 0xffff, 0x3164, 0xffff, 0xffff, 0x3166, + 0xffff, 0x3168, 0xffff, 0x316a, 0xffff, 0x316c, 0xffff, 0x316e, + 0xffff, 0x3170, 0x3172, 0xffff, 0x3174, 0xffff, 0xffff, 0x3176, + 0x3178, 0x317a, 0x317c, 0xffff, 0x317e, 0x3180, 0x3182, 0x3184, + 0x3186, 0x3188, 0x318a, 0xffff, 0x318c, 0x318e, 0x3190, 0x3192, + 0xffff, 0x3194, 0x3196, 0x3198, 0x319a, 0xffff, 0x319c, 0xffff, + 0x319e, 0x31a0, 0x31a2, 0x31a4, 0x31a6, 0x31a8, 0x31aa, 0x31ac, + 0x31ae, 0x31b0, 0xffff, 0x31b2, 0x31b4, 0x31b6, 0x31b8, 0x31ba, + 0x31bc, 0x31be, 0x31c0, 0x31c2, 0x31c4, 0x31c6, 0x31c8, 0x31ca, + 0x31cc, 0x31ce, 0x31d0, 0x31d2, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0x31d4, 0x31d6, 0x31d8, 0xffff, 0x31da, 0x31dc, 0x31de, + 0x31e0, 0x31e2, 0xffff, 0x31e4, 0x31e6, 0x31e8, 0x31ea, 0x31ec, + 0x31ee, 0x31f0, 0x31f2, 0x31f4, 0x31f6, 0x31f8, 0x31fa, 0x31fc, + 0x31fe, 0x3200, 0x3202, 0x3204, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x3206, 0x3209, 0x320c, 0x320f, 0x3212, 0x3215, 0x3218, 0x321b, + 0x321e, 0x3221, 0x3224, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x3227, 0x322b, 0x322f, 0x3233, 0x3237, 0x323b, 0x323f, 0x3243, + 0x3247, 0x324b, 0x324f, 0x3253, 0x3257, 0x325b, 0x325f, 0x3263, + 0x3267, 0x326b, 0x326f, 0x3273, 0x3277, 0x327b, 0x327f, 0x3283, + 0x3287, 0x328b, 0x328f, 0x3293, 0x3295, 0x3297, 0x329a, 0xffff, + 0x329d, 0x329f, 0x32a1, 0x32a3, 0x32a5, 0x32a7, 0x32a9, 0x32ab, + 0x32ad, 0x32af, 0x32b1, 0x32b3, 0x32b5, 0x32b7, 0x32b9, 0x32bb, + 0x32bd, 0x32bf, 0x32c1, 0x32c3, 0x32c5, 0x32c7, 0x32c9, 0x32cb, + 0x32cd, 0x32cf, 0x32d1, 0x32d4, 0x32d7, 0x32da, 0x32dd, 0x32e1, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0x32e4, 0x32e7, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x32ea, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x32ed, 0x32f0, 0x32f3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x32f5, 0x32f7, 0x32f9, 0x32fb, 0x32fd, 0x32ff, 0x3301, 0x3303, + 0x3305, 0x3307, 0x3309, 0x330b, 0x330d, 0x330f, 0x3311, 0x3313, + 0x3315, 0x3317, 0x3319, 0x331b, 0x331d, 0x331f, 0x3321, 0x3323, + 0x3325, 0x3327, 0x3329, 0x332b, 0x332d, 0x332f, 0x3331, 0x3333, + 0x3335, 0x3337, 0x3339, 0x333b, 0x333d, 0x333f, 0x3341, 0x3343, + 0x3345, 0x3347, 0x3349, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x334b, 0x334f, 0x3353, 0x3357, 0x335b, 0x335f, 0x3363, 0x3367, + 0x336b, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x336f, 0x3371, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x3373, 0x3375, 0x3377, 0x3379, 0x337c, 0x337e, 0x3380, 0x3382, + 0x3384, 0x3386, 0x3388, 0x338a, 0x338c, 0x338e, 0x3391, 0x3393, + 0x3395, 0x3397, 0x3399, 0x339c, 0x339e, 0x33a0, 0x33a2, 0x33a5, + 0x33a7, 0x33a9, 0x33ab, 0x33ad, 0x33af, 0x33b2, 0x33b4, 0x33b6, + 0x33b8, 0x33ba, 0x33bc, 0x33be, 0x33c0, 0x33c2, 0x33c4, 0x33c6, + 0x33c8, 0x33ca, 0x33cc, 0x33ce, 0x33d0, 0x33d2, 0x33d4, 0x33d6, + 0x33d8, 0x33da, 0x33dc, 0x33de, 0x33e0, 0x33e3, 0x33e5, 0x33e7, + 0x33e9, 0x33ec, 0x33ee, 0x33f0, 0x33f2, 0x33f4, 0x33f6, 0x33f8, + 0x33fa, 0x33fc, 0x33fe, 0x3400, 0x3402, 0x3404, 0x3406, 0x3408, + 0x340a, 0x340c, 0x340e, 0x3410, 0x3412, 0x3414, 0x3416, 0x3418, + 0x341a, 0x341c, 0x341e, 0x3420, 0x3422, 0x3424, 0x3426, 0x3428, + 0x342a, 0x342c, 0x342f, 0x3431, 0x3433, 0x3435, 0x3437, 0x3439, + 0x343b, 0x343e, 0x3441, 0x3443, 0x3445, 0x3447, 0x3449, 0x344b, + 0x344d, 0x344f, 0x3451, 0x3453, 0x3455, 0x3458, 0x345a, 0x345c, + 0x345e, 0x3460, 0x3463, 0x3465, 0x3467, 0x3469, 0x346b, 0x346d, + 0x346f, 0x3471, 0x3473, 0x3475, 0x3478, 0x347a, 0x347d, 0x347f, + 0x3481, 0x3483, 0x3485, 0x3487, 0x3489, 0x348b, 0x348d, 0x348f, + 0x3491, 0x3493, 0x3496, 0x3498, 0x349a, 0x349c, 0x349e, 0x34a0, + 0x34a3, 0x34a5, 0x34a8, 0x34ab, 0x34ad, 0x34af, 0x34b1, 0x34b3, + 0x34b6, 0x34b9, 0x34bb, 0x34bd, 0x34bf, 0x34c1, 0x34c3, 0x34c5, + 0x34c7, 0x34c9, 0x34cb, 0x34cd, 0x34cf, 0x34d2, 0x34d4, 0x34d6, + 0x34d8, 0x34da, 0x34dc, 0x34de, 0x34e0, 0x34e2, 0x34e4, 0x34e6, + 0x34e8, 0x34ea, 0x34ec, 0x34ee, 0x34f0, 0x34f2, 0x34f4, 0x34f6, + 0x34f8, 0x34fb, 0x34fd, 0x34ff, 0x3501, 0x3503, 0x3505, 0x3508, + 0x350a, 0x350c, 0x350e, 0x3510, 0x3512, 0x3514, 0x3516, 0x3518, + 0x351a, 0x351c, 0x351e, 0x3521, 0x3523, 0x3525, 0x3527, 0x3529, + 0x352b, 0x352d, 0x352f, 0x3531, 0x3533, 0x3535, 0x3537, 0x3539, + 0x353b, 0x353d, 0x353f, 0x3541, 0x3543, 0x3545, 0x3548, 0x354a, + 0x354c, 0x354e, 0x3550, 0x3552, 0x3555, 0x3557, 0x3559, 0x355b, + 0x355d, 0x355f, 0x3561, 0x3563, 0x3565, 0x3568, 0x356a, 0x356c, + 0x356e, 0x3571, 0x3573, 0x3575, 0x3577, 0x3579, 0x357b, 0x357d, + 0x3580, 0x3583, 0x3586, 0x3588, 0x358b, 0x358d, 0x358f, 0x3591, + + 0x3593, 0x3595, 0x3597, 0x3599, 0x359b, 0x359d, 0x359f, 0x35a2, + 0x35a4, 0x35a6, 0x35a8, 0x35aa, 0x35ac, 0x35ae, 0x35b1, 0x35b3, + 0x35b5, 0x35b8, 0x35bb, 0x35bd, 0x35bf, 0x35c1, 0x35c3, 0x35c5, + 0x35c7, 0x35c9, 0x35cb, 0x35cd, 0x35d0, 0x35d2, 0x35d5, 0x35d7, + 0x35da, 0x35dc, 0x35de, 0x35e0, 0x35e3, 0x35e5, 0x35e7, 0x35ea, + 0x35ed, 0x35ef, 0x35f1, 0x35f3, 0x35f5, 0x35f7, 0x35f9, 0x35fb, + 0x35fd, 0x35ff, 0x3601, 0x3603, 0x3605, 0x3607, 0x360a, 0x360c, + 0x360f, 0x3611, 0x3614, 0x3616, 0x3619, 0x361c, 0x361f, 0x3621, + 0x3623, 0x3625, 0x3628, 0x362b, 0x362e, 0x3631, 0x3633, 0x3635, + 0x3637, 0x3639, 0x363b, 0x363d, 0x363f, 0x3641, 0x3644, 0x3646, + 0x3648, 0x364a, 0x364c, 0x364f, 0x3651, 0x3654, 0x3657, 0x3659, + 0x365b, 0x365d, 0x365f, 0x3661, 0x3663, 0x3666, 0x3669, 0x366c, + 0x366e, 0x3670, 0x3673, 0x3675, 0x3677, 0x3679, 0x367c, 0x367e, + 0x3680, 0x3682, 0x3684, 0x3686, 0x3689, 0x368b, 0x368d, 0x368f, + 0x3691, 0x3693, 0x3695, 0x3698, 0x369b, 0x369d, 0x36a0, 0x36a2, + 0x36a5, 0x36a7, 0x36a9, 0x36ab, 0x36ae, 0x36b1, 0x36b3, 0x36b6, + 0x36b8, 0x36bb, 0x36bd, 0x36bf, 0x36c1, 0x36c3, 0x36c5, 0x36c7, + 0x36ca, 0x36cd, 0x36d0, 0x36d3, 0x36d5, 0x36d7, 0x36d9, 0x36db, + 0x36dd, 0x36df, 0x36e1, 0x36e3, 0x36e5, 0x36e7, 0x36e9, 0x36eb, + 0x36ee, 0x36f0, 0x36f2, 0x36f4, 0x36f6, 0x36f8, 0x36fa, 0x36fc, + 0x36fe, 0x3700, 0x3702, 0x3704, 0x3706, 0x3709, 0x370c, 0x370f, + 0x3711, 0x3713, 0x3715, 0x3717, 0x371a, 0x371c, 0x371f, 0x3721, + 0x3723, 0x3726, 0x3729, 0x372b, 0x372d, 0x372f, 0x3731, 0x3733, + 0x3735, 0x3737, 0x3739, 0x373b, 0x373d, 0x373f, 0x3741, 0x3743, + 0x3745, 0x3747, 0x3749, 0x374b, 0x374d, 0x374f, 0x3752, 0x3754, + 0x3756, 0x3758, 0x375a, 0x375c, 0x375f, 0x3762, 0x3764, 0x3766, + 0x3768, 0x376a, 0x376c, 0x376e, 0x3771, 0x3773, 0x3775, 0x3777, + 0x3779, 0x377c, 0x377f, 0x3781, 0x3783, 0x3785, 0x3788, 0x378a, + 0x378c, 0x378f, 0x3792, 0x3794, 0x3796, 0x3798, 0x379b, 0x379d, + 0x379f, 0x37a1, 0x37a3, 0x37a5, 0x37a7, 0x37a9, 0x37ac, 0x37ae, + 0x37b0, 0x37b2, 0x37b5, 0x37b7, 0x37b9, 0x37bb, 0x37bd, 0x37c0, + 0x37c3, 0x37c5, 0x37c7, 0x37c9, 0x37cc, 0x37ce, 0x37d1, 0x37d3, + + 0x37d5, 0x37d7, 0x37da, 0x37dc, 0x37de, 0x37e0, 0x37e2, 0x37e4, + 0x37e6, 0x37e8, 0x37eb, 0x37ed, 0x37ef, 0x37f1, 0x37f3, 0x37f5, + 0x37f7, 0x37fa, 0x37fc, 0x37ff, 0x3802, 0x3805, 0x3807, 0x3809, + 0x380b, 0x380d, 0x380f, 0x3811, 0x3813, 0x3815, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff +}; + +#define GET_DECOMPOSITION_INDEX(ucs4) \ + (ucs4 < 0x3400 \ + ? (uc_decomposition_trie[uc_decomposition_trie[ucs4>>4] + (ucs4 & 0xf)]) \ + : (ucs4 < 0x30000\ + ? uc_decomposition_trie[uc_decomposition_trie[((ucs4 - 0x3400)>>8) + 0x340] + (ucs4 & 0xff)]\ + : 0xffff)) + +static const unsigned short uc_decomposition_map[] = { + 0x103, 0x20, 0x210, 0x20, 0x308, 0x109, 0x61, 0x210, + 0x20, 0x304, 0x109, 0x32, 0x109, 0x33, 0x210, 0x20, + 0x301, 0x110, 0x3bc, 0x210, 0x20, 0x327, 0x109, 0x31, + 0x109, 0x6f, 0x311, 0x31, 0x2044, 0x34, 0x311, 0x31, + 0x2044, 0x32, 0x311, 0x33, 0x2044, 0x34, 0x201, 0x41, + 0x300, 0x201, 0x41, 0x301, 0x201, 0x41, 0x302, 0x201, + 0x41, 0x303, 0x201, 0x41, 0x308, 0x201, 0x41, 0x30a, + 0x201, 0x43, 0x327, 0x201, 0x45, 0x300, 0x201, 0x45, + 0x301, 0x201, 0x45, 0x302, 0x201, 0x45, 0x308, 0x201, + 0x49, 0x300, 0x201, 0x49, 0x301, 0x201, 0x49, 0x302, + 0x201, 0x49, 0x308, 0x201, 0x4e, 0x303, 0x201, 0x4f, + 0x300, 0x201, 0x4f, 0x301, 0x201, 0x4f, 0x302, 0x201, + 0x4f, 0x303, 0x201, 0x4f, 0x308, 0x201, 0x55, 0x300, + 0x201, 0x55, 0x301, 0x201, 0x55, 0x302, 0x201, 0x55, + 0x308, 0x201, 0x59, 0x301, 0x201, 0x61, 0x300, 0x201, + 0x61, 0x301, 0x201, 0x61, 0x302, 0x201, 0x61, 0x303, + 0x201, 0x61, 0x308, 0x201, 0x61, 0x30a, 0x201, 0x63, + 0x327, 0x201, 0x65, 0x300, 0x201, 0x65, 0x301, 0x201, + 0x65, 0x302, 0x201, 0x65, 0x308, 0x201, 0x69, 0x300, + 0x201, 0x69, 0x301, 0x201, 0x69, 0x302, 0x201, 0x69, + 0x308, 0x201, 0x6e, 0x303, 0x201, 0x6f, 0x300, 0x201, + 0x6f, 0x301, 0x201, 0x6f, 0x302, 0x201, 0x6f, 0x303, + 0x201, 0x6f, 0x308, 0x201, 0x75, 0x300, 0x201, 0x75, + 0x301, 0x201, 0x75, 0x302, 0x201, 0x75, 0x308, 0x201, + 0x79, 0x301, 0x201, 0x79, 0x308, 0x201, 0x41, 0x304, + 0x201, 0x61, 0x304, 0x201, 0x41, 0x306, 0x201, 0x61, + 0x306, 0x201, 0x41, 0x328, 0x201, 0x61, 0x328, 0x201, + 0x43, 0x301, 0x201, 0x63, 0x301, 0x201, 0x43, 0x302, + 0x201, 0x63, 0x302, 0x201, 0x43, 0x307, 0x201, 0x63, + 0x307, 0x201, 0x43, 0x30c, 0x201, 0x63, 0x30c, 0x201, + 0x44, 0x30c, 0x201, 0x64, 0x30c, 0x201, 0x45, 0x304, + 0x201, 0x65, 0x304, 0x201, 0x45, 0x306, 0x201, 0x65, + 0x306, 0x201, 0x45, 0x307, 0x201, 0x65, 0x307, 0x201, + 0x45, 0x328, 0x201, 0x65, 0x328, 0x201, 0x45, 0x30c, + 0x201, 0x65, 0x30c, 0x201, 0x47, 0x302, 0x201, 0x67, + 0x302, 0x201, 0x47, 0x306, 0x201, 0x67, 0x306, 0x201, + 0x47, 0x307, 0x201, 0x67, 0x307, 0x201, 0x47, 0x327, + 0x201, 0x67, 0x327, 0x201, 0x48, 0x302, 0x201, 0x68, + 0x302, 0x201, 0x49, 0x303, 0x201, 0x69, 0x303, 0x201, + 0x49, 0x304, 0x201, 0x69, 0x304, 0x201, 0x49, 0x306, + 0x201, 0x69, 0x306, 0x201, 0x49, 0x328, 0x201, 0x69, + 0x328, 0x201, 0x49, 0x307, 0x210, 0x49, 0x4a, 0x210, + 0x69, 0x6a, 0x201, 0x4a, 0x302, 0x201, 0x6a, 0x302, + 0x201, 0x4b, 0x327, 0x201, 0x6b, 0x327, 0x201, 0x4c, + 0x301, 0x201, 0x6c, 0x301, 0x201, 0x4c, 0x327, 0x201, + 0x6c, 0x327, 0x201, 0x4c, 0x30c, 0x201, 0x6c, 0x30c, + 0x210, 0x4c, 0xb7, 0x210, 0x6c, 0xb7, 0x201, 0x4e, + 0x301, 0x201, 0x6e, 0x301, 0x201, 0x4e, 0x327, 0x201, + 0x6e, 0x327, 0x201, 0x4e, 0x30c, 0x201, 0x6e, 0x30c, + 0x210, 0x2bc, 0x6e, 0x201, 0x4f, 0x304, 0x201, 0x6f, + 0x304, 0x201, 0x4f, 0x306, 0x201, 0x6f, 0x306, 0x201, + 0x4f, 0x30b, 0x201, 0x6f, 0x30b, 0x201, 0x52, 0x301, + 0x201, 0x72, 0x301, 0x201, 0x52, 0x327, 0x201, 0x72, + 0x327, 0x201, 0x52, 0x30c, 0x201, 0x72, 0x30c, 0x201, + 0x53, 0x301, 0x201, 0x73, 0x301, 0x201, 0x53, 0x302, + 0x201, 0x73, 0x302, 0x201, 0x53, 0x327, 0x201, 0x73, + 0x327, 0x201, 0x53, 0x30c, 0x201, 0x73, 0x30c, 0x201, + 0x54, 0x327, 0x201, 0x74, 0x327, 0x201, 0x54, 0x30c, + 0x201, 0x74, 0x30c, 0x201, 0x55, 0x303, 0x201, 0x75, + 0x303, 0x201, 0x55, 0x304, 0x201, 0x75, 0x304, 0x201, + 0x55, 0x306, 0x201, 0x75, 0x306, 0x201, 0x55, 0x30a, + 0x201, 0x75, 0x30a, 0x201, 0x55, 0x30b, 0x201, 0x75, + 0x30b, 0x201, 0x55, 0x328, 0x201, 0x75, 0x328, 0x201, + 0x57, 0x302, 0x201, 0x77, 0x302, 0x201, 0x59, 0x302, + 0x201, 0x79, 0x302, 0x201, 0x59, 0x308, 0x201, 0x5a, + 0x301, 0x201, 0x7a, 0x301, 0x201, 0x5a, 0x307, 0x201, + 0x7a, 0x307, 0x201, 0x5a, 0x30c, 0x201, 0x7a, 0x30c, + 0x110, 0x73, 0x201, 0x4f, 0x31b, 0x201, 0x6f, 0x31b, + 0x201, 0x55, 0x31b, 0x201, 0x75, 0x31b, 0x210, 0x44, + 0x17d, 0x210, 0x44, 0x17e, 0x210, 0x64, 0x17e, 0x210, + 0x4c, 0x4a, 0x210, 0x4c, 0x6a, 0x210, 0x6c, 0x6a, + 0x210, 0x4e, 0x4a, 0x210, 0x4e, 0x6a, 0x210, 0x6e, + 0x6a, 0x201, 0x41, 0x30c, 0x201, 0x61, 0x30c, 0x201, + 0x49, 0x30c, 0x201, 0x69, 0x30c, 0x201, 0x4f, 0x30c, + 0x201, 0x6f, 0x30c, 0x201, 0x55, 0x30c, 0x201, 0x75, + 0x30c, 0x201, 0xdc, 0x304, 0x201, 0xfc, 0x304, 0x201, + 0xdc, 0x301, 0x201, 0xfc, 0x301, 0x201, 0xdc, 0x30c, + 0x201, 0xfc, 0x30c, 0x201, 0xdc, 0x300, 0x201, 0xfc, + 0x300, 0x201, 0xc4, 0x304, 0x201, 0xe4, 0x304, 0x201, + 0x226, 0x304, 0x201, 0x227, 0x304, 0x201, 0xc6, 0x304, + 0x201, 0xe6, 0x304, 0x201, 0x47, 0x30c, 0x201, 0x67, + 0x30c, 0x201, 0x4b, 0x30c, 0x201, 0x6b, 0x30c, 0x201, + 0x4f, 0x328, 0x201, 0x6f, 0x328, 0x201, 0x1ea, 0x304, + 0x201, 0x1eb, 0x304, 0x201, 0x1b7, 0x30c, 0x201, 0x292, + 0x30c, 0x201, 0x6a, 0x30c, 0x210, 0x44, 0x5a, 0x210, + 0x44, 0x7a, 0x210, 0x64, 0x7a, 0x201, 0x47, 0x301, + 0x201, 0x67, 0x301, 0x201, 0x4e, 0x300, 0x201, 0x6e, + 0x300, 0x201, 0xc5, 0x301, 0x201, 0xe5, 0x301, 0x201, + 0xc6, 0x301, 0x201, 0xe6, 0x301, 0x201, 0xd8, 0x301, + 0x201, 0xf8, 0x301, 0x201, 0x41, 0x30f, 0x201, 0x61, + 0x30f, 0x201, 0x41, 0x311, 0x201, 0x61, 0x311, 0x201, + 0x45, 0x30f, 0x201, 0x65, 0x30f, 0x201, 0x45, 0x311, + 0x201, 0x65, 0x311, 0x201, 0x49, 0x30f, 0x201, 0x69, + 0x30f, 0x201, 0x49, 0x311, 0x201, 0x69, 0x311, 0x201, + 0x4f, 0x30f, 0x201, 0x6f, 0x30f, 0x201, 0x4f, 0x311, + 0x201, 0x6f, 0x311, 0x201, 0x52, 0x30f, 0x201, 0x72, + 0x30f, 0x201, 0x52, 0x311, 0x201, 0x72, 0x311, 0x201, + 0x55, 0x30f, 0x201, 0x75, 0x30f, 0x201, 0x55, 0x311, + 0x201, 0x75, 0x311, 0x201, 0x53, 0x326, 0x201, 0x73, + 0x326, 0x201, 0x54, 0x326, 0x201, 0x74, 0x326, 0x201, + 0x48, 0x30c, 0x201, 0x68, 0x30c, 0x201, 0x41, 0x307, + 0x201, 0x61, 0x307, 0x201, 0x45, 0x327, 0x201, 0x65, + 0x327, 0x201, 0xd6, 0x304, 0x201, 0xf6, 0x304, 0x201, + 0xd5, 0x304, 0x201, 0xf5, 0x304, 0x201, 0x4f, 0x307, + 0x201, 0x6f, 0x307, 0x201, 0x22e, 0x304, 0x201, 0x22f, + 0x304, 0x201, 0x59, 0x304, 0x201, 0x79, 0x304, 0x109, + 0x68, 0x109, 0x266, 0x109, 0x6a, 0x109, 0x72, 0x109, + 0x279, 0x109, 0x27b, 0x109, 0x281, 0x109, 0x77, 0x109, + 0x79, 0x210, 0x20, 0x306, 0x210, 0x20, 0x307, 0x210, + 0x20, 0x30a, 0x210, 0x20, 0x328, 0x210, 0x20, 0x303, + 0x210, 0x20, 0x30b, 0x109, 0x263, 0x109, 0x6c, 0x109, + 0x73, 0x109, 0x78, 0x109, 0x295, 0x101, 0x300, 0x101, + 0x301, 0x101, 0x313, 0x201, 0x308, 0x301, 0x101, 0x2b9, + 0x210, 0x20, 0x345, 0x101, 0x3b, 0x210, 0x20, 0x301, + 0x201, 0xa8, 0x301, 0x201, 0x391, 0x301, 0x101, 0xb7, + 0x201, 0x395, 0x301, 0x201, 0x397, 0x301, 0x201, 0x399, + 0x301, 0x201, 0x39f, 0x301, 0x201, 0x3a5, 0x301, 0x201, + 0x3a9, 0x301, 0x201, 0x3ca, 0x301, 0x201, 0x399, 0x308, + 0x201, 0x3a5, 0x308, 0x201, 0x3b1, 0x301, 0x201, 0x3b5, + 0x301, 0x201, 0x3b7, 0x301, 0x201, 0x3b9, 0x301, 0x201, + 0x3cb, 0x301, 0x201, 0x3b9, 0x308, 0x201, 0x3c5, 0x308, + 0x201, 0x3bf, 0x301, 0x201, 0x3c5, 0x301, 0x201, 0x3c9, + 0x301, 0x110, 0x3b2, 0x110, 0x3b8, 0x110, 0x3a5, 0x201, + 0x3d2, 0x301, 0x201, 0x3d2, 0x308, 0x110, 0x3c6, 0x110, + 0x3c0, 0x110, 0x3ba, 0x110, 0x3c1, 0x110, 0x3c2, 0x110, + 0x398, 0x110, 0x3b5, 0x110, 0x3a3, 0x201, 0x415, 0x300, + 0x201, 0x415, 0x308, 0x201, 0x413, 0x301, 0x201, 0x406, + 0x308, 0x201, 0x41a, 0x301, 0x201, 0x418, 0x300, 0x201, + 0x423, 0x306, 0x201, 0x418, 0x306, 0x201, 0x438, 0x306, + 0x201, 0x435, 0x300, 0x201, 0x435, 0x308, 0x201, 0x433, + 0x301, 0x201, 0x456, 0x308, 0x201, 0x43a, 0x301, 0x201, + 0x438, 0x300, 0x201, 0x443, 0x306, 0x201, 0x474, 0x30f, + 0x201, 0x475, 0x30f, 0x201, 0x416, 0x306, 0x201, 0x436, + 0x306, 0x201, 0x410, 0x306, 0x201, 0x430, 0x306, 0x201, + 0x410, 0x308, 0x201, 0x430, 0x308, 0x201, 0x415, 0x306, + 0x201, 0x435, 0x306, 0x201, 0x4d8, 0x308, 0x201, 0x4d9, + 0x308, 0x201, 0x416, 0x308, 0x201, 0x436, 0x308, 0x201, + 0x417, 0x308, 0x201, 0x437, 0x308, 0x201, 0x418, 0x304, + 0x201, 0x438, 0x304, 0x201, 0x418, 0x308, 0x201, 0x438, + 0x308, 0x201, 0x41e, 0x308, 0x201, 0x43e, 0x308, 0x201, + 0x4e8, 0x308, 0x201, 0x4e9, 0x308, 0x201, 0x42d, 0x308, + 0x201, 0x44d, 0x308, 0x201, 0x423, 0x304, 0x201, 0x443, + 0x304, 0x201, 0x423, 0x308, 0x201, 0x443, 0x308, 0x201, + 0x423, 0x30b, 0x201, 0x443, 0x30b, 0x201, 0x427, 0x308, + 0x201, 0x447, 0x308, 0x201, 0x42b, 0x308, 0x201, 0x44b, + 0x308, 0x210, 0x565, 0x582, 0x201, 0x627, 0x653, 0x201, + 0x627, 0x654, 0x201, 0x648, 0x654, 0x201, 0x627, 0x655, + 0x201, 0x64a, 0x654, 0x210, 0x627, 0x674, 0x210, 0x648, + 0x674, 0x210, 0x6c7, 0x674, 0x210, 0x64a, 0x674, 0x201, + 0x6d5, 0x654, 0x201, 0x6c1, 0x654, 0x201, 0x6d2, 0x654, + 0x201, 0x928, 0x93c, 0x201, 0x930, 0x93c, 0x201, 0x933, + 0x93c, 0x201, 0x915, 0x93c, 0x201, 0x916, 0x93c, 0x201, + 0x917, 0x93c, 0x201, 0x91c, 0x93c, 0x201, 0x921, 0x93c, + 0x201, 0x922, 0x93c, 0x201, 0x92b, 0x93c, 0x201, 0x92f, + 0x93c, 0x201, 0x9c7, 0x9be, 0x201, 0x9c7, 0x9d7, 0x201, + 0x9a1, 0x9bc, 0x201, 0x9a2, 0x9bc, 0x201, 0x9af, 0x9bc, + 0x201, 0xa32, 0xa3c, 0x201, 0xa38, 0xa3c, 0x201, 0xa16, + 0xa3c, 0x201, 0xa17, 0xa3c, 0x201, 0xa1c, 0xa3c, 0x201, + 0xa2b, 0xa3c, 0x201, 0xb47, 0xb56, 0x201, 0xb47, 0xb3e, + 0x201, 0xb47, 0xb57, 0x201, 0xb21, 0xb3c, 0x201, 0xb22, + 0xb3c, 0x201, 0xb92, 0xbd7, 0x201, 0xbc6, 0xbbe, 0x201, + 0xbc7, 0xbbe, 0x201, 0xbc6, 0xbd7, 0x201, 0xc46, 0xc56, + 0x201, 0xcbf, 0xcd5, 0x201, 0xcc6, 0xcd5, 0x201, 0xcc6, + 0xcd6, 0x201, 0xcc6, 0xcc2, 0x201, 0xcca, 0xcd5, 0x201, + 0xd46, 0xd3e, 0x201, 0xd47, 0xd3e, 0x201, 0xd46, 0xd57, + 0x201, 0xdd9, 0xdca, 0x201, 0xdd9, 0xdcf, 0x201, 0xddc, + 0xdca, 0x201, 0xdd9, 0xddf, 0x210, 0xe4d, 0xe32, 0x210, + 0xecd, 0xeb2, 0x210, 0xeab, 0xe99, 0x210, 0xeab, 0xea1, + 0x103, 0xf0b, 0x201, 0xf42, 0xfb7, 0x201, 0xf4c, 0xfb7, + 0x201, 0xf51, 0xfb7, 0x201, 0xf56, 0xfb7, 0x201, 0xf5b, + 0xfb7, 0x201, 0xf40, 0xfb5, 0x201, 0xf71, 0xf72, 0x201, + 0xf71, 0xf74, 0x201, 0xfb2, 0xf80, 0x210, 0xfb2, 0xf81, + 0x201, 0xfb3, 0xf80, 0x210, 0xfb3, 0xf81, 0x201, 0xf71, + 0xf80, 0x201, 0xf92, 0xfb7, 0x201, 0xf9c, 0xfb7, 0x201, + 0xfa1, 0xfb7, 0x201, 0xfa6, 0xfb7, 0x201, 0xfab, 0xfb7, + 0x201, 0xf90, 0xfb5, 0x201, 0x1025, 0x102e, 0x109, 0x10dc, + 0x201, 0x1b05, 0x1b35, 0x201, 0x1b07, 0x1b35, 0x201, 0x1b09, + 0x1b35, 0x201, 0x1b0b, 0x1b35, 0x201, 0x1b0d, 0x1b35, 0x201, + 0x1b11, 0x1b35, 0x201, 0x1b3a, 0x1b35, 0x201, 0x1b3c, 0x1b35, + 0x201, 0x1b3e, 0x1b35, 0x201, 0x1b3f, 0x1b35, 0x201, 0x1b42, + 0x1b35, 0x109, 0x41, 0x109, 0xc6, 0x109, 0x42, 0x109, + 0x44, 0x109, 0x45, 0x109, 0x18e, 0x109, 0x47, 0x109, + 0x48, 0x109, 0x49, 0x109, 0x4a, 0x109, 0x4b, 0x109, + 0x4c, 0x109, 0x4d, 0x109, 0x4e, 0x109, 0x4f, 0x109, + 0x222, 0x109, 0x50, 0x109, 0x52, 0x109, 0x54, 0x109, + 0x55, 0x109, 0x57, 0x109, 0x61, 0x109, 0x250, 0x109, + 0x251, 0x109, 0x1d02, 0x109, 0x62, 0x109, 0x64, 0x109, + 0x65, 0x109, 0x259, 0x109, 0x25b, 0x109, 0x25c, 0x109, + 0x67, 0x109, 0x6b, 0x109, 0x6d, 0x109, 0x14b, 0x109, + 0x6f, 0x109, 0x254, 0x109, 0x1d16, 0x109, 0x1d17, 0x109, + 0x70, 0x109, 0x74, 0x109, 0x75, 0x109, 0x1d1d, 0x109, + 0x26f, 0x109, 0x76, 0x109, 0x1d25, 0x109, 0x3b2, 0x109, + 0x3b3, 0x109, 0x3b4, 0x109, 0x3c6, 0x109, 0x3c7, 0x10a, + 0x69, 0x10a, 0x72, 0x10a, 0x75, 0x10a, 0x76, 0x10a, + 0x3b2, 0x10a, 0x3b3, 0x10a, 0x3c1, 0x10a, 0x3c6, 0x10a, + 0x3c7, 0x109, 0x43d, 0x109, 0x252, 0x109, 0x63, 0x109, + 0x255, 0x109, 0xf0, 0x109, 0x25c, 0x109, 0x66, 0x109, + 0x25f, 0x109, 0x261, 0x109, 0x265, 0x109, 0x268, 0x109, + 0x269, 0x109, 0x26a, 0x109, 0x1d7b, 0x109, 0x29d, 0x109, + 0x26d, 0x109, 0x1d85, 0x109, 0x29f, 0x109, 0x271, 0x109, + 0x270, 0x109, 0x272, 0x109, 0x273, 0x109, 0x274, 0x109, + 0x275, 0x109, 0x278, 0x109, 0x282, 0x109, 0x283, 0x109, + 0x1ab, 0x109, 0x289, 0x109, 0x28a, 0x109, 0x1d1c, 0x109, + 0x28b, 0x109, 0x28c, 0x109, 0x7a, 0x109, 0x290, 0x109, + 0x291, 0x109, 0x292, 0x109, 0x3b8, 0x201, 0x41, 0x325, + 0x201, 0x61, 0x325, 0x201, 0x42, 0x307, 0x201, 0x62, + 0x307, 0x201, 0x42, 0x323, 0x201, 0x62, 0x323, 0x201, + 0x42, 0x331, 0x201, 0x62, 0x331, 0x201, 0xc7, 0x301, + 0x201, 0xe7, 0x301, 0x201, 0x44, 0x307, 0x201, 0x64, + 0x307, 0x201, 0x44, 0x323, 0x201, 0x64, 0x323, 0x201, + 0x44, 0x331, 0x201, 0x64, 0x331, 0x201, 0x44, 0x327, + 0x201, 0x64, 0x327, 0x201, 0x44, 0x32d, 0x201, 0x64, + 0x32d, 0x201, 0x112, 0x300, 0x201, 0x113, 0x300, 0x201, + 0x112, 0x301, 0x201, 0x113, 0x301, 0x201, 0x45, 0x32d, + 0x201, 0x65, 0x32d, 0x201, 0x45, 0x330, 0x201, 0x65, + 0x330, 0x201, 0x228, 0x306, 0x201, 0x229, 0x306, 0x201, + 0x46, 0x307, 0x201, 0x66, 0x307, 0x201, 0x47, 0x304, + 0x201, 0x67, 0x304, 0x201, 0x48, 0x307, 0x201, 0x68, + 0x307, 0x201, 0x48, 0x323, 0x201, 0x68, 0x323, 0x201, + 0x48, 0x308, 0x201, 0x68, 0x308, 0x201, 0x48, 0x327, + 0x201, 0x68, 0x327, 0x201, 0x48, 0x32e, 0x201, 0x68, + 0x32e, 0x201, 0x49, 0x330, 0x201, 0x69, 0x330, 0x201, + 0xcf, 0x301, 0x201, 0xef, 0x301, 0x201, 0x4b, 0x301, + 0x201, 0x6b, 0x301, 0x201, 0x4b, 0x323, 0x201, 0x6b, + 0x323, 0x201, 0x4b, 0x331, 0x201, 0x6b, 0x331, 0x201, + 0x4c, 0x323, 0x201, 0x6c, 0x323, 0x201, 0x1e36, 0x304, + 0x201, 0x1e37, 0x304, 0x201, 0x4c, 0x331, 0x201, 0x6c, + 0x331, 0x201, 0x4c, 0x32d, 0x201, 0x6c, 0x32d, 0x201, + 0x4d, 0x301, 0x201, 0x6d, 0x301, 0x201, 0x4d, 0x307, + 0x201, 0x6d, 0x307, 0x201, 0x4d, 0x323, 0x201, 0x6d, + 0x323, 0x201, 0x4e, 0x307, 0x201, 0x6e, 0x307, 0x201, + 0x4e, 0x323, 0x201, 0x6e, 0x323, 0x201, 0x4e, 0x331, + 0x201, 0x6e, 0x331, 0x201, 0x4e, 0x32d, 0x201, 0x6e, + 0x32d, 0x201, 0xd5, 0x301, 0x201, 0xf5, 0x301, 0x201, + 0xd5, 0x308, 0x201, 0xf5, 0x308, 0x201, 0x14c, 0x300, + 0x201, 0x14d, 0x300, 0x201, 0x14c, 0x301, 0x201, 0x14d, + 0x301, 0x201, 0x50, 0x301, 0x201, 0x70, 0x301, 0x201, + 0x50, 0x307, 0x201, 0x70, 0x307, 0x201, 0x52, 0x307, + 0x201, 0x72, 0x307, 0x201, 0x52, 0x323, 0x201, 0x72, + 0x323, 0x201, 0x1e5a, 0x304, 0x201, 0x1e5b, 0x304, 0x201, + 0x52, 0x331, 0x201, 0x72, 0x331, 0x201, 0x53, 0x307, + 0x201, 0x73, 0x307, 0x201, 0x53, 0x323, 0x201, 0x73, + 0x323, 0x201, 0x15a, 0x307, 0x201, 0x15b, 0x307, 0x201, + 0x160, 0x307, 0x201, 0x161, 0x307, 0x201, 0x1e62, 0x307, + 0x201, 0x1e63, 0x307, 0x201, 0x54, 0x307, 0x201, 0x74, + 0x307, 0x201, 0x54, 0x323, 0x201, 0x74, 0x323, 0x201, + 0x54, 0x331, 0x201, 0x74, 0x331, 0x201, 0x54, 0x32d, + 0x201, 0x74, 0x32d, 0x201, 0x55, 0x324, 0x201, 0x75, + 0x324, 0x201, 0x55, 0x330, 0x201, 0x75, 0x330, 0x201, + 0x55, 0x32d, 0x201, 0x75, 0x32d, 0x201, 0x168, 0x301, + 0x201, 0x169, 0x301, 0x201, 0x16a, 0x308, 0x201, 0x16b, + 0x308, 0x201, 0x56, 0x303, 0x201, 0x76, 0x303, 0x201, + 0x56, 0x323, 0x201, 0x76, 0x323, 0x201, 0x57, 0x300, + 0x201, 0x77, 0x300, 0x201, 0x57, 0x301, 0x201, 0x77, + 0x301, 0x201, 0x57, 0x308, 0x201, 0x77, 0x308, 0x201, + 0x57, 0x307, 0x201, 0x77, 0x307, 0x201, 0x57, 0x323, + 0x201, 0x77, 0x323, 0x201, 0x58, 0x307, 0x201, 0x78, + 0x307, 0x201, 0x58, 0x308, 0x201, 0x78, 0x308, 0x201, + 0x59, 0x307, 0x201, 0x79, 0x307, 0x201, 0x5a, 0x302, + 0x201, 0x7a, 0x302, 0x201, 0x5a, 0x323, 0x201, 0x7a, + 0x323, 0x201, 0x5a, 0x331, 0x201, 0x7a, 0x331, 0x201, + 0x68, 0x331, 0x201, 0x74, 0x308, 0x201, 0x77, 0x30a, + 0x201, 0x79, 0x30a, 0x210, 0x61, 0x2be, 0x201, 0x17f, + 0x307, 0x201, 0x41, 0x323, 0x201, 0x61, 0x323, 0x201, + 0x41, 0x309, 0x201, 0x61, 0x309, 0x201, 0xc2, 0x301, + 0x201, 0xe2, 0x301, 0x201, 0xc2, 0x300, 0x201, 0xe2, + 0x300, 0x201, 0xc2, 0x309, 0x201, 0xe2, 0x309, 0x201, + 0xc2, 0x303, 0x201, 0xe2, 0x303, 0x201, 0x1ea0, 0x302, + 0x201, 0x1ea1, 0x302, 0x201, 0x102, 0x301, 0x201, 0x103, + 0x301, 0x201, 0x102, 0x300, 0x201, 0x103, 0x300, 0x201, + 0x102, 0x309, 0x201, 0x103, 0x309, 0x201, 0x102, 0x303, + 0x201, 0x103, 0x303, 0x201, 0x1ea0, 0x306, 0x201, 0x1ea1, + 0x306, 0x201, 0x45, 0x323, 0x201, 0x65, 0x323, 0x201, + 0x45, 0x309, 0x201, 0x65, 0x309, 0x201, 0x45, 0x303, + 0x201, 0x65, 0x303, 0x201, 0xca, 0x301, 0x201, 0xea, + 0x301, 0x201, 0xca, 0x300, 0x201, 0xea, 0x300, 0x201, + 0xca, 0x309, 0x201, 0xea, 0x309, 0x201, 0xca, 0x303, + 0x201, 0xea, 0x303, 0x201, 0x1eb8, 0x302, 0x201, 0x1eb9, + 0x302, 0x201, 0x49, 0x309, 0x201, 0x69, 0x309, 0x201, + 0x49, 0x323, 0x201, 0x69, 0x323, 0x201, 0x4f, 0x323, + 0x201, 0x6f, 0x323, 0x201, 0x4f, 0x309, 0x201, 0x6f, + 0x309, 0x201, 0xd4, 0x301, 0x201, 0xf4, 0x301, 0x201, + 0xd4, 0x300, 0x201, 0xf4, 0x300, 0x201, 0xd4, 0x309, + 0x201, 0xf4, 0x309, 0x201, 0xd4, 0x303, 0x201, 0xf4, + 0x303, 0x201, 0x1ecc, 0x302, 0x201, 0x1ecd, 0x302, 0x201, + 0x1a0, 0x301, 0x201, 0x1a1, 0x301, 0x201, 0x1a0, 0x300, + 0x201, 0x1a1, 0x300, 0x201, 0x1a0, 0x309, 0x201, 0x1a1, + 0x309, 0x201, 0x1a0, 0x303, 0x201, 0x1a1, 0x303, 0x201, + 0x1a0, 0x323, 0x201, 0x1a1, 0x323, 0x201, 0x55, 0x323, + 0x201, 0x75, 0x323, 0x201, 0x55, 0x309, 0x201, 0x75, + 0x309, 0x201, 0x1af, 0x301, 0x201, 0x1b0, 0x301, 0x201, + 0x1af, 0x300, 0x201, 0x1b0, 0x300, 0x201, 0x1af, 0x309, + 0x201, 0x1b0, 0x309, 0x201, 0x1af, 0x303, 0x201, 0x1b0, + 0x303, 0x201, 0x1af, 0x323, 0x201, 0x1b0, 0x323, 0x201, + 0x59, 0x300, 0x201, 0x79, 0x300, 0x201, 0x59, 0x323, + 0x201, 0x79, 0x323, 0x201, 0x59, 0x309, 0x201, 0x79, + 0x309, 0x201, 0x59, 0x303, 0x201, 0x79, 0x303, 0x201, + 0x3b1, 0x313, 0x201, 0x3b1, 0x314, 0x201, 0x1f00, 0x300, + 0x201, 0x1f01, 0x300, 0x201, 0x1f00, 0x301, 0x201, 0x1f01, + 0x301, 0x201, 0x1f00, 0x342, 0x201, 0x1f01, 0x342, 0x201, + 0x391, 0x313, 0x201, 0x391, 0x314, 0x201, 0x1f08, 0x300, + 0x201, 0x1f09, 0x300, 0x201, 0x1f08, 0x301, 0x201, 0x1f09, + 0x301, 0x201, 0x1f08, 0x342, 0x201, 0x1f09, 0x342, 0x201, + 0x3b5, 0x313, 0x201, 0x3b5, 0x314, 0x201, 0x1f10, 0x300, + 0x201, 0x1f11, 0x300, 0x201, 0x1f10, 0x301, 0x201, 0x1f11, + 0x301, 0x201, 0x395, 0x313, 0x201, 0x395, 0x314, 0x201, + 0x1f18, 0x300, 0x201, 0x1f19, 0x300, 0x201, 0x1f18, 0x301, + 0x201, 0x1f19, 0x301, 0x201, 0x3b7, 0x313, 0x201, 0x3b7, + 0x314, 0x201, 0x1f20, 0x300, 0x201, 0x1f21, 0x300, 0x201, + 0x1f20, 0x301, 0x201, 0x1f21, 0x301, 0x201, 0x1f20, 0x342, + 0x201, 0x1f21, 0x342, 0x201, 0x397, 0x313, 0x201, 0x397, + 0x314, 0x201, 0x1f28, 0x300, 0x201, 0x1f29, 0x300, 0x201, + 0x1f28, 0x301, 0x201, 0x1f29, 0x301, 0x201, 0x1f28, 0x342, + 0x201, 0x1f29, 0x342, 0x201, 0x3b9, 0x313, 0x201, 0x3b9, + 0x314, 0x201, 0x1f30, 0x300, 0x201, 0x1f31, 0x300, 0x201, + 0x1f30, 0x301, 0x201, 0x1f31, 0x301, 0x201, 0x1f30, 0x342, + 0x201, 0x1f31, 0x342, 0x201, 0x399, 0x313, 0x201, 0x399, + 0x314, 0x201, 0x1f38, 0x300, 0x201, 0x1f39, 0x300, 0x201, + 0x1f38, 0x301, 0x201, 0x1f39, 0x301, 0x201, 0x1f38, 0x342, + 0x201, 0x1f39, 0x342, 0x201, 0x3bf, 0x313, 0x201, 0x3bf, + 0x314, 0x201, 0x1f40, 0x300, 0x201, 0x1f41, 0x300, 0x201, + 0x1f40, 0x301, 0x201, 0x1f41, 0x301, 0x201, 0x39f, 0x313, + 0x201, 0x39f, 0x314, 0x201, 0x1f48, 0x300, 0x201, 0x1f49, + 0x300, 0x201, 0x1f48, 0x301, 0x201, 0x1f49, 0x301, 0x201, + 0x3c5, 0x313, 0x201, 0x3c5, 0x314, 0x201, 0x1f50, 0x300, + 0x201, 0x1f51, 0x300, 0x201, 0x1f50, 0x301, 0x201, 0x1f51, + 0x301, 0x201, 0x1f50, 0x342, 0x201, 0x1f51, 0x342, 0x201, + 0x3a5, 0x314, 0x201, 0x1f59, 0x300, 0x201, 0x1f59, 0x301, + 0x201, 0x1f59, 0x342, 0x201, 0x3c9, 0x313, 0x201, 0x3c9, + 0x314, 0x201, 0x1f60, 0x300, 0x201, 0x1f61, 0x300, 0x201, + 0x1f60, 0x301, 0x201, 0x1f61, 0x301, 0x201, 0x1f60, 0x342, + 0x201, 0x1f61, 0x342, 0x201, 0x3a9, 0x313, 0x201, 0x3a9, + 0x314, 0x201, 0x1f68, 0x300, 0x201, 0x1f69, 0x300, 0x201, + 0x1f68, 0x301, 0x201, 0x1f69, 0x301, 0x201, 0x1f68, 0x342, + 0x201, 0x1f69, 0x342, 0x201, 0x3b1, 0x300, 0x101, 0x3ac, + 0x201, 0x3b5, 0x300, 0x101, 0x3ad, 0x201, 0x3b7, 0x300, + 0x101, 0x3ae, 0x201, 0x3b9, 0x300, 0x101, 0x3af, 0x201, + 0x3bf, 0x300, 0x101, 0x3cc, 0x201, 0x3c5, 0x300, 0x101, + 0x3cd, 0x201, 0x3c9, 0x300, 0x101, 0x3ce, 0x201, 0x1f00, + 0x345, 0x201, 0x1f01, 0x345, 0x201, 0x1f02, 0x345, 0x201, + 0x1f03, 0x345, 0x201, 0x1f04, 0x345, 0x201, 0x1f05, 0x345, + 0x201, 0x1f06, 0x345, 0x201, 0x1f07, 0x345, 0x201, 0x1f08, + 0x345, 0x201, 0x1f09, 0x345, 0x201, 0x1f0a, 0x345, 0x201, + 0x1f0b, 0x345, 0x201, 0x1f0c, 0x345, 0x201, 0x1f0d, 0x345, + 0x201, 0x1f0e, 0x345, 0x201, 0x1f0f, 0x345, 0x201, 0x1f20, + 0x345, 0x201, 0x1f21, 0x345, 0x201, 0x1f22, 0x345, 0x201, + 0x1f23, 0x345, 0x201, 0x1f24, 0x345, 0x201, 0x1f25, 0x345, + 0x201, 0x1f26, 0x345, 0x201, 0x1f27, 0x345, 0x201, 0x1f28, + 0x345, 0x201, 0x1f29, 0x345, 0x201, 0x1f2a, 0x345, 0x201, + 0x1f2b, 0x345, 0x201, 0x1f2c, 0x345, 0x201, 0x1f2d, 0x345, + 0x201, 0x1f2e, 0x345, 0x201, 0x1f2f, 0x345, 0x201, 0x1f60, + 0x345, 0x201, 0x1f61, 0x345, 0x201, 0x1f62, 0x345, 0x201, + 0x1f63, 0x345, 0x201, 0x1f64, 0x345, 0x201, 0x1f65, 0x345, + 0x201, 0x1f66, 0x345, 0x201, 0x1f67, 0x345, 0x201, 0x1f68, + 0x345, 0x201, 0x1f69, 0x345, 0x201, 0x1f6a, 0x345, 0x201, + 0x1f6b, 0x345, 0x201, 0x1f6c, 0x345, 0x201, 0x1f6d, 0x345, + 0x201, 0x1f6e, 0x345, 0x201, 0x1f6f, 0x345, 0x201, 0x3b1, + 0x306, 0x201, 0x3b1, 0x304, 0x201, 0x1f70, 0x345, 0x201, + 0x3b1, 0x345, 0x201, 0x3ac, 0x345, 0x201, 0x3b1, 0x342, + 0x201, 0x1fb6, 0x345, 0x201, 0x391, 0x306, 0x201, 0x391, + 0x304, 0x201, 0x391, 0x300, 0x101, 0x386, 0x201, 0x391, + 0x345, 0x210, 0x20, 0x313, 0x101, 0x3b9, 0x210, 0x20, + 0x313, 0x210, 0x20, 0x342, 0x201, 0xa8, 0x342, 0x201, + 0x1f74, 0x345, 0x201, 0x3b7, 0x345, 0x201, 0x3ae, 0x345, + 0x201, 0x3b7, 0x342, 0x201, 0x1fc6, 0x345, 0x201, 0x395, + 0x300, 0x101, 0x388, 0x201, 0x397, 0x300, 0x101, 0x389, + 0x201, 0x397, 0x345, 0x201, 0x1fbf, 0x300, 0x201, 0x1fbf, + 0x301, 0x201, 0x1fbf, 0x342, 0x201, 0x3b9, 0x306, 0x201, + 0x3b9, 0x304, 0x201, 0x3ca, 0x300, 0x101, 0x390, 0x201, + 0x3b9, 0x342, 0x201, 0x3ca, 0x342, 0x201, 0x399, 0x306, + 0x201, 0x399, 0x304, 0x201, 0x399, 0x300, 0x101, 0x38a, + 0x201, 0x1ffe, 0x300, 0x201, 0x1ffe, 0x301, 0x201, 0x1ffe, + 0x342, 0x201, 0x3c5, 0x306, 0x201, 0x3c5, 0x304, 0x201, + 0x3cb, 0x300, 0x101, 0x3b0, 0x201, 0x3c1, 0x313, 0x201, + 0x3c1, 0x314, 0x201, 0x3c5, 0x342, 0x201, 0x3cb, 0x342, + 0x201, 0x3a5, 0x306, 0x201, 0x3a5, 0x304, 0x201, 0x3a5, + 0x300, 0x101, 0x38e, 0x201, 0x3a1, 0x314, 0x201, 0xa8, + 0x300, 0x101, 0x385, 0x101, 0x60, 0x201, 0x1f7c, 0x345, + 0x201, 0x3c9, 0x345, 0x201, 0x3ce, 0x345, 0x201, 0x3c9, + 0x342, 0x201, 0x1ff6, 0x345, 0x201, 0x39f, 0x300, 0x101, + 0x38c, 0x201, 0x3a9, 0x300, 0x101, 0x38f, 0x201, 0x3a9, + 0x345, 0x101, 0xb4, 0x210, 0x20, 0x314, 0x101, 0x2002, + 0x101, 0x2003, 0x110, 0x20, 0x110, 0x20, 0x110, 0x20, + 0x110, 0x20, 0x110, 0x20, 0x103, 0x20, 0x110, 0x20, + 0x110, 0x20, 0x110, 0x20, 0x103, 0x2010, 0x210, 0x20, + 0x333, 0x110, 0x2e, 0x210, 0x2e, 0x2e, 0x310, 0x2e, + 0x2e, 0x2e, 0x103, 0x20, 0x210, 0x2032, 0x2032, 0x310, + 0x2032, 0x2032, 0x2032, 0x210, 0x2035, 0x2035, 0x310, 0x2035, + 0x2035, 0x2035, 0x210, 0x21, 0x21, 0x210, 0x20, 0x305, + 0x210, 0x3f, 0x3f, 0x210, 0x3f, 0x21, 0x210, 0x21, + 0x3f, 0x410, 0x2032, 0x2032, 0x2032, 0x2032, 0x110, 0x20, + 0x109, 0x30, 0x109, 0x69, 0x109, 0x34, 0x109, 0x35, + 0x109, 0x36, 0x109, 0x37, 0x109, 0x38, 0x109, 0x39, + 0x109, 0x2b, 0x109, 0x2212, 0x109, 0x3d, 0x109, 0x28, + 0x109, 0x29, 0x109, 0x6e, 0x10a, 0x30, 0x10a, 0x31, + 0x10a, 0x32, 0x10a, 0x33, 0x10a, 0x34, 0x10a, 0x35, + 0x10a, 0x36, 0x10a, 0x37, 0x10a, 0x38, 0x10a, 0x39, + 0x10a, 0x2b, 0x10a, 0x2212, 0x10a, 0x3d, 0x10a, 0x28, + 0x10a, 0x29, 0x10a, 0x61, 0x10a, 0x65, 0x10a, 0x6f, + 0x10a, 0x78, 0x10a, 0x259, 0x10a, 0x68, 0x10a, 0x6b, + 0x10a, 0x6c, 0x10a, 0x6d, 0x10a, 0x6e, 0x10a, 0x70, + 0x10a, 0x73, 0x10a, 0x74, 0x210, 0x52, 0x73, 0x310, + 0x61, 0x2f, 0x63, 0x310, 0x61, 0x2f, 0x73, 0x102, + 0x43, 0x210, 0xb0, 0x43, 0x310, 0x63, 0x2f, 0x6f, + 0x310, 0x63, 0x2f, 0x75, 0x110, 0x190, 0x210, 0xb0, + 0x46, 0x102, 0x67, 0x102, 0x48, 0x102, 0x48, 0x102, + 0x48, 0x102, 0x68, 0x102, 0x127, 0x102, 0x49, 0x102, + 0x49, 0x102, 0x4c, 0x102, 0x6c, 0x102, 0x4e, 0x210, + 0x4e, 0x6f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, + 0x102, 0x52, 0x102, 0x52, 0x209, 0x53, 0x4d, 0x310, + 0x54, 0x45, 0x4c, 0x209, 0x54, 0x4d, 0x102, 0x5a, + 0x101, 0x3a9, 0x102, 0x5a, 0x101, 0x4b, 0x101, 0xc5, + 0x102, 0x42, 0x102, 0x43, 0x102, 0x65, 0x102, 0x45, + 0x102, 0x46, 0x102, 0x4d, 0x102, 0x6f, 0x110, 0x5d0, + 0x110, 0x5d1, 0x110, 0x5d2, 0x110, 0x5d3, 0x102, 0x69, + 0x310, 0x46, 0x41, 0x58, 0x102, 0x3c0, 0x102, 0x3b3, + 0x102, 0x393, 0x102, 0x3a0, 0x102, 0x2211, 0x102, 0x44, + 0x102, 0x64, 0x102, 0x65, 0x102, 0x69, 0x102, 0x6a, + 0x311, 0x31, 0x2044, 0x37, 0x311, 0x31, 0x2044, 0x39, + 0x411, 0x31, 0x2044, 0x31, 0x30, 0x311, 0x31, 0x2044, + 0x33, 0x311, 0x32, 0x2044, 0x33, 0x311, 0x31, 0x2044, + 0x35, 0x311, 0x32, 0x2044, 0x35, 0x311, 0x33, 0x2044, + 0x35, 0x311, 0x34, 0x2044, 0x35, 0x311, 0x31, 0x2044, + 0x36, 0x311, 0x35, 0x2044, 0x36, 0x311, 0x31, 0x2044, + 0x38, 0x311, 0x33, 0x2044, 0x38, 0x311, 0x35, 0x2044, + 0x38, 0x311, 0x37, 0x2044, 0x38, 0x211, 0x31, 0x2044, + 0x110, 0x49, 0x210, 0x49, 0x49, 0x310, 0x49, 0x49, + 0x49, 0x210, 0x49, 0x56, 0x110, 0x56, 0x210, 0x56, + 0x49, 0x310, 0x56, 0x49, 0x49, 0x410, 0x56, 0x49, + 0x49, 0x49, 0x210, 0x49, 0x58, 0x110, 0x58, 0x210, + 0x58, 0x49, 0x310, 0x58, 0x49, 0x49, 0x110, 0x4c, + 0x110, 0x43, 0x110, 0x44, 0x110, 0x4d, 0x110, 0x69, + 0x210, 0x69, 0x69, 0x310, 0x69, 0x69, 0x69, 0x210, + 0x69, 0x76, 0x110, 0x76, 0x210, 0x76, 0x69, 0x310, + 0x76, 0x69, 0x69, 0x410, 0x76, 0x69, 0x69, 0x69, + 0x210, 0x69, 0x78, 0x110, 0x78, 0x210, 0x78, 0x69, + 0x310, 0x78, 0x69, 0x69, 0x110, 0x6c, 0x110, 0x63, + 0x110, 0x64, 0x110, 0x6d, 0x311, 0x30, 0x2044, 0x33, + 0x201, 0x2190, 0x338, 0x201, 0x2192, 0x338, 0x201, 0x2194, + 0x338, 0x201, 0x21d0, 0x338, 0x201, 0x21d4, 0x338, 0x201, + 0x21d2, 0x338, 0x201, 0x2203, 0x338, 0x201, 0x2208, 0x338, + 0x201, 0x220b, 0x338, 0x201, 0x2223, 0x338, 0x201, 0x2225, + 0x338, 0x210, 0x222b, 0x222b, 0x310, 0x222b, 0x222b, 0x222b, + 0x210, 0x222e, 0x222e, 0x310, 0x222e, 0x222e, 0x222e, 0x201, + 0x223c, 0x338, 0x201, 0x2243, 0x338, 0x201, 0x2245, 0x338, + 0x201, 0x2248, 0x338, 0x201, 0x3d, 0x338, 0x201, 0x2261, + 0x338, 0x201, 0x224d, 0x338, 0x201, 0x3c, 0x338, 0x201, + 0x3e, 0x338, 0x201, 0x2264, 0x338, 0x201, 0x2265, 0x338, + 0x201, 0x2272, 0x338, 0x201, 0x2273, 0x338, 0x201, 0x2276, + 0x338, 0x201, 0x2277, 0x338, 0x201, 0x227a, 0x338, 0x201, + 0x227b, 0x338, 0x201, 0x2282, 0x338, 0x201, 0x2283, 0x338, + 0x201, 0x2286, 0x338, 0x201, 0x2287, 0x338, 0x201, 0x22a2, + 0x338, 0x201, 0x22a8, 0x338, 0x201, 0x22a9, 0x338, 0x201, + 0x22ab, 0x338, 0x201, 0x227c, 0x338, 0x201, 0x227d, 0x338, + 0x201, 0x2291, 0x338, 0x201, 0x2292, 0x338, 0x201, 0x22b2, + 0x338, 0x201, 0x22b3, 0x338, 0x201, 0x22b4, 0x338, 0x201, + 0x22b5, 0x338, 0x101, 0x3008, 0x101, 0x3009, 0x108, 0x31, + 0x108, 0x32, 0x108, 0x33, 0x108, 0x34, 0x108, 0x35, + 0x108, 0x36, 0x108, 0x37, 0x108, 0x38, 0x108, 0x39, + 0x208, 0x31, 0x30, 0x208, 0x31, 0x31, 0x208, 0x31, + 0x32, 0x208, 0x31, 0x33, 0x208, 0x31, 0x34, 0x208, + 0x31, 0x35, 0x208, 0x31, 0x36, 0x208, 0x31, 0x37, + 0x208, 0x31, 0x38, 0x208, 0x31, 0x39, 0x208, 0x32, + 0x30, 0x310, 0x28, 0x31, 0x29, 0x310, 0x28, 0x32, + 0x29, 0x310, 0x28, 0x33, 0x29, 0x310, 0x28, 0x34, + 0x29, 0x310, 0x28, 0x35, 0x29, 0x310, 0x28, 0x36, + 0x29, 0x310, 0x28, 0x37, 0x29, 0x310, 0x28, 0x38, + 0x29, 0x310, 0x28, 0x39, 0x29, 0x410, 0x28, 0x31, + 0x30, 0x29, 0x410, 0x28, 0x31, 0x31, 0x29, 0x410, + 0x28, 0x31, 0x32, 0x29, 0x410, 0x28, 0x31, 0x33, + 0x29, 0x410, 0x28, 0x31, 0x34, 0x29, 0x410, 0x28, + 0x31, 0x35, 0x29, 0x410, 0x28, 0x31, 0x36, 0x29, + 0x410, 0x28, 0x31, 0x37, 0x29, 0x410, 0x28, 0x31, + 0x38, 0x29, 0x410, 0x28, 0x31, 0x39, 0x29, 0x410, + 0x28, 0x32, 0x30, 0x29, 0x210, 0x31, 0x2e, 0x210, + 0x32, 0x2e, 0x210, 0x33, 0x2e, 0x210, 0x34, 0x2e, + 0x210, 0x35, 0x2e, 0x210, 0x36, 0x2e, 0x210, 0x37, + 0x2e, 0x210, 0x38, 0x2e, 0x210, 0x39, 0x2e, 0x310, + 0x31, 0x30, 0x2e, 0x310, 0x31, 0x31, 0x2e, 0x310, + 0x31, 0x32, 0x2e, 0x310, 0x31, 0x33, 0x2e, 0x310, + 0x31, 0x34, 0x2e, 0x310, 0x31, 0x35, 0x2e, 0x310, + 0x31, 0x36, 0x2e, 0x310, 0x31, 0x37, 0x2e, 0x310, + 0x31, 0x38, 0x2e, 0x310, 0x31, 0x39, 0x2e, 0x310, + 0x32, 0x30, 0x2e, 0x310, 0x28, 0x61, 0x29, 0x310, + 0x28, 0x62, 0x29, 0x310, 0x28, 0x63, 0x29, 0x310, + 0x28, 0x64, 0x29, 0x310, 0x28, 0x65, 0x29, 0x310, + 0x28, 0x66, 0x29, 0x310, 0x28, 0x67, 0x29, 0x310, + 0x28, 0x68, 0x29, 0x310, 0x28, 0x69, 0x29, 0x310, + 0x28, 0x6a, 0x29, 0x310, 0x28, 0x6b, 0x29, 0x310, + 0x28, 0x6c, 0x29, 0x310, 0x28, 0x6d, 0x29, 0x310, + 0x28, 0x6e, 0x29, 0x310, 0x28, 0x6f, 0x29, 0x310, + 0x28, 0x70, 0x29, 0x310, 0x28, 0x71, 0x29, 0x310, + 0x28, 0x72, 0x29, 0x310, 0x28, 0x73, 0x29, 0x310, + 0x28, 0x74, 0x29, 0x310, 0x28, 0x75, 0x29, 0x310, + 0x28, 0x76, 0x29, 0x310, 0x28, 0x77, 0x29, 0x310, + 0x28, 0x78, 0x29, 0x310, 0x28, 0x79, 0x29, 0x310, + 0x28, 0x7a, 0x29, 0x108, 0x41, 0x108, 0x42, 0x108, + 0x43, 0x108, 0x44, 0x108, 0x45, 0x108, 0x46, 0x108, + 0x47, 0x108, 0x48, 0x108, 0x49, 0x108, 0x4a, 0x108, + 0x4b, 0x108, 0x4c, 0x108, 0x4d, 0x108, 0x4e, 0x108, + 0x4f, 0x108, 0x50, 0x108, 0x51, 0x108, 0x52, 0x108, + 0x53, 0x108, 0x54, 0x108, 0x55, 0x108, 0x56, 0x108, + 0x57, 0x108, 0x58, 0x108, 0x59, 0x108, 0x5a, 0x108, + 0x61, 0x108, 0x62, 0x108, 0x63, 0x108, 0x64, 0x108, + 0x65, 0x108, 0x66, 0x108, 0x67, 0x108, 0x68, 0x108, + 0x69, 0x108, 0x6a, 0x108, 0x6b, 0x108, 0x6c, 0x108, + 0x6d, 0x108, 0x6e, 0x108, 0x6f, 0x108, 0x70, 0x108, + 0x71, 0x108, 0x72, 0x108, 0x73, 0x108, 0x74, 0x108, + 0x75, 0x108, 0x76, 0x108, 0x77, 0x108, 0x78, 0x108, + 0x79, 0x108, 0x7a, 0x108, 0x30, 0x410, 0x222b, 0x222b, + 0x222b, 0x222b, 0x310, 0x3a, 0x3a, 0x3d, 0x210, 0x3d, + 0x3d, 0x310, 0x3d, 0x3d, 0x3d, 0x201, 0x2add, 0x338, + 0x10a, 0x6a, 0x109, 0x56, 0x109, 0x2d61, 0x110, 0x6bcd, + 0x110, 0x9f9f, 0x110, 0x4e00, 0x110, 0x4e28, 0x110, 0x4e36, + 0x110, 0x4e3f, 0x110, 0x4e59, 0x110, 0x4e85, 0x110, 0x4e8c, + 0x110, 0x4ea0, 0x110, 0x4eba, 0x110, 0x513f, 0x110, 0x5165, + 0x110, 0x516b, 0x110, 0x5182, 0x110, 0x5196, 0x110, 0x51ab, + 0x110, 0x51e0, 0x110, 0x51f5, 0x110, 0x5200, 0x110, 0x529b, + 0x110, 0x52f9, 0x110, 0x5315, 0x110, 0x531a, 0x110, 0x5338, + 0x110, 0x5341, 0x110, 0x535c, 0x110, 0x5369, 0x110, 0x5382, + 0x110, 0x53b6, 0x110, 0x53c8, 0x110, 0x53e3, 0x110, 0x56d7, + 0x110, 0x571f, 0x110, 0x58eb, 0x110, 0x5902, 0x110, 0x590a, + 0x110, 0x5915, 0x110, 0x5927, 0x110, 0x5973, 0x110, 0x5b50, + 0x110, 0x5b80, 0x110, 0x5bf8, 0x110, 0x5c0f, 0x110, 0x5c22, + 0x110, 0x5c38, 0x110, 0x5c6e, 0x110, 0x5c71, 0x110, 0x5ddb, + 0x110, 0x5de5, 0x110, 0x5df1, 0x110, 0x5dfe, 0x110, 0x5e72, + 0x110, 0x5e7a, 0x110, 0x5e7f, 0x110, 0x5ef4, 0x110, 0x5efe, + 0x110, 0x5f0b, 0x110, 0x5f13, 0x110, 0x5f50, 0x110, 0x5f61, + 0x110, 0x5f73, 0x110, 0x5fc3, 0x110, 0x6208, 0x110, 0x6236, + 0x110, 0x624b, 0x110, 0x652f, 0x110, 0x6534, 0x110, 0x6587, + 0x110, 0x6597, 0x110, 0x65a4, 0x110, 0x65b9, 0x110, 0x65e0, + 0x110, 0x65e5, 0x110, 0x66f0, 0x110, 0x6708, 0x110, 0x6728, + 0x110, 0x6b20, 0x110, 0x6b62, 0x110, 0x6b79, 0x110, 0x6bb3, + 0x110, 0x6bcb, 0x110, 0x6bd4, 0x110, 0x6bdb, 0x110, 0x6c0f, + 0x110, 0x6c14, 0x110, 0x6c34, 0x110, 0x706b, 0x110, 0x722a, + 0x110, 0x7236, 0x110, 0x723b, 0x110, 0x723f, 0x110, 0x7247, + 0x110, 0x7259, 0x110, 0x725b, 0x110, 0x72ac, 0x110, 0x7384, + 0x110, 0x7389, 0x110, 0x74dc, 0x110, 0x74e6, 0x110, 0x7518, + 0x110, 0x751f, 0x110, 0x7528, 0x110, 0x7530, 0x110, 0x758b, + 0x110, 0x7592, 0x110, 0x7676, 0x110, 0x767d, 0x110, 0x76ae, + 0x110, 0x76bf, 0x110, 0x76ee, 0x110, 0x77db, 0x110, 0x77e2, + 0x110, 0x77f3, 0x110, 0x793a, 0x110, 0x79b8, 0x110, 0x79be, + 0x110, 0x7a74, 0x110, 0x7acb, 0x110, 0x7af9, 0x110, 0x7c73, + 0x110, 0x7cf8, 0x110, 0x7f36, 0x110, 0x7f51, 0x110, 0x7f8a, + 0x110, 0x7fbd, 0x110, 0x8001, 0x110, 0x800c, 0x110, 0x8012, + 0x110, 0x8033, 0x110, 0x807f, 0x110, 0x8089, 0x110, 0x81e3, + 0x110, 0x81ea, 0x110, 0x81f3, 0x110, 0x81fc, 0x110, 0x820c, + 0x110, 0x821b, 0x110, 0x821f, 0x110, 0x826e, 0x110, 0x8272, + 0x110, 0x8278, 0x110, 0x864d, 0x110, 0x866b, 0x110, 0x8840, + 0x110, 0x884c, 0x110, 0x8863, 0x110, 0x897e, 0x110, 0x898b, + 0x110, 0x89d2, 0x110, 0x8a00, 0x110, 0x8c37, 0x110, 0x8c46, + 0x110, 0x8c55, 0x110, 0x8c78, 0x110, 0x8c9d, 0x110, 0x8d64, + 0x110, 0x8d70, 0x110, 0x8db3, 0x110, 0x8eab, 0x110, 0x8eca, + 0x110, 0x8f9b, 0x110, 0x8fb0, 0x110, 0x8fb5, 0x110, 0x9091, + 0x110, 0x9149, 0x110, 0x91c6, 0x110, 0x91cc, 0x110, 0x91d1, + 0x110, 0x9577, 0x110, 0x9580, 0x110, 0x961c, 0x110, 0x96b6, + 0x110, 0x96b9, 0x110, 0x96e8, 0x110, 0x9751, 0x110, 0x975e, + 0x110, 0x9762, 0x110, 0x9769, 0x110, 0x97cb, 0x110, 0x97ed, + 0x110, 0x97f3, 0x110, 0x9801, 0x110, 0x98a8, 0x110, 0x98db, + 0x110, 0x98df, 0x110, 0x9996, 0x110, 0x9999, 0x110, 0x99ac, + 0x110, 0x9aa8, 0x110, 0x9ad8, 0x110, 0x9adf, 0x110, 0x9b25, + 0x110, 0x9b2f, 0x110, 0x9b32, 0x110, 0x9b3c, 0x110, 0x9b5a, + 0x110, 0x9ce5, 0x110, 0x9e75, 0x110, 0x9e7f, 0x110, 0x9ea5, + 0x110, 0x9ebb, 0x110, 0x9ec3, 0x110, 0x9ecd, 0x110, 0x9ed1, + 0x110, 0x9ef9, 0x110, 0x9efd, 0x110, 0x9f0e, 0x110, 0x9f13, + 0x110, 0x9f20, 0x110, 0x9f3b, 0x110, 0x9f4a, 0x110, 0x9f52, + 0x110, 0x9f8d, 0x110, 0x9f9c, 0x110, 0x9fa0, 0x10c, 0x20, + 0x110, 0x3012, 0x110, 0x5341, 0x110, 0x5344, 0x110, 0x5345, + 0x201, 0x304b, 0x3099, 0x201, 0x304d, 0x3099, 0x201, 0x304f, + 0x3099, 0x201, 0x3051, 0x3099, 0x201, 0x3053, 0x3099, 0x201, + 0x3055, 0x3099, 0x201, 0x3057, 0x3099, 0x201, 0x3059, 0x3099, + 0x201, 0x305b, 0x3099, 0x201, 0x305d, 0x3099, 0x201, 0x305f, + 0x3099, 0x201, 0x3061, 0x3099, 0x201, 0x3064, 0x3099, 0x201, + 0x3066, 0x3099, 0x201, 0x3068, 0x3099, 0x201, 0x306f, 0x3099, + 0x201, 0x306f, 0x309a, 0x201, 0x3072, 0x3099, 0x201, 0x3072, + 0x309a, 0x201, 0x3075, 0x3099, 0x201, 0x3075, 0x309a, 0x201, + 0x3078, 0x3099, 0x201, 0x3078, 0x309a, 0x201, 0x307b, 0x3099, + 0x201, 0x307b, 0x309a, 0x201, 0x3046, 0x3099, 0x210, 0x20, + 0x3099, 0x210, 0x20, 0x309a, 0x201, 0x309d, 0x3099, 0x20b, + 0x3088, 0x308a, 0x201, 0x30ab, 0x3099, 0x201, 0x30ad, 0x3099, + 0x201, 0x30af, 0x3099, 0x201, 0x30b1, 0x3099, 0x201, 0x30b3, + 0x3099, 0x201, 0x30b5, 0x3099, 0x201, 0x30b7, 0x3099, 0x201, + 0x30b9, 0x3099, 0x201, 0x30bb, 0x3099, 0x201, 0x30bd, 0x3099, + 0x201, 0x30bf, 0x3099, 0x201, 0x30c1, 0x3099, 0x201, 0x30c4, + 0x3099, 0x201, 0x30c6, 0x3099, 0x201, 0x30c8, 0x3099, 0x201, + 0x30cf, 0x3099, 0x201, 0x30cf, 0x309a, 0x201, 0x30d2, 0x3099, + 0x201, 0x30d2, 0x309a, 0x201, 0x30d5, 0x3099, 0x201, 0x30d5, + 0x309a, 0x201, 0x30d8, 0x3099, 0x201, 0x30d8, 0x309a, 0x201, + 0x30db, 0x3099, 0x201, 0x30db, 0x309a, 0x201, 0x30a6, 0x3099, + 0x201, 0x30ef, 0x3099, 0x201, 0x30f0, 0x3099, 0x201, 0x30f1, + 0x3099, 0x201, 0x30f2, 0x3099, 0x201, 0x30fd, 0x3099, 0x20b, + 0x30b3, 0x30c8, 0x110, 0x1100, 0x110, 0x1101, 0x110, 0x11aa, + 0x110, 0x1102, 0x110, 0x11ac, 0x110, 0x11ad, 0x110, 0x1103, + 0x110, 0x1104, 0x110, 0x1105, 0x110, 0x11b0, 0x110, 0x11b1, + 0x110, 0x11b2, 0x110, 0x11b3, 0x110, 0x11b4, 0x110, 0x11b5, + 0x110, 0x111a, 0x110, 0x1106, 0x110, 0x1107, 0x110, 0x1108, + 0x110, 0x1121, 0x110, 0x1109, 0x110, 0x110a, 0x110, 0x110b, + 0x110, 0x110c, 0x110, 0x110d, 0x110, 0x110e, 0x110, 0x110f, + 0x110, 0x1110, 0x110, 0x1111, 0x110, 0x1112, 0x110, 0x1161, + 0x110, 0x1162, 0x110, 0x1163, 0x110, 0x1164, 0x110, 0x1165, + 0x110, 0x1166, 0x110, 0x1167, 0x110, 0x1168, 0x110, 0x1169, + 0x110, 0x116a, 0x110, 0x116b, 0x110, 0x116c, 0x110, 0x116d, + 0x110, 0x116e, 0x110, 0x116f, 0x110, 0x1170, 0x110, 0x1171, + 0x110, 0x1172, 0x110, 0x1173, 0x110, 0x1174, 0x110, 0x1175, + 0x110, 0x1160, 0x110, 0x1114, 0x110, 0x1115, 0x110, 0x11c7, + 0x110, 0x11c8, 0x110, 0x11cc, 0x110, 0x11ce, 0x110, 0x11d3, + 0x110, 0x11d7, 0x110, 0x11d9, 0x110, 0x111c, 0x110, 0x11dd, + 0x110, 0x11df, 0x110, 0x111d, 0x110, 0x111e, 0x110, 0x1120, + 0x110, 0x1122, 0x110, 0x1123, 0x110, 0x1127, 0x110, 0x1129, + 0x110, 0x112b, 0x110, 0x112c, 0x110, 0x112d, 0x110, 0x112e, + 0x110, 0x112f, 0x110, 0x1132, 0x110, 0x1136, 0x110, 0x1140, + 0x110, 0x1147, 0x110, 0x114c, 0x110, 0x11f1, 0x110, 0x11f2, + 0x110, 0x1157, 0x110, 0x1158, 0x110, 0x1159, 0x110, 0x1184, + 0x110, 0x1185, 0x110, 0x1188, 0x110, 0x1191, 0x110, 0x1192, + 0x110, 0x1194, 0x110, 0x119e, 0x110, 0x11a1, 0x109, 0x4e00, + 0x109, 0x4e8c, 0x109, 0x4e09, 0x109, 0x56db, 0x109, 0x4e0a, + 0x109, 0x4e2d, 0x109, 0x4e0b, 0x109, 0x7532, 0x109, 0x4e59, + 0x109, 0x4e19, 0x109, 0x4e01, 0x109, 0x5929, 0x109, 0x5730, + 0x109, 0x4eba, 0x310, 0x28, 0x1100, 0x29, 0x310, 0x28, + 0x1102, 0x29, 0x310, 0x28, 0x1103, 0x29, 0x310, 0x28, + 0x1105, 0x29, 0x310, 0x28, 0x1106, 0x29, 0x310, 0x28, + 0x1107, 0x29, 0x310, 0x28, 0x1109, 0x29, 0x310, 0x28, + 0x110b, 0x29, 0x310, 0x28, 0x110c, 0x29, 0x310, 0x28, + 0x110e, 0x29, 0x310, 0x28, 0x110f, 0x29, 0x310, 0x28, + 0x1110, 0x29, 0x310, 0x28, 0x1111, 0x29, 0x310, 0x28, + 0x1112, 0x29, 0x410, 0x28, 0x1100, 0x1161, 0x29, 0x410, + 0x28, 0x1102, 0x1161, 0x29, 0x410, 0x28, 0x1103, 0x1161, + 0x29, 0x410, 0x28, 0x1105, 0x1161, 0x29, 0x410, 0x28, + 0x1106, 0x1161, 0x29, 0x410, 0x28, 0x1107, 0x1161, 0x29, + 0x410, 0x28, 0x1109, 0x1161, 0x29, 0x410, 0x28, 0x110b, + 0x1161, 0x29, 0x410, 0x28, 0x110c, 0x1161, 0x29, 0x410, + 0x28, 0x110e, 0x1161, 0x29, 0x410, 0x28, 0x110f, 0x1161, + 0x29, 0x410, 0x28, 0x1110, 0x1161, 0x29, 0x410, 0x28, + 0x1111, 0x1161, 0x29, 0x410, 0x28, 0x1112, 0x1161, 0x29, + 0x410, 0x28, 0x110c, 0x116e, 0x29, 0x710, 0x28, 0x110b, + 0x1169, 0x110c, 0x1165, 0x11ab, 0x29, 0x610, 0x28, 0x110b, + 0x1169, 0x1112, 0x116e, 0x29, 0x310, 0x28, 0x4e00, 0x29, + 0x310, 0x28, 0x4e8c, 0x29, 0x310, 0x28, 0x4e09, 0x29, + 0x310, 0x28, 0x56db, 0x29, 0x310, 0x28, 0x4e94, 0x29, + 0x310, 0x28, 0x516d, 0x29, 0x310, 0x28, 0x4e03, 0x29, + 0x310, 0x28, 0x516b, 0x29, 0x310, 0x28, 0x4e5d, 0x29, + 0x310, 0x28, 0x5341, 0x29, 0x310, 0x28, 0x6708, 0x29, + 0x310, 0x28, 0x706b, 0x29, 0x310, 0x28, 0x6c34, 0x29, + 0x310, 0x28, 0x6728, 0x29, 0x310, 0x28, 0x91d1, 0x29, + 0x310, 0x28, 0x571f, 0x29, 0x310, 0x28, 0x65e5, 0x29, + 0x310, 0x28, 0x682a, 0x29, 0x310, 0x28, 0x6709, 0x29, + 0x310, 0x28, 0x793e, 0x29, 0x310, 0x28, 0x540d, 0x29, + 0x310, 0x28, 0x7279, 0x29, 0x310, 0x28, 0x8ca1, 0x29, + 0x310, 0x28, 0x795d, 0x29, 0x310, 0x28, 0x52b4, 0x29, + 0x310, 0x28, 0x4ee3, 0x29, 0x310, 0x28, 0x547c, 0x29, + 0x310, 0x28, 0x5b66, 0x29, 0x310, 0x28, 0x76e3, 0x29, + 0x310, 0x28, 0x4f01, 0x29, 0x310, 0x28, 0x8cc7, 0x29, + 0x310, 0x28, 0x5354, 0x29, 0x310, 0x28, 0x796d, 0x29, + 0x310, 0x28, 0x4f11, 0x29, 0x310, 0x28, 0x81ea, 0x29, + 0x310, 0x28, 0x81f3, 0x29, 0x108, 0x554f, 0x108, 0x5e7c, + 0x108, 0x6587, 0x108, 0x7b8f, 0x30f, 0x50, 0x54, 0x45, + 0x208, 0x32, 0x31, 0x208, 0x32, 0x32, 0x208, 0x32, + 0x33, 0x208, 0x32, 0x34, 0x208, 0x32, 0x35, 0x208, + 0x32, 0x36, 0x208, 0x32, 0x37, 0x208, 0x32, 0x38, + 0x208, 0x32, 0x39, 0x208, 0x33, 0x30, 0x208, 0x33, + 0x31, 0x208, 0x33, 0x32, 0x208, 0x33, 0x33, 0x208, + 0x33, 0x34, 0x208, 0x33, 0x35, 0x108, 0x1100, 0x108, + 0x1102, 0x108, 0x1103, 0x108, 0x1105, 0x108, 0x1106, 0x108, + 0x1107, 0x108, 0x1109, 0x108, 0x110b, 0x108, 0x110c, 0x108, + 0x110e, 0x108, 0x110f, 0x108, 0x1110, 0x108, 0x1111, 0x108, + 0x1112, 0x208, 0x1100, 0x1161, 0x208, 0x1102, 0x1161, 0x208, + 0x1103, 0x1161, 0x208, 0x1105, 0x1161, 0x208, 0x1106, 0x1161, + 0x208, 0x1107, 0x1161, 0x208, 0x1109, 0x1161, 0x208, 0x110b, + 0x1161, 0x208, 0x110c, 0x1161, 0x208, 0x110e, 0x1161, 0x208, + 0x110f, 0x1161, 0x208, 0x1110, 0x1161, 0x208, 0x1111, 0x1161, + 0x208, 0x1112, 0x1161, 0x508, 0x110e, 0x1161, 0x11b7, 0x1100, + 0x1169, 0x408, 0x110c, 0x116e, 0x110b, 0x1174, 0x208, 0x110b, + 0x116e, 0x108, 0x4e00, 0x108, 0x4e8c, 0x108, 0x4e09, 0x108, + 0x56db, 0x108, 0x4e94, 0x108, 0x516d, 0x108, 0x4e03, 0x108, + 0x516b, 0x108, 0x4e5d, 0x108, 0x5341, 0x108, 0x6708, 0x108, + 0x706b, 0x108, 0x6c34, 0x108, 0x6728, 0x108, 0x91d1, 0x108, + 0x571f, 0x108, 0x65e5, 0x108, 0x682a, 0x108, 0x6709, 0x108, + 0x793e, 0x108, 0x540d, 0x108, 0x7279, 0x108, 0x8ca1, 0x108, + 0x795d, 0x108, 0x52b4, 0x108, 0x79d8, 0x108, 0x7537, 0x108, + 0x5973, 0x108, 0x9069, 0x108, 0x512a, 0x108, 0x5370, 0x108, + 0x6ce8, 0x108, 0x9805, 0x108, 0x4f11, 0x108, 0x5199, 0x108, + 0x6b63, 0x108, 0x4e0a, 0x108, 0x4e2d, 0x108, 0x4e0b, 0x108, + 0x5de6, 0x108, 0x53f3, 0x108, 0x533b, 0x108, 0x5b97, 0x108, + 0x5b66, 0x108, 0x76e3, 0x108, 0x4f01, 0x108, 0x8cc7, 0x108, + 0x5354, 0x108, 0x591c, 0x208, 0x33, 0x36, 0x208, 0x33, + 0x37, 0x208, 0x33, 0x38, 0x208, 0x33, 0x39, 0x208, + 0x34, 0x30, 0x208, 0x34, 0x31, 0x208, 0x34, 0x32, + 0x208, 0x34, 0x33, 0x208, 0x34, 0x34, 0x208, 0x34, + 0x35, 0x208, 0x34, 0x36, 0x208, 0x34, 0x37, 0x208, + 0x34, 0x38, 0x208, 0x34, 0x39, 0x208, 0x35, 0x30, + 0x210, 0x31, 0x6708, 0x210, 0x32, 0x6708, 0x210, 0x33, + 0x6708, 0x210, 0x34, 0x6708, 0x210, 0x35, 0x6708, 0x210, + 0x36, 0x6708, 0x210, 0x37, 0x6708, 0x210, 0x38, 0x6708, + 0x210, 0x39, 0x6708, 0x310, 0x31, 0x30, 0x6708, 0x310, + 0x31, 0x31, 0x6708, 0x310, 0x31, 0x32, 0x6708, 0x20f, + 0x48, 0x67, 0x30f, 0x65, 0x72, 0x67, 0x20f, 0x65, + 0x56, 0x30f, 0x4c, 0x54, 0x44, 0x108, 0x30a2, 0x108, + 0x30a4, 0x108, 0x30a6, 0x108, 0x30a8, 0x108, 0x30aa, 0x108, + 0x30ab, 0x108, 0x30ad, 0x108, 0x30af, 0x108, 0x30b1, 0x108, + 0x30b3, 0x108, 0x30b5, 0x108, 0x30b7, 0x108, 0x30b9, 0x108, + 0x30bb, 0x108, 0x30bd, 0x108, 0x30bf, 0x108, 0x30c1, 0x108, + 0x30c4, 0x108, 0x30c6, 0x108, 0x30c8, 0x108, 0x30ca, 0x108, + 0x30cb, 0x108, 0x30cc, 0x108, 0x30cd, 0x108, 0x30ce, 0x108, + 0x30cf, 0x108, 0x30d2, 0x108, 0x30d5, 0x108, 0x30d8, 0x108, + 0x30db, 0x108, 0x30de, 0x108, 0x30df, 0x108, 0x30e0, 0x108, + 0x30e1, 0x108, 0x30e2, 0x108, 0x30e4, 0x108, 0x30e6, 0x108, + 0x30e8, 0x108, 0x30e9, 0x108, 0x30ea, 0x108, 0x30eb, 0x108, + 0x30ec, 0x108, 0x30ed, 0x108, 0x30ef, 0x108, 0x30f0, 0x108, + 0x30f1, 0x108, 0x30f2, 0x40f, 0x30a2, 0x30d1, 0x30fc, 0x30c8, + 0x40f, 0x30a2, 0x30eb, 0x30d5, 0x30a1, 0x40f, 0x30a2, 0x30f3, + 0x30da, 0x30a2, 0x30f, 0x30a2, 0x30fc, 0x30eb, 0x40f, 0x30a4, + 0x30cb, 0x30f3, 0x30b0, 0x30f, 0x30a4, 0x30f3, 0x30c1, 0x30f, + 0x30a6, 0x30a9, 0x30f3, 0x50f, 0x30a8, 0x30b9, 0x30af, 0x30fc, + 0x30c9, 0x40f, 0x30a8, 0x30fc, 0x30ab, 0x30fc, 0x30f, 0x30aa, + 0x30f3, 0x30b9, 0x30f, 0x30aa, 0x30fc, 0x30e0, 0x30f, 0x30ab, + 0x30a4, 0x30ea, 0x40f, 0x30ab, 0x30e9, 0x30c3, 0x30c8, 0x40f, + 0x30ab, 0x30ed, 0x30ea, 0x30fc, 0x30f, 0x30ac, 0x30ed, 0x30f3, + 0x30f, 0x30ac, 0x30f3, 0x30de, 0x20f, 0x30ae, 0x30ac, 0x30f, + 0x30ae, 0x30cb, 0x30fc, 0x40f, 0x30ad, 0x30e5, 0x30ea, 0x30fc, + 0x40f, 0x30ae, 0x30eb, 0x30c0, 0x30fc, 0x20f, 0x30ad, 0x30ed, + 0x50f, 0x30ad, 0x30ed, 0x30b0, 0x30e9, 0x30e0, 0x60f, 0x30ad, + 0x30ed, 0x30e1, 0x30fc, 0x30c8, 0x30eb, 0x50f, 0x30ad, 0x30ed, + 0x30ef, 0x30c3, 0x30c8, 0x30f, 0x30b0, 0x30e9, 0x30e0, 0x50f, + 0x30b0, 0x30e9, 0x30e0, 0x30c8, 0x30f3, 0x50f, 0x30af, 0x30eb, + 0x30bc, 0x30a4, 0x30ed, 0x40f, 0x30af, 0x30ed, 0x30fc, 0x30cd, + 0x30f, 0x30b1, 0x30fc, 0x30b9, 0x30f, 0x30b3, 0x30eb, 0x30ca, + 0x30f, 0x30b3, 0x30fc, 0x30dd, 0x40f, 0x30b5, 0x30a4, 0x30af, + 0x30eb, 0x50f, 0x30b5, 0x30f3, 0x30c1, 0x30fc, 0x30e0, 0x40f, + 0x30b7, 0x30ea, 0x30f3, 0x30b0, 0x30f, 0x30bb, 0x30f3, 0x30c1, + 0x30f, 0x30bb, 0x30f3, 0x30c8, 0x30f, 0x30c0, 0x30fc, 0x30b9, + 0x20f, 0x30c7, 0x30b7, 0x20f, 0x30c9, 0x30eb, 0x20f, 0x30c8, + 0x30f3, 0x20f, 0x30ca, 0x30ce, 0x30f, 0x30ce, 0x30c3, 0x30c8, + 0x30f, 0x30cf, 0x30a4, 0x30c4, 0x50f, 0x30d1, 0x30fc, 0x30bb, + 0x30f3, 0x30c8, 0x30f, 0x30d1, 0x30fc, 0x30c4, 0x40f, 0x30d0, + 0x30fc, 0x30ec, 0x30eb, 0x50f, 0x30d4, 0x30a2, 0x30b9, 0x30c8, + 0x30eb, 0x30f, 0x30d4, 0x30af, 0x30eb, 0x20f, 0x30d4, 0x30b3, + 0x20f, 0x30d3, 0x30eb, 0x50f, 0x30d5, 0x30a1, 0x30e9, 0x30c3, + 0x30c9, 0x40f, 0x30d5, 0x30a3, 0x30fc, 0x30c8, 0x50f, 0x30d6, + 0x30c3, 0x30b7, 0x30a7, 0x30eb, 0x30f, 0x30d5, 0x30e9, 0x30f3, + 0x50f, 0x30d8, 0x30af, 0x30bf, 0x30fc, 0x30eb, 0x20f, 0x30da, + 0x30bd, 0x30f, 0x30da, 0x30cb, 0x30d2, 0x30f, 0x30d8, 0x30eb, + 0x30c4, 0x30f, 0x30da, 0x30f3, 0x30b9, 0x30f, 0x30da, 0x30fc, + 0x30b8, 0x30f, 0x30d9, 0x30fc, 0x30bf, 0x40f, 0x30dd, 0x30a4, + 0x30f3, 0x30c8, 0x30f, 0x30dc, 0x30eb, 0x30c8, 0x20f, 0x30db, + 0x30f3, 0x30f, 0x30dd, 0x30f3, 0x30c9, 0x30f, 0x30db, 0x30fc, + 0x30eb, 0x30f, 0x30db, 0x30fc, 0x30f3, 0x40f, 0x30de, 0x30a4, + 0x30af, 0x30ed, 0x30f, 0x30de, 0x30a4, 0x30eb, 0x30f, 0x30de, + 0x30c3, 0x30cf, 0x30f, 0x30de, 0x30eb, 0x30af, 0x50f, 0x30de, + 0x30f3, 0x30b7, 0x30e7, 0x30f3, 0x40f, 0x30df, 0x30af, 0x30ed, + 0x30f3, 0x20f, 0x30df, 0x30ea, 0x50f, 0x30df, 0x30ea, 0x30d0, + 0x30fc, 0x30eb, 0x20f, 0x30e1, 0x30ac, 0x40f, 0x30e1, 0x30ac, + 0x30c8, 0x30f3, 0x40f, 0x30e1, 0x30fc, 0x30c8, 0x30eb, 0x30f, + 0x30e4, 0x30fc, 0x30c9, 0x30f, 0x30e4, 0x30fc, 0x30eb, 0x30f, + 0x30e6, 0x30a2, 0x30f3, 0x40f, 0x30ea, 0x30c3, 0x30c8, 0x30eb, + 0x20f, 0x30ea, 0x30e9, 0x30f, 0x30eb, 0x30d4, 0x30fc, 0x40f, + 0x30eb, 0x30fc, 0x30d6, 0x30eb, 0x20f, 0x30ec, 0x30e0, 0x50f, + 0x30ec, 0x30f3, 0x30c8, 0x30b2, 0x30f3, 0x30f, 0x30ef, 0x30c3, + 0x30c8, 0x210, 0x30, 0x70b9, 0x210, 0x31, 0x70b9, 0x210, + 0x32, 0x70b9, 0x210, 0x33, 0x70b9, 0x210, 0x34, 0x70b9, + 0x210, 0x35, 0x70b9, 0x210, 0x36, 0x70b9, 0x210, 0x37, + 0x70b9, 0x210, 0x38, 0x70b9, 0x210, 0x39, 0x70b9, 0x310, + 0x31, 0x30, 0x70b9, 0x310, 0x31, 0x31, 0x70b9, 0x310, + 0x31, 0x32, 0x70b9, 0x310, 0x31, 0x33, 0x70b9, 0x310, + 0x31, 0x34, 0x70b9, 0x310, 0x31, 0x35, 0x70b9, 0x310, + 0x31, 0x36, 0x70b9, 0x310, 0x31, 0x37, 0x70b9, 0x310, + 0x31, 0x38, 0x70b9, 0x310, 0x31, 0x39, 0x70b9, 0x310, + 0x32, 0x30, 0x70b9, 0x310, 0x32, 0x31, 0x70b9, 0x310, + 0x32, 0x32, 0x70b9, 0x310, 0x32, 0x33, 0x70b9, 0x310, + 0x32, 0x34, 0x70b9, 0x30f, 0x68, 0x50, 0x61, 0x20f, + 0x64, 0x61, 0x20f, 0x41, 0x55, 0x30f, 0x62, 0x61, + 0x72, 0x20f, 0x6f, 0x56, 0x20f, 0x70, 0x63, 0x20f, + 0x64, 0x6d, 0x30f, 0x64, 0x6d, 0xb2, 0x30f, 0x64, + 0x6d, 0xb3, 0x20f, 0x49, 0x55, 0x20f, 0x5e73, 0x6210, + 0x20f, 0x662d, 0x548c, 0x20f, 0x5927, 0x6b63, 0x20f, 0x660e, + 0x6cbb, 0x40f, 0x682a, 0x5f0f, 0x4f1a, 0x793e, 0x20f, 0x70, + 0x41, 0x20f, 0x6e, 0x41, 0x20f, 0x3bc, 0x41, 0x20f, + 0x6d, 0x41, 0x20f, 0x6b, 0x41, 0x20f, 0x4b, 0x42, + 0x20f, 0x4d, 0x42, 0x20f, 0x47, 0x42, 0x30f, 0x63, + 0x61, 0x6c, 0x40f, 0x6b, 0x63, 0x61, 0x6c, 0x20f, + 0x70, 0x46, 0x20f, 0x6e, 0x46, 0x20f, 0x3bc, 0x46, + 0x20f, 0x3bc, 0x67, 0x20f, 0x6d, 0x67, 0x20f, 0x6b, + 0x67, 0x20f, 0x48, 0x7a, 0x30f, 0x6b, 0x48, 0x7a, + 0x30f, 0x4d, 0x48, 0x7a, 0x30f, 0x47, 0x48, 0x7a, + 0x30f, 0x54, 0x48, 0x7a, 0x20f, 0x3bc, 0x2113, 0x20f, + 0x6d, 0x2113, 0x20f, 0x64, 0x2113, 0x20f, 0x6b, 0x2113, + 0x20f, 0x66, 0x6d, 0x20f, 0x6e, 0x6d, 0x20f, 0x3bc, + 0x6d, 0x20f, 0x6d, 0x6d, 0x20f, 0x63, 0x6d, 0x20f, + 0x6b, 0x6d, 0x30f, 0x6d, 0x6d, 0xb2, 0x30f, 0x63, + 0x6d, 0xb2, 0x20f, 0x6d, 0xb2, 0x30f, 0x6b, 0x6d, + 0xb2, 0x30f, 0x6d, 0x6d, 0xb3, 0x30f, 0x63, 0x6d, + 0xb3, 0x20f, 0x6d, 0xb3, 0x30f, 0x6b, 0x6d, 0xb3, + 0x30f, 0x6d, 0x2215, 0x73, 0x40f, 0x6d, 0x2215, 0x73, + 0xb2, 0x20f, 0x50, 0x61, 0x30f, 0x6b, 0x50, 0x61, + 0x30f, 0x4d, 0x50, 0x61, 0x30f, 0x47, 0x50, 0x61, + 0x30f, 0x72, 0x61, 0x64, 0x50f, 0x72, 0x61, 0x64, + 0x2215, 0x73, 0x60f, 0x72, 0x61, 0x64, 0x2215, 0x73, + 0xb2, 0x20f, 0x70, 0x73, 0x20f, 0x6e, 0x73, 0x20f, + 0x3bc, 0x73, 0x20f, 0x6d, 0x73, 0x20f, 0x70, 0x56, + 0x20f, 0x6e, 0x56, 0x20f, 0x3bc, 0x56, 0x20f, 0x6d, + 0x56, 0x20f, 0x6b, 0x56, 0x20f, 0x4d, 0x56, 0x20f, + 0x70, 0x57, 0x20f, 0x6e, 0x57, 0x20f, 0x3bc, 0x57, + 0x20f, 0x6d, 0x57, 0x20f, 0x6b, 0x57, 0x20f, 0x4d, + 0x57, 0x20f, 0x6b, 0x3a9, 0x20f, 0x4d, 0x3a9, 0x40f, + 0x61, 0x2e, 0x6d, 0x2e, 0x20f, 0x42, 0x71, 0x20f, + 0x63, 0x63, 0x20f, 0x63, 0x64, 0x40f, 0x43, 0x2215, + 0x6b, 0x67, 0x30f, 0x43, 0x6f, 0x2e, 0x20f, 0x64, + 0x42, 0x20f, 0x47, 0x79, 0x20f, 0x68, 0x61, 0x20f, + 0x48, 0x50, 0x20f, 0x69, 0x6e, 0x20f, 0x4b, 0x4b, + 0x20f, 0x4b, 0x4d, 0x20f, 0x6b, 0x74, 0x20f, 0x6c, + 0x6d, 0x20f, 0x6c, 0x6e, 0x30f, 0x6c, 0x6f, 0x67, + 0x20f, 0x6c, 0x78, 0x20f, 0x6d, 0x62, 0x30f, 0x6d, + 0x69, 0x6c, 0x30f, 0x6d, 0x6f, 0x6c, 0x20f, 0x50, + 0x48, 0x40f, 0x70, 0x2e, 0x6d, 0x2e, 0x30f, 0x50, + 0x50, 0x4d, 0x20f, 0x50, 0x52, 0x20f, 0x73, 0x72, + 0x20f, 0x53, 0x76, 0x20f, 0x57, 0x62, 0x30f, 0x56, + 0x2215, 0x6d, 0x30f, 0x41, 0x2215, 0x6d, 0x210, 0x31, + 0x65e5, 0x210, 0x32, 0x65e5, 0x210, 0x33, 0x65e5, 0x210, + 0x34, 0x65e5, 0x210, 0x35, 0x65e5, 0x210, 0x36, 0x65e5, + 0x210, 0x37, 0x65e5, 0x210, 0x38, 0x65e5, 0x210, 0x39, + 0x65e5, 0x310, 0x31, 0x30, 0x65e5, 0x310, 0x31, 0x31, + 0x65e5, 0x310, 0x31, 0x32, 0x65e5, 0x310, 0x31, 0x33, + 0x65e5, 0x310, 0x31, 0x34, 0x65e5, 0x310, 0x31, 0x35, + 0x65e5, 0x310, 0x31, 0x36, 0x65e5, 0x310, 0x31, 0x37, + 0x65e5, 0x310, 0x31, 0x38, 0x65e5, 0x310, 0x31, 0x39, + 0x65e5, 0x310, 0x32, 0x30, 0x65e5, 0x310, 0x32, 0x31, + 0x65e5, 0x310, 0x32, 0x32, 0x65e5, 0x310, 0x32, 0x33, + 0x65e5, 0x310, 0x32, 0x34, 0x65e5, 0x310, 0x32, 0x35, + 0x65e5, 0x310, 0x32, 0x36, 0x65e5, 0x310, 0x32, 0x37, + 0x65e5, 0x310, 0x32, 0x38, 0x65e5, 0x310, 0x32, 0x39, + 0x65e5, 0x310, 0x33, 0x30, 0x65e5, 0x310, 0x33, 0x31, + 0x65e5, 0x30f, 0x67, 0x61, 0x6c, 0x109, 0xa76f, 0x109, + 0x126, 0x109, 0x153, 0x101, 0x8c48, 0x101, 0x66f4, 0x101, + 0x8eca, 0x101, 0x8cc8, 0x101, 0x6ed1, 0x101, 0x4e32, 0x101, + 0x53e5, 0x101, 0x9f9c, 0x101, 0x9f9c, 0x101, 0x5951, 0x101, + 0x91d1, 0x101, 0x5587, 0x101, 0x5948, 0x101, 0x61f6, 0x101, + 0x7669, 0x101, 0x7f85, 0x101, 0x863f, 0x101, 0x87ba, 0x101, + 0x88f8, 0x101, 0x908f, 0x101, 0x6a02, 0x101, 0x6d1b, 0x101, + 0x70d9, 0x101, 0x73de, 0x101, 0x843d, 0x101, 0x916a, 0x101, + 0x99f1, 0x101, 0x4e82, 0x101, 0x5375, 0x101, 0x6b04, 0x101, + 0x721b, 0x101, 0x862d, 0x101, 0x9e1e, 0x101, 0x5d50, 0x101, + 0x6feb, 0x101, 0x85cd, 0x101, 0x8964, 0x101, 0x62c9, 0x101, + 0x81d8, 0x101, 0x881f, 0x101, 0x5eca, 0x101, 0x6717, 0x101, + 0x6d6a, 0x101, 0x72fc, 0x101, 0x90ce, 0x101, 0x4f86, 0x101, + 0x51b7, 0x101, 0x52de, 0x101, 0x64c4, 0x101, 0x6ad3, 0x101, + 0x7210, 0x101, 0x76e7, 0x101, 0x8001, 0x101, 0x8606, 0x101, + 0x865c, 0x101, 0x8def, 0x101, 0x9732, 0x101, 0x9b6f, 0x101, + 0x9dfa, 0x101, 0x788c, 0x101, 0x797f, 0x101, 0x7da0, 0x101, + 0x83c9, 0x101, 0x9304, 0x101, 0x9e7f, 0x101, 0x8ad6, 0x101, + 0x58df, 0x101, 0x5f04, 0x101, 0x7c60, 0x101, 0x807e, 0x101, + 0x7262, 0x101, 0x78ca, 0x101, 0x8cc2, 0x101, 0x96f7, 0x101, + 0x58d8, 0x101, 0x5c62, 0x101, 0x6a13, 0x101, 0x6dda, 0x101, + 0x6f0f, 0x101, 0x7d2f, 0x101, 0x7e37, 0x101, 0x964b, 0x101, + 0x52d2, 0x101, 0x808b, 0x101, 0x51dc, 0x101, 0x51cc, 0x101, + 0x7a1c, 0x101, 0x7dbe, 0x101, 0x83f1, 0x101, 0x9675, 0x101, + 0x8b80, 0x101, 0x62cf, 0x101, 0x6a02, 0x101, 0x8afe, 0x101, + 0x4e39, 0x101, 0x5be7, 0x101, 0x6012, 0x101, 0x7387, 0x101, + 0x7570, 0x101, 0x5317, 0x101, 0x78fb, 0x101, 0x4fbf, 0x101, + 0x5fa9, 0x101, 0x4e0d, 0x101, 0x6ccc, 0x101, 0x6578, 0x101, + 0x7d22, 0x101, 0x53c3, 0x101, 0x585e, 0x101, 0x7701, 0x101, + 0x8449, 0x101, 0x8aaa, 0x101, 0x6bba, 0x101, 0x8fb0, 0x101, + 0x6c88, 0x101, 0x62fe, 0x101, 0x82e5, 0x101, 0x63a0, 0x101, + 0x7565, 0x101, 0x4eae, 0x101, 0x5169, 0x101, 0x51c9, 0x101, + 0x6881, 0x101, 0x7ce7, 0x101, 0x826f, 0x101, 0x8ad2, 0x101, + 0x91cf, 0x101, 0x52f5, 0x101, 0x5442, 0x101, 0x5973, 0x101, + 0x5eec, 0x101, 0x65c5, 0x101, 0x6ffe, 0x101, 0x792a, 0x101, + 0x95ad, 0x101, 0x9a6a, 0x101, 0x9e97, 0x101, 0x9ece, 0x101, + 0x529b, 0x101, 0x66c6, 0x101, 0x6b77, 0x101, 0x8f62, 0x101, + 0x5e74, 0x101, 0x6190, 0x101, 0x6200, 0x101, 0x649a, 0x101, + 0x6f23, 0x101, 0x7149, 0x101, 0x7489, 0x101, 0x79ca, 0x101, + 0x7df4, 0x101, 0x806f, 0x101, 0x8f26, 0x101, 0x84ee, 0x101, + 0x9023, 0x101, 0x934a, 0x101, 0x5217, 0x101, 0x52a3, 0x101, + 0x54bd, 0x101, 0x70c8, 0x101, 0x88c2, 0x101, 0x8aaa, 0x101, + 0x5ec9, 0x101, 0x5ff5, 0x101, 0x637b, 0x101, 0x6bae, 0x101, + 0x7c3e, 0x101, 0x7375, 0x101, 0x4ee4, 0x101, 0x56f9, 0x101, + 0x5be7, 0x101, 0x5dba, 0x101, 0x601c, 0x101, 0x73b2, 0x101, + 0x7469, 0x101, 0x7f9a, 0x101, 0x8046, 0x101, 0x9234, 0x101, + 0x96f6, 0x101, 0x9748, 0x101, 0x9818, 0x101, 0x4f8b, 0x101, + 0x79ae, 0x101, 0x91b4, 0x101, 0x96b8, 0x101, 0x60e1, 0x101, + 0x4e86, 0x101, 0x50da, 0x101, 0x5bee, 0x101, 0x5c3f, 0x101, + 0x6599, 0x101, 0x6a02, 0x101, 0x71ce, 0x101, 0x7642, 0x101, + 0x84fc, 0x101, 0x907c, 0x101, 0x9f8d, 0x101, 0x6688, 0x101, + 0x962e, 0x101, 0x5289, 0x101, 0x677b, 0x101, 0x67f3, 0x101, + 0x6d41, 0x101, 0x6e9c, 0x101, 0x7409, 0x101, 0x7559, 0x101, + 0x786b, 0x101, 0x7d10, 0x101, 0x985e, 0x101, 0x516d, 0x101, + 0x622e, 0x101, 0x9678, 0x101, 0x502b, 0x101, 0x5d19, 0x101, + 0x6dea, 0x101, 0x8f2a, 0x101, 0x5f8b, 0x101, 0x6144, 0x101, + 0x6817, 0x101, 0x7387, 0x101, 0x9686, 0x101, 0x5229, 0x101, + 0x540f, 0x101, 0x5c65, 0x101, 0x6613, 0x101, 0x674e, 0x101, + 0x68a8, 0x101, 0x6ce5, 0x101, 0x7406, 0x101, 0x75e2, 0x101, + 0x7f79, 0x101, 0x88cf, 0x101, 0x88e1, 0x101, 0x91cc, 0x101, + 0x96e2, 0x101, 0x533f, 0x101, 0x6eba, 0x101, 0x541d, 0x101, + 0x71d0, 0x101, 0x7498, 0x101, 0x85fa, 0x101, 0x96a3, 0x101, + 0x9c57, 0x101, 0x9e9f, 0x101, 0x6797, 0x101, 0x6dcb, 0x101, + 0x81e8, 0x101, 0x7acb, 0x101, 0x7b20, 0x101, 0x7c92, 0x101, + 0x72c0, 0x101, 0x7099, 0x101, 0x8b58, 0x101, 0x4ec0, 0x101, + 0x8336, 0x101, 0x523a, 0x101, 0x5207, 0x101, 0x5ea6, 0x101, + 0x62d3, 0x101, 0x7cd6, 0x101, 0x5b85, 0x101, 0x6d1e, 0x101, + 0x66b4, 0x101, 0x8f3b, 0x101, 0x884c, 0x101, 0x964d, 0x101, + 0x898b, 0x101, 0x5ed3, 0x101, 0x5140, 0x101, 0x55c0, 0x101, + 0x585a, 0x101, 0x6674, 0x101, 0x51de, 0x101, 0x732a, 0x101, + 0x76ca, 0x101, 0x793c, 0x101, 0x795e, 0x101, 0x7965, 0x101, + 0x798f, 0x101, 0x9756, 0x101, 0x7cbe, 0x101, 0x7fbd, 0x101, + 0x8612, 0x101, 0x8af8, 0x101, 0x9038, 0x101, 0x90fd, 0x101, + 0x98ef, 0x101, 0x98fc, 0x101, 0x9928, 0x101, 0x9db4, 0x101, + 0x90de, 0x101, 0x96b7, 0x101, 0x4fae, 0x101, 0x50e7, 0x101, + 0x514d, 0x101, 0x52c9, 0x101, 0x52e4, 0x101, 0x5351, 0x101, + 0x559d, 0x101, 0x5606, 0x101, 0x5668, 0x101, 0x5840, 0x101, + 0x58a8, 0x101, 0x5c64, 0x101, 0x5c6e, 0x101, 0x6094, 0x101, + 0x6168, 0x101, 0x618e, 0x101, 0x61f2, 0x101, 0x654f, 0x101, + 0x65e2, 0x101, 0x6691, 0x101, 0x6885, 0x101, 0x6d77, 0x101, + 0x6e1a, 0x101, 0x6f22, 0x101, 0x716e, 0x101, 0x722b, 0x101, + 0x7422, 0x101, 0x7891, 0x101, 0x793e, 0x101, 0x7949, 0x101, + 0x7948, 0x101, 0x7950, 0x101, 0x7956, 0x101, 0x795d, 0x101, + 0x798d, 0x101, 0x798e, 0x101, 0x7a40, 0x101, 0x7a81, 0x101, + 0x7bc0, 0x101, 0x7df4, 0x101, 0x7e09, 0x101, 0x7e41, 0x101, + 0x7f72, 0x101, 0x8005, 0x101, 0x81ed, 0x101, 0x8279, 0x101, + 0x8279, 0x101, 0x8457, 0x101, 0x8910, 0x101, 0x8996, 0x101, + 0x8b01, 0x101, 0x8b39, 0x101, 0x8cd3, 0x101, 0x8d08, 0x101, + 0x8fb6, 0x101, 0x9038, 0x101, 0x96e3, 0x101, 0x97ff, 0x101, + 0x983b, 0x101, 0x6075, 0x201, 0xd850, 0xdeee, 0x101, 0x8218, + 0x101, 0x4e26, 0x101, 0x51b5, 0x101, 0x5168, 0x101, 0x4f80, + 0x101, 0x5145, 0x101, 0x5180, 0x101, 0x52c7, 0x101, 0x52fa, + 0x101, 0x559d, 0x101, 0x5555, 0x101, 0x5599, 0x101, 0x55e2, + 0x101, 0x585a, 0x101, 0x58b3, 0x101, 0x5944, 0x101, 0x5954, + 0x101, 0x5a62, 0x101, 0x5b28, 0x101, 0x5ed2, 0x101, 0x5ed9, + 0x101, 0x5f69, 0x101, 0x5fad, 0x101, 0x60d8, 0x101, 0x614e, + 0x101, 0x6108, 0x101, 0x618e, 0x101, 0x6160, 0x101, 0x61f2, + 0x101, 0x6234, 0x101, 0x63c4, 0x101, 0x641c, 0x101, 0x6452, + 0x101, 0x6556, 0x101, 0x6674, 0x101, 0x6717, 0x101, 0x671b, + 0x101, 0x6756, 0x101, 0x6b79, 0x101, 0x6bba, 0x101, 0x6d41, + 0x101, 0x6edb, 0x101, 0x6ecb, 0x101, 0x6f22, 0x101, 0x701e, + 0x101, 0x716e, 0x101, 0x77a7, 0x101, 0x7235, 0x101, 0x72af, + 0x101, 0x732a, 0x101, 0x7471, 0x101, 0x7506, 0x101, 0x753b, + 0x101, 0x761d, 0x101, 0x761f, 0x101, 0x76ca, 0x101, 0x76db, + 0x101, 0x76f4, 0x101, 0x774a, 0x101, 0x7740, 0x101, 0x78cc, + 0x101, 0x7ab1, 0x101, 0x7bc0, 0x101, 0x7c7b, 0x101, 0x7d5b, + 0x101, 0x7df4, 0x101, 0x7f3e, 0x101, 0x8005, 0x101, 0x8352, + 0x101, 0x83ef, 0x101, 0x8779, 0x101, 0x8941, 0x101, 0x8986, + 0x101, 0x8996, 0x101, 0x8abf, 0x101, 0x8af8, 0x101, 0x8acb, + 0x101, 0x8b01, 0x101, 0x8afe, 0x101, 0x8aed, 0x101, 0x8b39, + 0x101, 0x8b8a, 0x101, 0x8d08, 0x101, 0x8f38, 0x101, 0x9072, + 0x101, 0x9199, 0x101, 0x9276, 0x101, 0x967c, 0x101, 0x96e3, + 0x101, 0x9756, 0x101, 0x97db, 0x101, 0x97ff, 0x101, 0x980b, + 0x101, 0x983b, 0x101, 0x9b12, 0x101, 0x9f9c, 0x201, 0xd84a, + 0xdc4a, 0x201, 0xd84a, 0xdc44, 0x201, 0xd84c, 0xdfd5, 0x101, + 0x3b9d, 0x101, 0x4018, 0x101, 0x4039, 0x201, 0xd854, 0xde49, + 0x201, 0xd857, 0xdcd0, 0x201, 0xd85f, 0xded3, 0x101, 0x9f43, + 0x101, 0x9f8e, 0x210, 0x66, 0x66, 0x210, 0x66, 0x69, + 0x210, 0x66, 0x6c, 0x310, 0x66, 0x66, 0x69, 0x310, + 0x66, 0x66, 0x6c, 0x210, 0x17f, 0x74, 0x210, 0x73, + 0x74, 0x210, 0x574, 0x576, 0x210, 0x574, 0x565, 0x210, + 0x574, 0x56b, 0x210, 0x57e, 0x576, 0x210, 0x574, 0x56d, + 0x201, 0x5d9, 0x5b4, 0x201, 0x5f2, 0x5b7, 0x102, 0x5e2, + 0x102, 0x5d0, 0x102, 0x5d3, 0x102, 0x5d4, 0x102, 0x5db, + 0x102, 0x5dc, 0x102, 0x5dd, 0x102, 0x5e8, 0x102, 0x5ea, + 0x102, 0x2b, 0x201, 0x5e9, 0x5c1, 0x201, 0x5e9, 0x5c2, + 0x201, 0xfb49, 0x5c1, 0x201, 0xfb49, 0x5c2, 0x201, 0x5d0, + 0x5b7, 0x201, 0x5d0, 0x5b8, 0x201, 0x5d0, 0x5bc, 0x201, + 0x5d1, 0x5bc, 0x201, 0x5d2, 0x5bc, 0x201, 0x5d3, 0x5bc, + 0x201, 0x5d4, 0x5bc, 0x201, 0x5d5, 0x5bc, 0x201, 0x5d6, + 0x5bc, 0x201, 0x5d8, 0x5bc, 0x201, 0x5d9, 0x5bc, 0x201, + 0x5da, 0x5bc, 0x201, 0x5db, 0x5bc, 0x201, 0x5dc, 0x5bc, + 0x201, 0x5de, 0x5bc, 0x201, 0x5e0, 0x5bc, 0x201, 0x5e1, + 0x5bc, 0x201, 0x5e3, 0x5bc, 0x201, 0x5e4, 0x5bc, 0x201, + 0x5e6, 0x5bc, 0x201, 0x5e7, 0x5bc, 0x201, 0x5e8, 0x5bc, + 0x201, 0x5e9, 0x5bc, 0x201, 0x5ea, 0x5bc, 0x201, 0x5d5, + 0x5b9, 0x201, 0x5d1, 0x5bf, 0x201, 0x5db, 0x5bf, 0x201, + 0x5e4, 0x5bf, 0x210, 0x5d0, 0x5dc, 0x107, 0x671, 0x106, + 0x671, 0x107, 0x67b, 0x106, 0x67b, 0x104, 0x67b, 0x105, + 0x67b, 0x107, 0x67e, 0x106, 0x67e, 0x104, 0x67e, 0x105, + 0x67e, 0x107, 0x680, 0x106, 0x680, 0x104, 0x680, 0x105, + 0x680, 0x107, 0x67a, 0x106, 0x67a, 0x104, 0x67a, 0x105, + 0x67a, 0x107, 0x67f, 0x106, 0x67f, 0x104, 0x67f, 0x105, + 0x67f, 0x107, 0x679, 0x106, 0x679, 0x104, 0x679, 0x105, + 0x679, 0x107, 0x6a4, 0x106, 0x6a4, 0x104, 0x6a4, 0x105, + 0x6a4, 0x107, 0x6a6, 0x106, 0x6a6, 0x104, 0x6a6, 0x105, + 0x6a6, 0x107, 0x684, 0x106, 0x684, 0x104, 0x684, 0x105, + 0x684, 0x107, 0x683, 0x106, 0x683, 0x104, 0x683, 0x105, + 0x683, 0x107, 0x686, 0x106, 0x686, 0x104, 0x686, 0x105, + 0x686, 0x107, 0x687, 0x106, 0x687, 0x104, 0x687, 0x105, + 0x687, 0x107, 0x68d, 0x106, 0x68d, 0x107, 0x68c, 0x106, + 0x68c, 0x107, 0x68e, 0x106, 0x68e, 0x107, 0x688, 0x106, + 0x688, 0x107, 0x698, 0x106, 0x698, 0x107, 0x691, 0x106, + 0x691, 0x107, 0x6a9, 0x106, 0x6a9, 0x104, 0x6a9, 0x105, + 0x6a9, 0x107, 0x6af, 0x106, 0x6af, 0x104, 0x6af, 0x105, + 0x6af, 0x107, 0x6b3, 0x106, 0x6b3, 0x104, 0x6b3, 0x105, + 0x6b3, 0x107, 0x6b1, 0x106, 0x6b1, 0x104, 0x6b1, 0x105, + 0x6b1, 0x107, 0x6ba, 0x106, 0x6ba, 0x107, 0x6bb, 0x106, + 0x6bb, 0x104, 0x6bb, 0x105, 0x6bb, 0x107, 0x6c0, 0x106, + 0x6c0, 0x107, 0x6c1, 0x106, 0x6c1, 0x104, 0x6c1, 0x105, + 0x6c1, 0x107, 0x6be, 0x106, 0x6be, 0x104, 0x6be, 0x105, + 0x6be, 0x107, 0x6d2, 0x106, 0x6d2, 0x107, 0x6d3, 0x106, + 0x6d3, 0x107, 0x6ad, 0x106, 0x6ad, 0x104, 0x6ad, 0x105, + 0x6ad, 0x107, 0x6c7, 0x106, 0x6c7, 0x107, 0x6c6, 0x106, + 0x6c6, 0x107, 0x6c8, 0x106, 0x6c8, 0x107, 0x677, 0x107, + 0x6cb, 0x106, 0x6cb, 0x107, 0x6c5, 0x106, 0x6c5, 0x107, + 0x6c9, 0x106, 0x6c9, 0x107, 0x6d0, 0x106, 0x6d0, 0x104, + 0x6d0, 0x105, 0x6d0, 0x104, 0x649, 0x105, 0x649, 0x207, + 0x626, 0x627, 0x206, 0x626, 0x627, 0x207, 0x626, 0x6d5, + 0x206, 0x626, 0x6d5, 0x207, 0x626, 0x648, 0x206, 0x626, + 0x648, 0x207, 0x626, 0x6c7, 0x206, 0x626, 0x6c7, 0x207, + 0x626, 0x6c6, 0x206, 0x626, 0x6c6, 0x207, 0x626, 0x6c8, + 0x206, 0x626, 0x6c8, 0x207, 0x626, 0x6d0, 0x206, 0x626, + 0x6d0, 0x204, 0x626, 0x6d0, 0x207, 0x626, 0x649, 0x206, + 0x626, 0x649, 0x204, 0x626, 0x649, 0x107, 0x6cc, 0x106, + 0x6cc, 0x104, 0x6cc, 0x105, 0x6cc, 0x207, 0x626, 0x62c, + 0x207, 0x626, 0x62d, 0x207, 0x626, 0x645, 0x207, 0x626, + 0x649, 0x207, 0x626, 0x64a, 0x207, 0x628, 0x62c, 0x207, + 0x628, 0x62d, 0x207, 0x628, 0x62e, 0x207, 0x628, 0x645, + 0x207, 0x628, 0x649, 0x207, 0x628, 0x64a, 0x207, 0x62a, + 0x62c, 0x207, 0x62a, 0x62d, 0x207, 0x62a, 0x62e, 0x207, + 0x62a, 0x645, 0x207, 0x62a, 0x649, 0x207, 0x62a, 0x64a, + 0x207, 0x62b, 0x62c, 0x207, 0x62b, 0x645, 0x207, 0x62b, + 0x649, 0x207, 0x62b, 0x64a, 0x207, 0x62c, 0x62d, 0x207, + 0x62c, 0x645, 0x207, 0x62d, 0x62c, 0x207, 0x62d, 0x645, + 0x207, 0x62e, 0x62c, 0x207, 0x62e, 0x62d, 0x207, 0x62e, + 0x645, 0x207, 0x633, 0x62c, 0x207, 0x633, 0x62d, 0x207, + 0x633, 0x62e, 0x207, 0x633, 0x645, 0x207, 0x635, 0x62d, + 0x207, 0x635, 0x645, 0x207, 0x636, 0x62c, 0x207, 0x636, + 0x62d, 0x207, 0x636, 0x62e, 0x207, 0x636, 0x645, 0x207, + 0x637, 0x62d, 0x207, 0x637, 0x645, 0x207, 0x638, 0x645, + 0x207, 0x639, 0x62c, 0x207, 0x639, 0x645, 0x207, 0x63a, + 0x62c, 0x207, 0x63a, 0x645, 0x207, 0x641, 0x62c, 0x207, + 0x641, 0x62d, 0x207, 0x641, 0x62e, 0x207, 0x641, 0x645, + 0x207, 0x641, 0x649, 0x207, 0x641, 0x64a, 0x207, 0x642, + 0x62d, 0x207, 0x642, 0x645, 0x207, 0x642, 0x649, 0x207, + 0x642, 0x64a, 0x207, 0x643, 0x627, 0x207, 0x643, 0x62c, + 0x207, 0x643, 0x62d, 0x207, 0x643, 0x62e, 0x207, 0x643, + 0x644, 0x207, 0x643, 0x645, 0x207, 0x643, 0x649, 0x207, + 0x643, 0x64a, 0x207, 0x644, 0x62c, 0x207, 0x644, 0x62d, + 0x207, 0x644, 0x62e, 0x207, 0x644, 0x645, 0x207, 0x644, + 0x649, 0x207, 0x644, 0x64a, 0x207, 0x645, 0x62c, 0x207, + 0x645, 0x62d, 0x207, 0x645, 0x62e, 0x207, 0x645, 0x645, + 0x207, 0x645, 0x649, 0x207, 0x645, 0x64a, 0x207, 0x646, + 0x62c, 0x207, 0x646, 0x62d, 0x207, 0x646, 0x62e, 0x207, + 0x646, 0x645, 0x207, 0x646, 0x649, 0x207, 0x646, 0x64a, + 0x207, 0x647, 0x62c, 0x207, 0x647, 0x645, 0x207, 0x647, + 0x649, 0x207, 0x647, 0x64a, 0x207, 0x64a, 0x62c, 0x207, + 0x64a, 0x62d, 0x207, 0x64a, 0x62e, 0x207, 0x64a, 0x645, + 0x207, 0x64a, 0x649, 0x207, 0x64a, 0x64a, 0x207, 0x630, + 0x670, 0x207, 0x631, 0x670, 0x207, 0x649, 0x670, 0x307, + 0x20, 0x64c, 0x651, 0x307, 0x20, 0x64d, 0x651, 0x307, + 0x20, 0x64e, 0x651, 0x307, 0x20, 0x64f, 0x651, 0x307, + 0x20, 0x650, 0x651, 0x307, 0x20, 0x651, 0x670, 0x206, + 0x626, 0x631, 0x206, 0x626, 0x632, 0x206, 0x626, 0x645, + 0x206, 0x626, 0x646, 0x206, 0x626, 0x649, 0x206, 0x626, + 0x64a, 0x206, 0x628, 0x631, 0x206, 0x628, 0x632, 0x206, + 0x628, 0x645, 0x206, 0x628, 0x646, 0x206, 0x628, 0x649, + 0x206, 0x628, 0x64a, 0x206, 0x62a, 0x631, 0x206, 0x62a, + 0x632, 0x206, 0x62a, 0x645, 0x206, 0x62a, 0x646, 0x206, + 0x62a, 0x649, 0x206, 0x62a, 0x64a, 0x206, 0x62b, 0x631, + 0x206, 0x62b, 0x632, 0x206, 0x62b, 0x645, 0x206, 0x62b, + 0x646, 0x206, 0x62b, 0x649, 0x206, 0x62b, 0x64a, 0x206, + 0x641, 0x649, 0x206, 0x641, 0x64a, 0x206, 0x642, 0x649, + 0x206, 0x642, 0x64a, 0x206, 0x643, 0x627, 0x206, 0x643, + 0x644, 0x206, 0x643, 0x645, 0x206, 0x643, 0x649, 0x206, + 0x643, 0x64a, 0x206, 0x644, 0x645, 0x206, 0x644, 0x649, + 0x206, 0x644, 0x64a, 0x206, 0x645, 0x627, 0x206, 0x645, + 0x645, 0x206, 0x646, 0x631, 0x206, 0x646, 0x632, 0x206, + 0x646, 0x645, 0x206, 0x646, 0x646, 0x206, 0x646, 0x649, + 0x206, 0x646, 0x64a, 0x206, 0x649, 0x670, 0x206, 0x64a, + 0x631, 0x206, 0x64a, 0x632, 0x206, 0x64a, 0x645, 0x206, + 0x64a, 0x646, 0x206, 0x64a, 0x649, 0x206, 0x64a, 0x64a, + 0x204, 0x626, 0x62c, 0x204, 0x626, 0x62d, 0x204, 0x626, + 0x62e, 0x204, 0x626, 0x645, 0x204, 0x626, 0x647, 0x204, + 0x628, 0x62c, 0x204, 0x628, 0x62d, 0x204, 0x628, 0x62e, + 0x204, 0x628, 0x645, 0x204, 0x628, 0x647, 0x204, 0x62a, + 0x62c, 0x204, 0x62a, 0x62d, 0x204, 0x62a, 0x62e, 0x204, + 0x62a, 0x645, 0x204, 0x62a, 0x647, 0x204, 0x62b, 0x645, + 0x204, 0x62c, 0x62d, 0x204, 0x62c, 0x645, 0x204, 0x62d, + 0x62c, 0x204, 0x62d, 0x645, 0x204, 0x62e, 0x62c, 0x204, + 0x62e, 0x645, 0x204, 0x633, 0x62c, 0x204, 0x633, 0x62d, + 0x204, 0x633, 0x62e, 0x204, 0x633, 0x645, 0x204, 0x635, + 0x62d, 0x204, 0x635, 0x62e, 0x204, 0x635, 0x645, 0x204, + 0x636, 0x62c, 0x204, 0x636, 0x62d, 0x204, 0x636, 0x62e, + 0x204, 0x636, 0x645, 0x204, 0x637, 0x62d, 0x204, 0x638, + 0x645, 0x204, 0x639, 0x62c, 0x204, 0x639, 0x645, 0x204, + 0x63a, 0x62c, 0x204, 0x63a, 0x645, 0x204, 0x641, 0x62c, + 0x204, 0x641, 0x62d, 0x204, 0x641, 0x62e, 0x204, 0x641, + 0x645, 0x204, 0x642, 0x62d, 0x204, 0x642, 0x645, 0x204, + 0x643, 0x62c, 0x204, 0x643, 0x62d, 0x204, 0x643, 0x62e, + 0x204, 0x643, 0x644, 0x204, 0x643, 0x645, 0x204, 0x644, + 0x62c, 0x204, 0x644, 0x62d, 0x204, 0x644, 0x62e, 0x204, + 0x644, 0x645, 0x204, 0x644, 0x647, 0x204, 0x645, 0x62c, + 0x204, 0x645, 0x62d, 0x204, 0x645, 0x62e, 0x204, 0x645, + 0x645, 0x204, 0x646, 0x62c, 0x204, 0x646, 0x62d, 0x204, + 0x646, 0x62e, 0x204, 0x646, 0x645, 0x204, 0x646, 0x647, + 0x204, 0x647, 0x62c, 0x204, 0x647, 0x645, 0x204, 0x647, + 0x670, 0x204, 0x64a, 0x62c, 0x204, 0x64a, 0x62d, 0x204, + 0x64a, 0x62e, 0x204, 0x64a, 0x645, 0x204, 0x64a, 0x647, + 0x205, 0x626, 0x645, 0x205, 0x626, 0x647, 0x205, 0x628, + 0x645, 0x205, 0x628, 0x647, 0x205, 0x62a, 0x645, 0x205, + 0x62a, 0x647, 0x205, 0x62b, 0x645, 0x205, 0x62b, 0x647, + 0x205, 0x633, 0x645, 0x205, 0x633, 0x647, 0x205, 0x634, + 0x645, 0x205, 0x634, 0x647, 0x205, 0x643, 0x644, 0x205, + 0x643, 0x645, 0x205, 0x644, 0x645, 0x205, 0x646, 0x645, + 0x205, 0x646, 0x647, 0x205, 0x64a, 0x645, 0x205, 0x64a, + 0x647, 0x305, 0x640, 0x64e, 0x651, 0x305, 0x640, 0x64f, + 0x651, 0x305, 0x640, 0x650, 0x651, 0x207, 0x637, 0x649, + 0x207, 0x637, 0x64a, 0x207, 0x639, 0x649, 0x207, 0x639, + 0x64a, 0x207, 0x63a, 0x649, 0x207, 0x63a, 0x64a, 0x207, + 0x633, 0x649, 0x207, 0x633, 0x64a, 0x207, 0x634, 0x649, + 0x207, 0x634, 0x64a, 0x207, 0x62d, 0x649, 0x207, 0x62d, + 0x64a, 0x207, 0x62c, 0x649, 0x207, 0x62c, 0x64a, 0x207, + 0x62e, 0x649, 0x207, 0x62e, 0x64a, 0x207, 0x635, 0x649, + 0x207, 0x635, 0x64a, 0x207, 0x636, 0x649, 0x207, 0x636, + 0x64a, 0x207, 0x634, 0x62c, 0x207, 0x634, 0x62d, 0x207, + 0x634, 0x62e, 0x207, 0x634, 0x645, 0x207, 0x634, 0x631, + 0x207, 0x633, 0x631, 0x207, 0x635, 0x631, 0x207, 0x636, + 0x631, 0x206, 0x637, 0x649, 0x206, 0x637, 0x64a, 0x206, + 0x639, 0x649, 0x206, 0x639, 0x64a, 0x206, 0x63a, 0x649, + 0x206, 0x63a, 0x64a, 0x206, 0x633, 0x649, 0x206, 0x633, + 0x64a, 0x206, 0x634, 0x649, 0x206, 0x634, 0x64a, 0x206, + 0x62d, 0x649, 0x206, 0x62d, 0x64a, 0x206, 0x62c, 0x649, + 0x206, 0x62c, 0x64a, 0x206, 0x62e, 0x649, 0x206, 0x62e, + 0x64a, 0x206, 0x635, 0x649, 0x206, 0x635, 0x64a, 0x206, + 0x636, 0x649, 0x206, 0x636, 0x64a, 0x206, 0x634, 0x62c, + 0x206, 0x634, 0x62d, 0x206, 0x634, 0x62e, 0x206, 0x634, + 0x645, 0x206, 0x634, 0x631, 0x206, 0x633, 0x631, 0x206, + 0x635, 0x631, 0x206, 0x636, 0x631, 0x204, 0x634, 0x62c, + 0x204, 0x634, 0x62d, 0x204, 0x634, 0x62e, 0x204, 0x634, + 0x645, 0x204, 0x633, 0x647, 0x204, 0x634, 0x647, 0x204, + 0x637, 0x645, 0x205, 0x633, 0x62c, 0x205, 0x633, 0x62d, + 0x205, 0x633, 0x62e, 0x205, 0x634, 0x62c, 0x205, 0x634, + 0x62d, 0x205, 0x634, 0x62e, 0x205, 0x637, 0x645, 0x205, + 0x638, 0x645, 0x206, 0x627, 0x64b, 0x207, 0x627, 0x64b, + 0x304, 0x62a, 0x62c, 0x645, 0x306, 0x62a, 0x62d, 0x62c, + 0x304, 0x62a, 0x62d, 0x62c, 0x304, 0x62a, 0x62d, 0x645, + 0x304, 0x62a, 0x62e, 0x645, 0x304, 0x62a, 0x645, 0x62c, + 0x304, 0x62a, 0x645, 0x62d, 0x304, 0x62a, 0x645, 0x62e, + 0x306, 0x62c, 0x645, 0x62d, 0x304, 0x62c, 0x645, 0x62d, + 0x306, 0x62d, 0x645, 0x64a, 0x306, 0x62d, 0x645, 0x649, + 0x304, 0x633, 0x62d, 0x62c, 0x304, 0x633, 0x62c, 0x62d, + 0x306, 0x633, 0x62c, 0x649, 0x306, 0x633, 0x645, 0x62d, + 0x304, 0x633, 0x645, 0x62d, 0x304, 0x633, 0x645, 0x62c, + 0x306, 0x633, 0x645, 0x645, 0x304, 0x633, 0x645, 0x645, + 0x306, 0x635, 0x62d, 0x62d, 0x304, 0x635, 0x62d, 0x62d, + 0x306, 0x635, 0x645, 0x645, 0x306, 0x634, 0x62d, 0x645, + 0x304, 0x634, 0x62d, 0x645, 0x306, 0x634, 0x62c, 0x64a, + 0x306, 0x634, 0x645, 0x62e, 0x304, 0x634, 0x645, 0x62e, + 0x306, 0x634, 0x645, 0x645, 0x304, 0x634, 0x645, 0x645, + 0x306, 0x636, 0x62d, 0x649, 0x306, 0x636, 0x62e, 0x645, + 0x304, 0x636, 0x62e, 0x645, 0x306, 0x637, 0x645, 0x62d, + 0x304, 0x637, 0x645, 0x62d, 0x304, 0x637, 0x645, 0x645, + 0x306, 0x637, 0x645, 0x64a, 0x306, 0x639, 0x62c, 0x645, + 0x306, 0x639, 0x645, 0x645, 0x304, 0x639, 0x645, 0x645, + 0x306, 0x639, 0x645, 0x649, 0x306, 0x63a, 0x645, 0x645, + 0x306, 0x63a, 0x645, 0x64a, 0x306, 0x63a, 0x645, 0x649, + 0x306, 0x641, 0x62e, 0x645, 0x304, 0x641, 0x62e, 0x645, + 0x306, 0x642, 0x645, 0x62d, 0x306, 0x642, 0x645, 0x645, + 0x306, 0x644, 0x62d, 0x645, 0x306, 0x644, 0x62d, 0x64a, + 0x306, 0x644, 0x62d, 0x649, 0x304, 0x644, 0x62c, 0x62c, + 0x306, 0x644, 0x62c, 0x62c, 0x306, 0x644, 0x62e, 0x645, + 0x304, 0x644, 0x62e, 0x645, 0x306, 0x644, 0x645, 0x62d, + 0x304, 0x644, 0x645, 0x62d, 0x304, 0x645, 0x62d, 0x62c, + 0x304, 0x645, 0x62d, 0x645, 0x306, 0x645, 0x62d, 0x64a, + 0x304, 0x645, 0x62c, 0x62d, 0x304, 0x645, 0x62c, 0x645, + 0x304, 0x645, 0x62e, 0x62c, 0x304, 0x645, 0x62e, 0x645, + 0x304, 0x645, 0x62c, 0x62e, 0x304, 0x647, 0x645, 0x62c, + 0x304, 0x647, 0x645, 0x645, 0x304, 0x646, 0x62d, 0x645, + 0x306, 0x646, 0x62d, 0x649, 0x306, 0x646, 0x62c, 0x645, + 0x304, 0x646, 0x62c, 0x645, 0x306, 0x646, 0x62c, 0x649, + 0x306, 0x646, 0x645, 0x64a, 0x306, 0x646, 0x645, 0x649, + 0x306, 0x64a, 0x645, 0x645, 0x304, 0x64a, 0x645, 0x645, + 0x306, 0x628, 0x62e, 0x64a, 0x306, 0x62a, 0x62c, 0x64a, + 0x306, 0x62a, 0x62c, 0x649, 0x306, 0x62a, 0x62e, 0x64a, + 0x306, 0x62a, 0x62e, 0x649, 0x306, 0x62a, 0x645, 0x64a, + 0x306, 0x62a, 0x645, 0x649, 0x306, 0x62c, 0x645, 0x64a, + 0x306, 0x62c, 0x62d, 0x649, 0x306, 0x62c, 0x645, 0x649, + 0x306, 0x633, 0x62e, 0x649, 0x306, 0x635, 0x62d, 0x64a, + 0x306, 0x634, 0x62d, 0x64a, 0x306, 0x636, 0x62d, 0x64a, + 0x306, 0x644, 0x62c, 0x64a, 0x306, 0x644, 0x645, 0x64a, + 0x306, 0x64a, 0x62d, 0x64a, 0x306, 0x64a, 0x62c, 0x64a, + 0x306, 0x64a, 0x645, 0x64a, 0x306, 0x645, 0x645, 0x64a, + 0x306, 0x642, 0x645, 0x64a, 0x306, 0x646, 0x62d, 0x64a, + 0x304, 0x642, 0x645, 0x62d, 0x304, 0x644, 0x62d, 0x645, + 0x306, 0x639, 0x645, 0x64a, 0x306, 0x643, 0x645, 0x64a, + 0x304, 0x646, 0x62c, 0x62d, 0x306, 0x645, 0x62e, 0x64a, + 0x304, 0x644, 0x62c, 0x645, 0x306, 0x643, 0x645, 0x645, + 0x306, 0x644, 0x62c, 0x645, 0x306, 0x646, 0x62c, 0x62d, + 0x306, 0x62c, 0x62d, 0x64a, 0x306, 0x62d, 0x62c, 0x64a, + 0x306, 0x645, 0x62c, 0x64a, 0x306, 0x641, 0x645, 0x64a, + 0x306, 0x628, 0x62d, 0x64a, 0x304, 0x643, 0x645, 0x645, + 0x304, 0x639, 0x62c, 0x645, 0x304, 0x635, 0x645, 0x645, + 0x306, 0x633, 0x62e, 0x64a, 0x306, 0x646, 0x62c, 0x64a, + 0x307, 0x635, 0x644, 0x6d2, 0x307, 0x642, 0x644, 0x6d2, + 0x407, 0x627, 0x644, 0x644, 0x647, 0x407, 0x627, 0x643, + 0x628, 0x631, 0x407, 0x645, 0x62d, 0x645, 0x62f, 0x407, + 0x635, 0x644, 0x639, 0x645, 0x407, 0x631, 0x633, 0x648, + 0x644, 0x407, 0x639, 0x644, 0x64a, 0x647, 0x407, 0x648, + 0x633, 0x644, 0x645, 0x307, 0x635, 0x644, 0x649, 0x1207, + 0x635, 0x644, 0x649, 0x20, 0x627, 0x644, 0x644, 0x647, + 0x20, 0x639, 0x644, 0x64a, 0x647, 0x20, 0x648, 0x633, + 0x644, 0x645, 0x807, 0x62c, 0x644, 0x20, 0x62c, 0x644, + 0x627, 0x644, 0x647, 0x407, 0x631, 0x6cc, 0x627, 0x644, + 0x10b, 0x2c, 0x10b, 0x3001, 0x10b, 0x3002, 0x10b, 0x3a, + 0x10b, 0x3b, 0x10b, 0x21, 0x10b, 0x3f, 0x10b, 0x3016, + 0x10b, 0x3017, 0x10b, 0x2026, 0x10b, 0x2025, 0x10b, 0x2014, + 0x10b, 0x2013, 0x10b, 0x5f, 0x10b, 0x5f, 0x10b, 0x28, + 0x10b, 0x29, 0x10b, 0x7b, 0x10b, 0x7d, 0x10b, 0x3014, + 0x10b, 0x3015, 0x10b, 0x3010, 0x10b, 0x3011, 0x10b, 0x300a, + 0x10b, 0x300b, 0x10b, 0x3008, 0x10b, 0x3009, 0x10b, 0x300c, + 0x10b, 0x300d, 0x10b, 0x300e, 0x10b, 0x300f, 0x10b, 0x5b, + 0x10b, 0x5d, 0x110, 0x203e, 0x110, 0x203e, 0x110, 0x203e, + 0x110, 0x203e, 0x110, 0x5f, 0x110, 0x5f, 0x110, 0x5f, + 0x10e, 0x2c, 0x10e, 0x3001, 0x10e, 0x2e, 0x10e, 0x3b, + 0x10e, 0x3a, 0x10e, 0x3f, 0x10e, 0x21, 0x10e, 0x2014, + 0x10e, 0x28, 0x10e, 0x29, 0x10e, 0x7b, 0x10e, 0x7d, + 0x10e, 0x3014, 0x10e, 0x3015, 0x10e, 0x23, 0x10e, 0x26, + 0x10e, 0x2a, 0x10e, 0x2b, 0x10e, 0x2d, 0x10e, 0x3c, + 0x10e, 0x3e, 0x10e, 0x3d, 0x10e, 0x5c, 0x10e, 0x24, + 0x10e, 0x25, 0x10e, 0x40, 0x207, 0x20, 0x64b, 0x205, + 0x640, 0x64b, 0x207, 0x20, 0x64c, 0x207, 0x20, 0x64d, + 0x207, 0x20, 0x64e, 0x205, 0x640, 0x64e, 0x207, 0x20, + 0x64f, 0x205, 0x640, 0x64f, 0x207, 0x20, 0x650, 0x205, + 0x640, 0x650, 0x207, 0x20, 0x651, 0x205, 0x640, 0x651, + 0x207, 0x20, 0x652, 0x205, 0x640, 0x652, 0x107, 0x621, + 0x107, 0x622, 0x106, 0x622, 0x107, 0x623, 0x106, 0x623, + 0x107, 0x624, 0x106, 0x624, 0x107, 0x625, 0x106, 0x625, + 0x107, 0x626, 0x106, 0x626, 0x104, 0x626, 0x105, 0x626, + 0x107, 0x627, 0x106, 0x627, 0x107, 0x628, 0x106, 0x628, + 0x104, 0x628, 0x105, 0x628, 0x107, 0x629, 0x106, 0x629, + 0x107, 0x62a, 0x106, 0x62a, 0x104, 0x62a, 0x105, 0x62a, + 0x107, 0x62b, 0x106, 0x62b, 0x104, 0x62b, 0x105, 0x62b, + 0x107, 0x62c, 0x106, 0x62c, 0x104, 0x62c, 0x105, 0x62c, + 0x107, 0x62d, 0x106, 0x62d, 0x104, 0x62d, 0x105, 0x62d, + 0x107, 0x62e, 0x106, 0x62e, 0x104, 0x62e, 0x105, 0x62e, + 0x107, 0x62f, 0x106, 0x62f, 0x107, 0x630, 0x106, 0x630, + 0x107, 0x631, 0x106, 0x631, 0x107, 0x632, 0x106, 0x632, + 0x107, 0x633, 0x106, 0x633, 0x104, 0x633, 0x105, 0x633, + 0x107, 0x634, 0x106, 0x634, 0x104, 0x634, 0x105, 0x634, + 0x107, 0x635, 0x106, 0x635, 0x104, 0x635, 0x105, 0x635, + 0x107, 0x636, 0x106, 0x636, 0x104, 0x636, 0x105, 0x636, + 0x107, 0x637, 0x106, 0x637, 0x104, 0x637, 0x105, 0x637, + 0x107, 0x638, 0x106, 0x638, 0x104, 0x638, 0x105, 0x638, + 0x107, 0x639, 0x106, 0x639, 0x104, 0x639, 0x105, 0x639, + 0x107, 0x63a, 0x106, 0x63a, 0x104, 0x63a, 0x105, 0x63a, + 0x107, 0x641, 0x106, 0x641, 0x104, 0x641, 0x105, 0x641, + 0x107, 0x642, 0x106, 0x642, 0x104, 0x642, 0x105, 0x642, + 0x107, 0x643, 0x106, 0x643, 0x104, 0x643, 0x105, 0x643, + 0x107, 0x644, 0x106, 0x644, 0x104, 0x644, 0x105, 0x644, + 0x107, 0x645, 0x106, 0x645, 0x104, 0x645, 0x105, 0x645, + 0x107, 0x646, 0x106, 0x646, 0x104, 0x646, 0x105, 0x646, + 0x107, 0x647, 0x106, 0x647, 0x104, 0x647, 0x105, 0x647, + 0x107, 0x648, 0x106, 0x648, 0x107, 0x649, 0x106, 0x649, + 0x107, 0x64a, 0x106, 0x64a, 0x104, 0x64a, 0x105, 0x64a, + 0x207, 0x644, 0x622, 0x206, 0x644, 0x622, 0x207, 0x644, + 0x623, 0x206, 0x644, 0x623, 0x207, 0x644, 0x625, 0x206, + 0x644, 0x625, 0x207, 0x644, 0x627, 0x206, 0x644, 0x627, + 0x10c, 0x21, 0x10c, 0x22, 0x10c, 0x23, 0x10c, 0x24, + 0x10c, 0x25, 0x10c, 0x26, 0x10c, 0x27, 0x10c, 0x28, + 0x10c, 0x29, 0x10c, 0x2a, 0x10c, 0x2b, 0x10c, 0x2c, + 0x10c, 0x2d, 0x10c, 0x2e, 0x10c, 0x2f, 0x10c, 0x30, + 0x10c, 0x31, 0x10c, 0x32, 0x10c, 0x33, 0x10c, 0x34, + 0x10c, 0x35, 0x10c, 0x36, 0x10c, 0x37, 0x10c, 0x38, + 0x10c, 0x39, 0x10c, 0x3a, 0x10c, 0x3b, 0x10c, 0x3c, + 0x10c, 0x3d, 0x10c, 0x3e, 0x10c, 0x3f, 0x10c, 0x40, + 0x10c, 0x41, 0x10c, 0x42, 0x10c, 0x43, 0x10c, 0x44, + 0x10c, 0x45, 0x10c, 0x46, 0x10c, 0x47, 0x10c, 0x48, + 0x10c, 0x49, 0x10c, 0x4a, 0x10c, 0x4b, 0x10c, 0x4c, + 0x10c, 0x4d, 0x10c, 0x4e, 0x10c, 0x4f, 0x10c, 0x50, + 0x10c, 0x51, 0x10c, 0x52, 0x10c, 0x53, 0x10c, 0x54, + 0x10c, 0x55, 0x10c, 0x56, 0x10c, 0x57, 0x10c, 0x58, + 0x10c, 0x59, 0x10c, 0x5a, 0x10c, 0x5b, 0x10c, 0x5c, + 0x10c, 0x5d, 0x10c, 0x5e, 0x10c, 0x5f, 0x10c, 0x60, + 0x10c, 0x61, 0x10c, 0x62, 0x10c, 0x63, 0x10c, 0x64, + 0x10c, 0x65, 0x10c, 0x66, 0x10c, 0x67, 0x10c, 0x68, + 0x10c, 0x69, 0x10c, 0x6a, 0x10c, 0x6b, 0x10c, 0x6c, + 0x10c, 0x6d, 0x10c, 0x6e, 0x10c, 0x6f, 0x10c, 0x70, + 0x10c, 0x71, 0x10c, 0x72, 0x10c, 0x73, 0x10c, 0x74, + 0x10c, 0x75, 0x10c, 0x76, 0x10c, 0x77, 0x10c, 0x78, + 0x10c, 0x79, 0x10c, 0x7a, 0x10c, 0x7b, 0x10c, 0x7c, + 0x10c, 0x7d, 0x10c, 0x7e, 0x10c, 0x2985, 0x10c, 0x2986, + 0x10d, 0x3002, 0x10d, 0x300c, 0x10d, 0x300d, 0x10d, 0x3001, + 0x10d, 0x30fb, 0x10d, 0x30f2, 0x10d, 0x30a1, 0x10d, 0x30a3, + 0x10d, 0x30a5, 0x10d, 0x30a7, 0x10d, 0x30a9, 0x10d, 0x30e3, + 0x10d, 0x30e5, 0x10d, 0x30e7, 0x10d, 0x30c3, 0x10d, 0x30fc, + 0x10d, 0x30a2, 0x10d, 0x30a4, 0x10d, 0x30a6, 0x10d, 0x30a8, + 0x10d, 0x30aa, 0x10d, 0x30ab, 0x10d, 0x30ad, 0x10d, 0x30af, + 0x10d, 0x30b1, 0x10d, 0x30b3, 0x10d, 0x30b5, 0x10d, 0x30b7, + 0x10d, 0x30b9, 0x10d, 0x30bb, 0x10d, 0x30bd, 0x10d, 0x30bf, + 0x10d, 0x30c1, 0x10d, 0x30c4, 0x10d, 0x30c6, 0x10d, 0x30c8, + 0x10d, 0x30ca, 0x10d, 0x30cb, 0x10d, 0x30cc, 0x10d, 0x30cd, + 0x10d, 0x30ce, 0x10d, 0x30cf, 0x10d, 0x30d2, 0x10d, 0x30d5, + 0x10d, 0x30d8, 0x10d, 0x30db, 0x10d, 0x30de, 0x10d, 0x30df, + 0x10d, 0x30e0, 0x10d, 0x30e1, 0x10d, 0x30e2, 0x10d, 0x30e4, + 0x10d, 0x30e6, 0x10d, 0x30e8, 0x10d, 0x30e9, 0x10d, 0x30ea, + 0x10d, 0x30eb, 0x10d, 0x30ec, 0x10d, 0x30ed, 0x10d, 0x30ef, + 0x10d, 0x30f3, 0x10d, 0x3099, 0x10d, 0x309a, 0x10d, 0x3164, + 0x10d, 0x3131, 0x10d, 0x3132, 0x10d, 0x3133, 0x10d, 0x3134, + 0x10d, 0x3135, 0x10d, 0x3136, 0x10d, 0x3137, 0x10d, 0x3138, + 0x10d, 0x3139, 0x10d, 0x313a, 0x10d, 0x313b, 0x10d, 0x313c, + 0x10d, 0x313d, 0x10d, 0x313e, 0x10d, 0x313f, 0x10d, 0x3140, + 0x10d, 0x3141, 0x10d, 0x3142, 0x10d, 0x3143, 0x10d, 0x3144, + 0x10d, 0x3145, 0x10d, 0x3146, 0x10d, 0x3147, 0x10d, 0x3148, + 0x10d, 0x3149, 0x10d, 0x314a, 0x10d, 0x314b, 0x10d, 0x314c, + 0x10d, 0x314d, 0x10d, 0x314e, 0x10d, 0x314f, 0x10d, 0x3150, + 0x10d, 0x3151, 0x10d, 0x3152, 0x10d, 0x3153, 0x10d, 0x3154, + 0x10d, 0x3155, 0x10d, 0x3156, 0x10d, 0x3157, 0x10d, 0x3158, + 0x10d, 0x3159, 0x10d, 0x315a, 0x10d, 0x315b, 0x10d, 0x315c, + 0x10d, 0x315d, 0x10d, 0x315e, 0x10d, 0x315f, 0x10d, 0x3160, + 0x10d, 0x3161, 0x10d, 0x3162, 0x10d, 0x3163, 0x10c, 0xa2, + 0x10c, 0xa3, 0x10c, 0xac, 0x10c, 0xaf, 0x10c, 0xa6, + 0x10c, 0xa5, 0x10c, 0x20a9, 0x10d, 0x2502, 0x10d, 0x2190, + 0x10d, 0x2191, 0x10d, 0x2192, 0x10d, 0x2193, 0x10d, 0x25a0, + 0x10d, 0x25cb, 0x401, 0xd804, 0xdc99, 0xd804, 0xdcba, 0x401, + 0xd804, 0xdc9b, 0xd804, 0xdcba, 0x401, 0xd804, 0xdca5, 0xd804, + 0xdcba, 0x401, 0xd804, 0xdd31, 0xd804, 0xdd27, 0x401, 0xd804, + 0xdd32, 0xd804, 0xdd27, 0x401, 0xd834, 0xdd57, 0xd834, 0xdd65, + 0x401, 0xd834, 0xdd58, 0xd834, 0xdd65, 0x401, 0xd834, 0xdd5f, + 0xd834, 0xdd6e, 0x401, 0xd834, 0xdd5f, 0xd834, 0xdd6f, 0x401, + 0xd834, 0xdd5f, 0xd834, 0xdd70, 0x401, 0xd834, 0xdd5f, 0xd834, + 0xdd71, 0x401, 0xd834, 0xdd5f, 0xd834, 0xdd72, 0x401, 0xd834, + 0xddb9, 0xd834, 0xdd65, 0x401, 0xd834, 0xddba, 0xd834, 0xdd65, + 0x401, 0xd834, 0xddbb, 0xd834, 0xdd6e, 0x401, 0xd834, 0xddbc, + 0xd834, 0xdd6e, 0x401, 0xd834, 0xddbb, 0xd834, 0xdd6f, 0x401, + 0xd834, 0xddbc, 0xd834, 0xdd6f, 0x102, 0x41, 0x102, 0x42, + 0x102, 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, + 0x102, 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, + 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, + 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, + 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, + 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, + 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, + 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, + 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, + 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, + 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, + 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, + 0x102, 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, + 0x102, 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, + 0x102, 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, + 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, + 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, + 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, + 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, + 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, + 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x69, + 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, 0x102, 0x6d, + 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, 0x102, 0x71, + 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, 0x102, 0x75, + 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, 0x102, 0x79, + 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, 0x102, 0x43, + 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, 0x102, 0x47, + 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, 0x102, 0x4b, + 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, 0x102, 0x4f, + 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, 0x102, 0x53, + 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, 0x102, 0x57, + 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, 0x102, 0x61, + 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, 0x102, 0x65, + 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, 0x102, 0x69, + 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, 0x102, 0x6d, + 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, 0x102, 0x71, + 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, 0x102, 0x75, + 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, 0x102, 0x79, + 0x102, 0x7a, 0x102, 0x41, 0x102, 0x43, 0x102, 0x44, + 0x102, 0x47, 0x102, 0x4a, 0x102, 0x4b, 0x102, 0x4e, + 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x53, + 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, 0x102, 0x57, + 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, 0x102, 0x61, + 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, 0x102, 0x66, + 0x102, 0x68, 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, + 0x102, 0x6c, 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x70, + 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, + 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, + 0x102, 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, + 0x102, 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, + 0x102, 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, + 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, + 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, + 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, + 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, + 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, + 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, + 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, + 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, + 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, + 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, + 0x102, 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, + 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, 0x102, 0x47, + 0x102, 0x4a, 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, + 0x102, 0x4e, 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, + 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, + 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x61, + 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, 0x102, 0x65, + 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, 0x102, 0x69, + 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, 0x102, 0x6d, + 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, 0x102, 0x71, + 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, 0x102, 0x75, + 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, 0x102, 0x79, + 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, 0x102, 0x44, + 0x102, 0x45, 0x102, 0x46, 0x102, 0x47, 0x102, 0x49, + 0x102, 0x4a, 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, + 0x102, 0x4f, 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, + 0x102, 0x56, 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, + 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, + 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, + 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, + 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, + 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, + 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, + 0x102, 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, + 0x102, 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, + 0x102, 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, + 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, + 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, + 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, + 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, + 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, + 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, + 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, + 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, + 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, + 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, + 0x102, 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, + 0x102, 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, + 0x102, 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, + 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, + 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, + 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, + 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, + 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, + 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, + 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, + 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, + 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, + 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, + 0x102, 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, + 0x102, 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, + 0x102, 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, + 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, + 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, + 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, + 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, + 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, + 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, + 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, + 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, + 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, + 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, + 0x102, 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, + 0x102, 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, + 0x102, 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, + 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, + 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, + 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, + 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, + 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, + 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, + 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, + 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, + 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, + 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, + 0x102, 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, + 0x102, 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, + 0x102, 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, + 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, + 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, + 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, + 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, + 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, + 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, + 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, + 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, + 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, + 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, + 0x102, 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, + 0x102, 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, + 0x102, 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, + 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, + 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, + 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, + 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, + 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, + 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, + 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, + 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, + 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, + 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, + 0x102, 0x79, 0x102, 0x7a, 0x102, 0x131, 0x102, 0x237, + 0x102, 0x391, 0x102, 0x392, 0x102, 0x393, 0x102, 0x394, + 0x102, 0x395, 0x102, 0x396, 0x102, 0x397, 0x102, 0x398, + 0x102, 0x399, 0x102, 0x39a, 0x102, 0x39b, 0x102, 0x39c, + 0x102, 0x39d, 0x102, 0x39e, 0x102, 0x39f, 0x102, 0x3a0, + 0x102, 0x3a1, 0x102, 0x3f4, 0x102, 0x3a3, 0x102, 0x3a4, + 0x102, 0x3a5, 0x102, 0x3a6, 0x102, 0x3a7, 0x102, 0x3a8, + 0x102, 0x3a9, 0x102, 0x2207, 0x102, 0x3b1, 0x102, 0x3b2, + 0x102, 0x3b3, 0x102, 0x3b4, 0x102, 0x3b5, 0x102, 0x3b6, + 0x102, 0x3b7, 0x102, 0x3b8, 0x102, 0x3b9, 0x102, 0x3ba, + 0x102, 0x3bb, 0x102, 0x3bc, 0x102, 0x3bd, 0x102, 0x3be, + 0x102, 0x3bf, 0x102, 0x3c0, 0x102, 0x3c1, 0x102, 0x3c2, + 0x102, 0x3c3, 0x102, 0x3c4, 0x102, 0x3c5, 0x102, 0x3c6, + 0x102, 0x3c7, 0x102, 0x3c8, 0x102, 0x3c9, 0x102, 0x2202, + 0x102, 0x3f5, 0x102, 0x3d1, 0x102, 0x3f0, 0x102, 0x3d5, + 0x102, 0x3f1, 0x102, 0x3d6, 0x102, 0x391, 0x102, 0x392, + 0x102, 0x393, 0x102, 0x394, 0x102, 0x395, 0x102, 0x396, + 0x102, 0x397, 0x102, 0x398, 0x102, 0x399, 0x102, 0x39a, + 0x102, 0x39b, 0x102, 0x39c, 0x102, 0x39d, 0x102, 0x39e, + 0x102, 0x39f, 0x102, 0x3a0, 0x102, 0x3a1, 0x102, 0x3f4, + 0x102, 0x3a3, 0x102, 0x3a4, 0x102, 0x3a5, 0x102, 0x3a6, + 0x102, 0x3a7, 0x102, 0x3a8, 0x102, 0x3a9, 0x102, 0x2207, + 0x102, 0x3b1, 0x102, 0x3b2, 0x102, 0x3b3, 0x102, 0x3b4, + 0x102, 0x3b5, 0x102, 0x3b6, 0x102, 0x3b7, 0x102, 0x3b8, + 0x102, 0x3b9, 0x102, 0x3ba, 0x102, 0x3bb, 0x102, 0x3bc, + 0x102, 0x3bd, 0x102, 0x3be, 0x102, 0x3bf, 0x102, 0x3c0, + 0x102, 0x3c1, 0x102, 0x3c2, 0x102, 0x3c3, 0x102, 0x3c4, + 0x102, 0x3c5, 0x102, 0x3c6, 0x102, 0x3c7, 0x102, 0x3c8, + 0x102, 0x3c9, 0x102, 0x2202, 0x102, 0x3f5, 0x102, 0x3d1, + 0x102, 0x3f0, 0x102, 0x3d5, 0x102, 0x3f1, 0x102, 0x3d6, + 0x102, 0x391, 0x102, 0x392, 0x102, 0x393, 0x102, 0x394, + 0x102, 0x395, 0x102, 0x396, 0x102, 0x397, 0x102, 0x398, + 0x102, 0x399, 0x102, 0x39a, 0x102, 0x39b, 0x102, 0x39c, + 0x102, 0x39d, 0x102, 0x39e, 0x102, 0x39f, 0x102, 0x3a0, + 0x102, 0x3a1, 0x102, 0x3f4, 0x102, 0x3a3, 0x102, 0x3a4, + 0x102, 0x3a5, 0x102, 0x3a6, 0x102, 0x3a7, 0x102, 0x3a8, + 0x102, 0x3a9, 0x102, 0x2207, 0x102, 0x3b1, 0x102, 0x3b2, + 0x102, 0x3b3, 0x102, 0x3b4, 0x102, 0x3b5, 0x102, 0x3b6, + 0x102, 0x3b7, 0x102, 0x3b8, 0x102, 0x3b9, 0x102, 0x3ba, + 0x102, 0x3bb, 0x102, 0x3bc, 0x102, 0x3bd, 0x102, 0x3be, + 0x102, 0x3bf, 0x102, 0x3c0, 0x102, 0x3c1, 0x102, 0x3c2, + 0x102, 0x3c3, 0x102, 0x3c4, 0x102, 0x3c5, 0x102, 0x3c6, + 0x102, 0x3c7, 0x102, 0x3c8, 0x102, 0x3c9, 0x102, 0x2202, + 0x102, 0x3f5, 0x102, 0x3d1, 0x102, 0x3f0, 0x102, 0x3d5, + 0x102, 0x3f1, 0x102, 0x3d6, 0x102, 0x391, 0x102, 0x392, + 0x102, 0x393, 0x102, 0x394, 0x102, 0x395, 0x102, 0x396, + 0x102, 0x397, 0x102, 0x398, 0x102, 0x399, 0x102, 0x39a, + 0x102, 0x39b, 0x102, 0x39c, 0x102, 0x39d, 0x102, 0x39e, + 0x102, 0x39f, 0x102, 0x3a0, 0x102, 0x3a1, 0x102, 0x3f4, + 0x102, 0x3a3, 0x102, 0x3a4, 0x102, 0x3a5, 0x102, 0x3a6, + 0x102, 0x3a7, 0x102, 0x3a8, 0x102, 0x3a9, 0x102, 0x2207, + 0x102, 0x3b1, 0x102, 0x3b2, 0x102, 0x3b3, 0x102, 0x3b4, + 0x102, 0x3b5, 0x102, 0x3b6, 0x102, 0x3b7, 0x102, 0x3b8, + 0x102, 0x3b9, 0x102, 0x3ba, 0x102, 0x3bb, 0x102, 0x3bc, + 0x102, 0x3bd, 0x102, 0x3be, 0x102, 0x3bf, 0x102, 0x3c0, + 0x102, 0x3c1, 0x102, 0x3c2, 0x102, 0x3c3, 0x102, 0x3c4, + 0x102, 0x3c5, 0x102, 0x3c6, 0x102, 0x3c7, 0x102, 0x3c8, + 0x102, 0x3c9, 0x102, 0x2202, 0x102, 0x3f5, 0x102, 0x3d1, + 0x102, 0x3f0, 0x102, 0x3d5, 0x102, 0x3f1, 0x102, 0x3d6, + 0x102, 0x391, 0x102, 0x392, 0x102, 0x393, 0x102, 0x394, + 0x102, 0x395, 0x102, 0x396, 0x102, 0x397, 0x102, 0x398, + 0x102, 0x399, 0x102, 0x39a, 0x102, 0x39b, 0x102, 0x39c, + 0x102, 0x39d, 0x102, 0x39e, 0x102, 0x39f, 0x102, 0x3a0, + 0x102, 0x3a1, 0x102, 0x3f4, 0x102, 0x3a3, 0x102, 0x3a4, + 0x102, 0x3a5, 0x102, 0x3a6, 0x102, 0x3a7, 0x102, 0x3a8, + 0x102, 0x3a9, 0x102, 0x2207, 0x102, 0x3b1, 0x102, 0x3b2, + 0x102, 0x3b3, 0x102, 0x3b4, 0x102, 0x3b5, 0x102, 0x3b6, + 0x102, 0x3b7, 0x102, 0x3b8, 0x102, 0x3b9, 0x102, 0x3ba, + 0x102, 0x3bb, 0x102, 0x3bc, 0x102, 0x3bd, 0x102, 0x3be, + 0x102, 0x3bf, 0x102, 0x3c0, 0x102, 0x3c1, 0x102, 0x3c2, + 0x102, 0x3c3, 0x102, 0x3c4, 0x102, 0x3c5, 0x102, 0x3c6, + 0x102, 0x3c7, 0x102, 0x3c8, 0x102, 0x3c9, 0x102, 0x2202, + 0x102, 0x3f5, 0x102, 0x3d1, 0x102, 0x3f0, 0x102, 0x3d5, + 0x102, 0x3f1, 0x102, 0x3d6, 0x102, 0x3dc, 0x102, 0x3dd, + 0x102, 0x30, 0x102, 0x31, 0x102, 0x32, 0x102, 0x33, + 0x102, 0x34, 0x102, 0x35, 0x102, 0x36, 0x102, 0x37, + 0x102, 0x38, 0x102, 0x39, 0x102, 0x30, 0x102, 0x31, + 0x102, 0x32, 0x102, 0x33, 0x102, 0x34, 0x102, 0x35, + 0x102, 0x36, 0x102, 0x37, 0x102, 0x38, 0x102, 0x39, + 0x102, 0x30, 0x102, 0x31, 0x102, 0x32, 0x102, 0x33, + 0x102, 0x34, 0x102, 0x35, 0x102, 0x36, 0x102, 0x37, + 0x102, 0x38, 0x102, 0x39, 0x102, 0x30, 0x102, 0x31, + 0x102, 0x32, 0x102, 0x33, 0x102, 0x34, 0x102, 0x35, + 0x102, 0x36, 0x102, 0x37, 0x102, 0x38, 0x102, 0x39, + 0x102, 0x30, 0x102, 0x31, 0x102, 0x32, 0x102, 0x33, + 0x102, 0x34, 0x102, 0x35, 0x102, 0x36, 0x102, 0x37, + 0x102, 0x38, 0x102, 0x39, 0x102, 0x627, 0x102, 0x628, + 0x102, 0x62c, 0x102, 0x62f, 0x102, 0x648, 0x102, 0x632, + 0x102, 0x62d, 0x102, 0x637, 0x102, 0x64a, 0x102, 0x643, + 0x102, 0x644, 0x102, 0x645, 0x102, 0x646, 0x102, 0x633, + 0x102, 0x639, 0x102, 0x641, 0x102, 0x635, 0x102, 0x642, + 0x102, 0x631, 0x102, 0x634, 0x102, 0x62a, 0x102, 0x62b, + 0x102, 0x62e, 0x102, 0x630, 0x102, 0x636, 0x102, 0x638, + 0x102, 0x63a, 0x102, 0x66e, 0x102, 0x6ba, 0x102, 0x6a1, + 0x102, 0x66f, 0x102, 0x628, 0x102, 0x62c, 0x102, 0x647, + 0x102, 0x62d, 0x102, 0x64a, 0x102, 0x643, 0x102, 0x644, + 0x102, 0x645, 0x102, 0x646, 0x102, 0x633, 0x102, 0x639, + 0x102, 0x641, 0x102, 0x635, 0x102, 0x642, 0x102, 0x634, + 0x102, 0x62a, 0x102, 0x62b, 0x102, 0x62e, 0x102, 0x636, + 0x102, 0x63a, 0x102, 0x62c, 0x102, 0x62d, 0x102, 0x64a, + 0x102, 0x644, 0x102, 0x646, 0x102, 0x633, 0x102, 0x639, + 0x102, 0x635, 0x102, 0x642, 0x102, 0x634, 0x102, 0x62e, + 0x102, 0x636, 0x102, 0x63a, 0x102, 0x6ba, 0x102, 0x66f, + 0x102, 0x628, 0x102, 0x62c, 0x102, 0x647, 0x102, 0x62d, + 0x102, 0x637, 0x102, 0x64a, 0x102, 0x643, 0x102, 0x645, + 0x102, 0x646, 0x102, 0x633, 0x102, 0x639, 0x102, 0x641, + 0x102, 0x635, 0x102, 0x642, 0x102, 0x634, 0x102, 0x62a, + 0x102, 0x62b, 0x102, 0x62e, 0x102, 0x636, 0x102, 0x638, + 0x102, 0x63a, 0x102, 0x66e, 0x102, 0x6a1, 0x102, 0x627, + 0x102, 0x628, 0x102, 0x62c, 0x102, 0x62f, 0x102, 0x647, + 0x102, 0x648, 0x102, 0x632, 0x102, 0x62d, 0x102, 0x637, + 0x102, 0x64a, 0x102, 0x644, 0x102, 0x645, 0x102, 0x646, + 0x102, 0x633, 0x102, 0x639, 0x102, 0x641, 0x102, 0x635, + 0x102, 0x642, 0x102, 0x631, 0x102, 0x634, 0x102, 0x62a, + 0x102, 0x62b, 0x102, 0x62e, 0x102, 0x630, 0x102, 0x636, + 0x102, 0x638, 0x102, 0x63a, 0x102, 0x628, 0x102, 0x62c, + 0x102, 0x62f, 0x102, 0x648, 0x102, 0x632, 0x102, 0x62d, + 0x102, 0x637, 0x102, 0x64a, 0x102, 0x644, 0x102, 0x645, + 0x102, 0x646, 0x102, 0x633, 0x102, 0x639, 0x102, 0x641, + 0x102, 0x635, 0x102, 0x642, 0x102, 0x631, 0x102, 0x634, + 0x102, 0x62a, 0x102, 0x62b, 0x102, 0x62e, 0x102, 0x630, + 0x102, 0x636, 0x102, 0x638, 0x102, 0x63a, 0x210, 0x30, + 0x2e, 0x210, 0x30, 0x2c, 0x210, 0x31, 0x2c, 0x210, + 0x32, 0x2c, 0x210, 0x33, 0x2c, 0x210, 0x34, 0x2c, + 0x210, 0x35, 0x2c, 0x210, 0x36, 0x2c, 0x210, 0x37, + 0x2c, 0x210, 0x38, 0x2c, 0x210, 0x39, 0x2c, 0x310, + 0x28, 0x41, 0x29, 0x310, 0x28, 0x42, 0x29, 0x310, + 0x28, 0x43, 0x29, 0x310, 0x28, 0x44, 0x29, 0x310, + 0x28, 0x45, 0x29, 0x310, 0x28, 0x46, 0x29, 0x310, + 0x28, 0x47, 0x29, 0x310, 0x28, 0x48, 0x29, 0x310, + 0x28, 0x49, 0x29, 0x310, 0x28, 0x4a, 0x29, 0x310, + 0x28, 0x4b, 0x29, 0x310, 0x28, 0x4c, 0x29, 0x310, + 0x28, 0x4d, 0x29, 0x310, 0x28, 0x4e, 0x29, 0x310, + 0x28, 0x4f, 0x29, 0x310, 0x28, 0x50, 0x29, 0x310, + 0x28, 0x51, 0x29, 0x310, 0x28, 0x52, 0x29, 0x310, + 0x28, 0x53, 0x29, 0x310, 0x28, 0x54, 0x29, 0x310, + 0x28, 0x55, 0x29, 0x310, 0x28, 0x56, 0x29, 0x310, + 0x28, 0x57, 0x29, 0x310, 0x28, 0x58, 0x29, 0x310, + 0x28, 0x59, 0x29, 0x310, 0x28, 0x5a, 0x29, 0x310, + 0x3014, 0x53, 0x3015, 0x108, 0x43, 0x108, 0x52, 0x208, + 0x43, 0x44, 0x208, 0x57, 0x5a, 0x10f, 0x41, 0x10f, + 0x42, 0x10f, 0x43, 0x10f, 0x44, 0x10f, 0x45, 0x10f, + 0x46, 0x10f, 0x47, 0x10f, 0x48, 0x10f, 0x49, 0x10f, + 0x4a, 0x10f, 0x4b, 0x10f, 0x4c, 0x10f, 0x4d, 0x10f, + 0x4e, 0x10f, 0x4f, 0x10f, 0x50, 0x10f, 0x51, 0x10f, + 0x52, 0x10f, 0x53, 0x10f, 0x54, 0x10f, 0x55, 0x10f, + 0x56, 0x10f, 0x57, 0x10f, 0x58, 0x10f, 0x59, 0x10f, + 0x5a, 0x20f, 0x48, 0x56, 0x20f, 0x4d, 0x56, 0x20f, + 0x53, 0x44, 0x20f, 0x53, 0x53, 0x30f, 0x50, 0x50, + 0x56, 0x20f, 0x57, 0x43, 0x209, 0x4d, 0x43, 0x209, + 0x4d, 0x44, 0x20f, 0x44, 0x4a, 0x20f, 0x307b, 0x304b, + 0x20f, 0x30b3, 0x30b3, 0x10f, 0x30b5, 0x10f, 0x624b, 0x10f, + 0x5b57, 0x10f, 0x53cc, 0x10f, 0x30c7, 0x10f, 0x4e8c, 0x10f, + 0x591a, 0x10f, 0x89e3, 0x10f, 0x5929, 0x10f, 0x4ea4, 0x10f, + 0x6620, 0x10f, 0x7121, 0x10f, 0x6599, 0x10f, 0x524d, 0x10f, + 0x5f8c, 0x10f, 0x518d, 0x10f, 0x65b0, 0x10f, 0x521d, 0x10f, + 0x7d42, 0x10f, 0x751f, 0x10f, 0x8ca9, 0x10f, 0x58f0, 0x10f, + 0x5439, 0x10f, 0x6f14, 0x10f, 0x6295, 0x10f, 0x6355, 0x10f, + 0x4e00, 0x10f, 0x4e09, 0x10f, 0x904a, 0x10f, 0x5de6, 0x10f, + 0x4e2d, 0x10f, 0x53f3, 0x10f, 0x6307, 0x10f, 0x8d70, 0x10f, + 0x6253, 0x10f, 0x7981, 0x10f, 0x7a7a, 0x10f, 0x5408, 0x10f, + 0x6e80, 0x10f, 0x6709, 0x10f, 0x6708, 0x10f, 0x7533, 0x10f, + 0x5272, 0x10f, 0x55b6, 0x310, 0x3014, 0x672c, 0x3015, 0x310, + 0x3014, 0x4e09, 0x3015, 0x310, 0x3014, 0x4e8c, 0x3015, 0x310, + 0x3014, 0x5b89, 0x3015, 0x310, 0x3014, 0x70b9, 0x3015, 0x310, + 0x3014, 0x6253, 0x3015, 0x310, 0x3014, 0x76d7, 0x3015, 0x310, + 0x3014, 0x52dd, 0x3015, 0x310, 0x3014, 0x6557, 0x3015, 0x108, + 0x5f97, 0x108, 0x53ef, 0x101, 0x4e3d, 0x101, 0x4e38, 0x101, + 0x4e41, 0x201, 0xd840, 0xdd22, 0x101, 0x4f60, 0x101, 0x4fae, + 0x101, 0x4fbb, 0x101, 0x5002, 0x101, 0x507a, 0x101, 0x5099, + 0x101, 0x50e7, 0x101, 0x50cf, 0x101, 0x349e, 0x201, 0xd841, + 0xde3a, 0x101, 0x514d, 0x101, 0x5154, 0x101, 0x5164, 0x101, + 0x5177, 0x201, 0xd841, 0xdd1c, 0x101, 0x34b9, 0x101, 0x5167, + 0x101, 0x518d, 0x201, 0xd841, 0xdd4b, 0x101, 0x5197, 0x101, + 0x51a4, 0x101, 0x4ecc, 0x101, 0x51ac, 0x101, 0x51b5, 0x201, + 0xd864, 0xdddf, 0x101, 0x51f5, 0x101, 0x5203, 0x101, 0x34df, + 0x101, 0x523b, 0x101, 0x5246, 0x101, 0x5272, 0x101, 0x5277, + 0x101, 0x3515, 0x101, 0x52c7, 0x101, 0x52c9, 0x101, 0x52e4, + 0x101, 0x52fa, 0x101, 0x5305, 0x101, 0x5306, 0x101, 0x5317, + 0x101, 0x5349, 0x101, 0x5351, 0x101, 0x535a, 0x101, 0x5373, + 0x101, 0x537d, 0x101, 0x537f, 0x101, 0x537f, 0x101, 0x537f, + 0x201, 0xd842, 0xde2c, 0x101, 0x7070, 0x101, 0x53ca, 0x101, + 0x53df, 0x201, 0xd842, 0xdf63, 0x101, 0x53eb, 0x101, 0x53f1, + 0x101, 0x5406, 0x101, 0x549e, 0x101, 0x5438, 0x101, 0x5448, + 0x101, 0x5468, 0x101, 0x54a2, 0x101, 0x54f6, 0x101, 0x5510, + 0x101, 0x5553, 0x101, 0x5563, 0x101, 0x5584, 0x101, 0x5584, + 0x101, 0x5599, 0x101, 0x55ab, 0x101, 0x55b3, 0x101, 0x55c2, + 0x101, 0x5716, 0x101, 0x5606, 0x101, 0x5717, 0x101, 0x5651, + 0x101, 0x5674, 0x101, 0x5207, 0x101, 0x58ee, 0x101, 0x57ce, + 0x101, 0x57f4, 0x101, 0x580d, 0x101, 0x578b, 0x101, 0x5832, + 0x101, 0x5831, 0x101, 0x58ac, 0x201, 0xd845, 0xdce4, 0x101, + 0x58f2, 0x101, 0x58f7, 0x101, 0x5906, 0x101, 0x591a, 0x101, + 0x5922, 0x101, 0x5962, 0x201, 0xd845, 0xdea8, 0x201, 0xd845, + 0xdeea, 0x101, 0x59ec, 0x101, 0x5a1b, 0x101, 0x5a27, 0x101, + 0x59d8, 0x101, 0x5a66, 0x101, 0x36ee, 0x101, 0x36fc, 0x101, + 0x5b08, 0x101, 0x5b3e, 0x101, 0x5b3e, 0x201, 0xd846, 0xddc8, + 0x101, 0x5bc3, 0x101, 0x5bd8, 0x101, 0x5be7, 0x101, 0x5bf3, + 0x201, 0xd846, 0xdf18, 0x101, 0x5bff, 0x101, 0x5c06, 0x101, + 0x5f53, 0x101, 0x5c22, 0x101, 0x3781, 0x101, 0x5c60, 0x101, + 0x5c6e, 0x101, 0x5cc0, 0x101, 0x5c8d, 0x201, 0xd847, 0xdde4, + 0x101, 0x5d43, 0x201, 0xd847, 0xdde6, 0x101, 0x5d6e, 0x101, + 0x5d6b, 0x101, 0x5d7c, 0x101, 0x5de1, 0x101, 0x5de2, 0x101, + 0x382f, 0x101, 0x5dfd, 0x101, 0x5e28, 0x101, 0x5e3d, 0x101, + 0x5e69, 0x101, 0x3862, 0x201, 0xd848, 0xdd83, 0x101, 0x387c, + 0x101, 0x5eb0, 0x101, 0x5eb3, 0x101, 0x5eb6, 0x101, 0x5eca, + 0x201, 0xd868, 0xdf92, 0x101, 0x5efe, 0x201, 0xd848, 0xdf31, + 0x201, 0xd848, 0xdf31, 0x101, 0x8201, 0x101, 0x5f22, 0x101, + 0x5f22, 0x101, 0x38c7, 0x201, 0xd84c, 0xdeb8, 0x201, 0xd858, + 0xddda, 0x101, 0x5f62, 0x101, 0x5f6b, 0x101, 0x38e3, 0x101, + 0x5f9a, 0x101, 0x5fcd, 0x101, 0x5fd7, 0x101, 0x5ff9, 0x101, + 0x6081, 0x101, 0x393a, 0x101, 0x391c, 0x101, 0x6094, 0x201, + 0xd849, 0xded4, 0x101, 0x60c7, 0x101, 0x6148, 0x101, 0x614c, + 0x101, 0x614e, 0x101, 0x614c, 0x101, 0x617a, 0x101, 0x618e, + 0x101, 0x61b2, 0x101, 0x61a4, 0x101, 0x61af, 0x101, 0x61de, + 0x101, 0x61f2, 0x101, 0x61f6, 0x101, 0x6210, 0x101, 0x621b, + 0x101, 0x625d, 0x101, 0x62b1, 0x101, 0x62d4, 0x101, 0x6350, + 0x201, 0xd84a, 0xdf0c, 0x101, 0x633d, 0x101, 0x62fc, 0x101, + 0x6368, 0x101, 0x6383, 0x101, 0x63e4, 0x201, 0xd84a, 0xdff1, + 0x101, 0x6422, 0x101, 0x63c5, 0x101, 0x63a9, 0x101, 0x3a2e, + 0x101, 0x6469, 0x101, 0x647e, 0x101, 0x649d, 0x101, 0x6477, + 0x101, 0x3a6c, 0x101, 0x654f, 0x101, 0x656c, 0x201, 0xd84c, + 0xdc0a, 0x101, 0x65e3, 0x101, 0x66f8, 0x101, 0x6649, 0x101, + 0x3b19, 0x101, 0x6691, 0x101, 0x3b08, 0x101, 0x3ae4, 0x101, + 0x5192, 0x101, 0x5195, 0x101, 0x6700, 0x101, 0x669c, 0x101, + 0x80ad, 0x101, 0x43d9, 0x101, 0x6717, 0x101, 0x671b, 0x101, + 0x6721, 0x101, 0x675e, 0x101, 0x6753, 0x201, 0xd84c, 0xdfc3, + 0x101, 0x3b49, 0x101, 0x67fa, 0x101, 0x6785, 0x101, 0x6852, + 0x101, 0x6885, 0x201, 0xd84d, 0xdc6d, 0x101, 0x688e, 0x101, + 0x681f, 0x101, 0x6914, 0x101, 0x3b9d, 0x101, 0x6942, 0x101, + 0x69a3, 0x101, 0x69ea, 0x101, 0x6aa8, 0x201, 0xd84d, 0xdea3, + 0x101, 0x6adb, 0x101, 0x3c18, 0x101, 0x6b21, 0x201, 0xd84e, + 0xdca7, 0x101, 0x6b54, 0x101, 0x3c4e, 0x101, 0x6b72, 0x101, + 0x6b9f, 0x101, 0x6bba, 0x101, 0x6bbb, 0x201, 0xd84e, 0xde8d, + 0x201, 0xd847, 0xdd0b, 0x201, 0xd84e, 0xdefa, 0x101, 0x6c4e, + 0x201, 0xd84f, 0xdcbc, 0x101, 0x6cbf, 0x101, 0x6ccd, 0x101, + 0x6c67, 0x101, 0x6d16, 0x101, 0x6d3e, 0x101, 0x6d77, 0x101, + 0x6d41, 0x101, 0x6d69, 0x101, 0x6d78, 0x101, 0x6d85, 0x201, + 0xd84f, 0xdd1e, 0x101, 0x6d34, 0x101, 0x6e2f, 0x101, 0x6e6e, + 0x101, 0x3d33, 0x101, 0x6ecb, 0x101, 0x6ec7, 0x201, 0xd84f, + 0xded1, 0x101, 0x6df9, 0x101, 0x6f6e, 0x201, 0xd84f, 0xdf5e, + 0x201, 0xd84f, 0xdf8e, 0x101, 0x6fc6, 0x101, 0x7039, 0x101, + 0x701e, 0x101, 0x701b, 0x101, 0x3d96, 0x101, 0x704a, 0x101, + 0x707d, 0x101, 0x7077, 0x101, 0x70ad, 0x201, 0xd841, 0xdd25, + 0x101, 0x7145, 0x201, 0xd850, 0xde63, 0x101, 0x719c, 0x201, + 0xd850, 0xdfab, 0x101, 0x7228, 0x101, 0x7235, 0x101, 0x7250, + 0x201, 0xd851, 0xde08, 0x101, 0x7280, 0x101, 0x7295, 0x201, + 0xd851, 0xdf35, 0x201, 0xd852, 0xdc14, 0x101, 0x737a, 0x101, + 0x738b, 0x101, 0x3eac, 0x101, 0x73a5, 0x101, 0x3eb8, 0x101, + 0x3eb8, 0x101, 0x7447, 0x101, 0x745c, 0x101, 0x7471, 0x101, + 0x7485, 0x101, 0x74ca, 0x101, 0x3f1b, 0x101, 0x7524, 0x201, + 0xd853, 0xdc36, 0x101, 0x753e, 0x201, 0xd853, 0xdc92, 0x101, + 0x7570, 0x201, 0xd848, 0xdd9f, 0x101, 0x7610, 0x201, 0xd853, + 0xdfa1, 0x201, 0xd853, 0xdfb8, 0x201, 0xd854, 0xdc44, 0x101, + 0x3ffc, 0x101, 0x4008, 0x101, 0x76f4, 0x201, 0xd854, 0xdcf3, + 0x201, 0xd854, 0xdcf2, 0x201, 0xd854, 0xdd19, 0x201, 0xd854, + 0xdd33, 0x101, 0x771e, 0x101, 0x771f, 0x101, 0x771f, 0x101, + 0x774a, 0x101, 0x4039, 0x101, 0x778b, 0x101, 0x4046, 0x101, + 0x4096, 0x201, 0xd855, 0xdc1d, 0x101, 0x784e, 0x101, 0x788c, + 0x101, 0x78cc, 0x101, 0x40e3, 0x201, 0xd855, 0xde26, 0x101, + 0x7956, 0x201, 0xd855, 0xde9a, 0x201, 0xd855, 0xdec5, 0x101, + 0x798f, 0x101, 0x79eb, 0x101, 0x412f, 0x101, 0x7a40, 0x101, + 0x7a4a, 0x101, 0x7a4f, 0x201, 0xd856, 0xdd7c, 0x201, 0xd856, + 0xdea7, 0x201, 0xd856, 0xdea7, 0x101, 0x7aee, 0x101, 0x4202, + 0x201, 0xd856, 0xdfab, 0x101, 0x7bc6, 0x101, 0x7bc9, 0x101, + 0x4227, 0x201, 0xd857, 0xdc80, 0x101, 0x7cd2, 0x101, 0x42a0, + 0x101, 0x7ce8, 0x101, 0x7ce3, 0x101, 0x7d00, 0x201, 0xd857, + 0xdf86, 0x101, 0x7d63, 0x101, 0x4301, 0x101, 0x7dc7, 0x101, + 0x7e02, 0x101, 0x7e45, 0x101, 0x4334, 0x201, 0xd858, 0xde28, + 0x201, 0xd858, 0xde47, 0x101, 0x4359, 0x201, 0xd858, 0xded9, + 0x101, 0x7f7a, 0x201, 0xd858, 0xdf3e, 0x101, 0x7f95, 0x101, + 0x7ffa, 0x101, 0x8005, 0x201, 0xd859, 0xdcda, 0x201, 0xd859, + 0xdd23, 0x101, 0x8060, 0x201, 0xd859, 0xdda8, 0x101, 0x8070, + 0x201, 0xd84c, 0xdf5f, 0x101, 0x43d5, 0x101, 0x80b2, 0x101, + 0x8103, 0x101, 0x440b, 0x101, 0x813e, 0x101, 0x5ab5, 0x201, + 0xd859, 0xdfa7, 0x201, 0xd859, 0xdfb5, 0x201, 0xd84c, 0xdf93, + 0x201, 0xd84c, 0xdf9c, 0x101, 0x8201, 0x101, 0x8204, 0x101, + 0x8f9e, 0x101, 0x446b, 0x101, 0x8291, 0x101, 0x828b, 0x101, + 0x829d, 0x101, 0x52b3, 0x101, 0x82b1, 0x101, 0x82b3, 0x101, + 0x82bd, 0x101, 0x82e6, 0x201, 0xd85a, 0xdf3c, 0x101, 0x82e5, + 0x101, 0x831d, 0x101, 0x8363, 0x101, 0x83ad, 0x101, 0x8323, + 0x101, 0x83bd, 0x101, 0x83e7, 0x101, 0x8457, 0x101, 0x8353, + 0x101, 0x83ca, 0x101, 0x83cc, 0x101, 0x83dc, 0x201, 0xd85b, + 0xdc36, 0x201, 0xd85b, 0xdd6b, 0x201, 0xd85b, 0xdcd5, 0x101, + 0x452b, 0x101, 0x84f1, 0x101, 0x84f3, 0x101, 0x8516, 0x201, + 0xd85c, 0xdfca, 0x101, 0x8564, 0x201, 0xd85b, 0xdf2c, 0x101, + 0x455d, 0x101, 0x4561, 0x201, 0xd85b, 0xdfb1, 0x201, 0xd85c, + 0xdcd2, 0x101, 0x456b, 0x101, 0x8650, 0x101, 0x865c, 0x101, + 0x8667, 0x101, 0x8669, 0x101, 0x86a9, 0x101, 0x8688, 0x101, + 0x870e, 0x101, 0x86e2, 0x101, 0x8779, 0x101, 0x8728, 0x101, + 0x876b, 0x101, 0x8786, 0x101, 0x45d7, 0x101, 0x87e1, 0x101, + 0x8801, 0x101, 0x45f9, 0x101, 0x8860, 0x101, 0x8863, 0x201, + 0xd85d, 0xde67, 0x101, 0x88d7, 0x101, 0x88de, 0x101, 0x4635, + 0x101, 0x88fa, 0x101, 0x34bb, 0x201, 0xd85e, 0xdcae, 0x201, + 0xd85e, 0xdd66, 0x101, 0x46be, 0x101, 0x46c7, 0x101, 0x8aa0, + 0x101, 0x8aed, 0x101, 0x8b8a, 0x101, 0x8c55, 0x201, 0xd85f, + 0xdca8, 0x101, 0x8cab, 0x101, 0x8cc1, 0x101, 0x8d1b, 0x101, + 0x8d77, 0x201, 0xd85f, 0xdf2f, 0x201, 0xd842, 0xdc04, 0x101, + 0x8dcb, 0x101, 0x8dbc, 0x101, 0x8df0, 0x201, 0xd842, 0xdcde, + 0x101, 0x8ed4, 0x101, 0x8f38, 0x201, 0xd861, 0xddd2, 0x201, + 0xd861, 0xdded, 0x101, 0x9094, 0x101, 0x90f1, 0x101, 0x9111, + 0x201, 0xd861, 0xdf2e, 0x101, 0x911b, 0x101, 0x9238, 0x101, + 0x92d7, 0x101, 0x92d8, 0x101, 0x927c, 0x101, 0x93f9, 0x101, + 0x9415, 0x201, 0xd862, 0xdffa, 0x101, 0x958b, 0x101, 0x4995, + 0x101, 0x95b7, 0x201, 0xd863, 0xdd77, 0x101, 0x49e6, 0x101, + 0x96c3, 0x101, 0x5db2, 0x101, 0x9723, 0x201, 0xd864, 0xdd45, + 0x201, 0xd864, 0xde1a, 0x101, 0x4a6e, 0x101, 0x4a76, 0x101, + 0x97e0, 0x201, 0xd865, 0xdc0a, 0x101, 0x4ab2, 0x201, 0xd865, + 0xdc96, 0x101, 0x980b, 0x101, 0x980b, 0x101, 0x9829, 0x201, + 0xd865, 0xddb6, 0x101, 0x98e2, 0x101, 0x4b33, 0x101, 0x9929, + 0x101, 0x99a7, 0x101, 0x99c2, 0x101, 0x99fe, 0x101, 0x4bce, + 0x201, 0xd866, 0xdf30, 0x101, 0x9b12, 0x101, 0x9c40, 0x101, + 0x9cfd, 0x101, 0x4cce, 0x101, 0x4ced, 0x101, 0x9d67, 0x201, + 0xd868, 0xdcce, 0x101, 0x4cf8, 0x201, 0xd868, 0xdd05, 0x201, + 0xd868, 0xde0e, 0x201, 0xd868, 0xde91, 0x101, 0x9ebb, 0x101, + 0x4d56, 0x101, 0x9ef9, 0x101, 0x9efe, 0x101, 0x9f05, 0x101, + 0x9f0f, 0x101, 0x9f16, 0x101, 0x9f3b, 0x201, 0xd869, 0xde00 +}; + +static const unsigned short uc_ligature_trie[] = { + // 0 - 0x3100 + + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 663, 695, 727, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 759, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 791, 631, 631, 631, 823, 855, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 887, 919, 631, 631, 951, 983, 631, + 631, 631, 1015, 631, 631, 631, 1047, 631, + 631, 1079, 1111, 631, 631, 631, 1143, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + + 631, 1175, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 1207, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + + 631, 631, 631, 631, 1239, 631, 631, 631, + + // 0x3100 - 0x12000 + + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1527, + 1783, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, + + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0x0, 0xa9, 0x194, 0x1d5, 0x20e, 0xffff, 0x267, 0x2a8, + 0x305, 0x372, 0x3a3, 0x3b0, 0x3bd, 0xffff, 0xffff, 0x408, + 0xffff, 0x425, 0xffff, 0x43e, 0x45b, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0x47c, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0x485, 0x4da, 0x4df, 0x4e4, 0x4ed, + 0x51a, 0xffff, 0xffff, 0xffff, 0xffff, 0x52f, 0x548, 0xffff, + 0x54d, 0x55a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0x57d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0x5d6, 0xffff, 0xffff, 0x611, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0x690, 0x693, 0x6a0, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0x6a3, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6aa, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6ad, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6b0, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6b3, 0x6b6, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6b9, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6be, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6c3, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0x6c6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6c9, 0x6d0, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6d3, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6d8, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0x6db, 0xffff, 0xffff, 0xffff, 0xffff, 0x6e0, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6e3, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6e6, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6e9, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0x700, 0x761, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0x776, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x783, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff +}; + +#define GET_LIGATURE_INDEX(ucs4) \ + (ucs4 < 0x3100 \ + ? (uc_ligature_trie[uc_ligature_trie[ucs4>>5] + (ucs4 & 0x1f)]) \ + : (ucs4 < 0x12000\ + ? uc_ligature_trie[uc_ligature_trie[((ucs4 - 0x3100)>>8) + 0x188] + (ucs4 & 0xff)]\ + : 0xffff)) + +static const unsigned short uc_ligature_map[] = { + 0x54, 0x41, 0xc0, 0x45, 0xc8, 0x49, 0xcc, 0x4e, + 0x1f8, 0x4f, 0xd2, 0x55, 0xd9, 0x57, 0x1e80, 0x59, + 0x1ef2, 0x61, 0xe0, 0x65, 0xe8, 0x69, 0xec, 0x6e, + 0x1f9, 0x6f, 0xf2, 0x75, 0xf9, 0x77, 0x1e81, 0x79, + 0x1ef3, 0xa8, 0x1fed, 0xc2, 0x1ea6, 0xca, 0x1ec0, 0xd4, + 0x1ed2, 0xdc, 0x1db, 0xe2, 0x1ea7, 0xea, 0x1ec1, 0xf4, + 0x1ed3, 0xfc, 0x1dc, 0x102, 0x1eb0, 0x103, 0x1eb1, 0x112, + 0x1e14, 0x113, 0x1e15, 0x14c, 0x1e50, 0x14d, 0x1e51, 0x1a0, + 0x1edc, 0x1a1, 0x1edd, 0x1af, 0x1eea, 0x1b0, 0x1eeb, 0x391, + 0x1fba, 0x395, 0x1fc8, 0x397, 0x1fca, 0x399, 0x1fda, 0x39f, + 0x1ff8, 0x3a5, 0x1fea, 0x3a9, 0x1ffa, 0x3b1, 0x1f70, 0x3b5, + 0x1f72, 0x3b7, 0x1f74, 0x3b9, 0x1f76, 0x3bf, 0x1f78, 0x3c5, + 0x1f7a, 0x3c9, 0x1f7c, 0x3ca, 0x1fd2, 0x3cb, 0x1fe2, 0x415, + 0x400, 0x418, 0x40d, 0x435, 0x450, 0x438, 0x45d, 0x1f00, + 0x1f02, 0x1f01, 0x1f03, 0x1f08, 0x1f0a, 0x1f09, 0x1f0b, 0x1f10, + 0x1f12, 0x1f11, 0x1f13, 0x1f18, 0x1f1a, 0x1f19, 0x1f1b, 0x1f20, + 0x1f22, 0x1f21, 0x1f23, 0x1f28, 0x1f2a, 0x1f29, 0x1f2b, 0x1f30, + 0x1f32, 0x1f31, 0x1f33, 0x1f38, 0x1f3a, 0x1f39, 0x1f3b, 0x1f40, + 0x1f42, 0x1f41, 0x1f43, 0x1f48, 0x1f4a, 0x1f49, 0x1f4b, 0x1f50, + 0x1f52, 0x1f51, 0x1f53, 0x1f59, 0x1f5b, 0x1f60, 0x1f62, 0x1f61, + 0x1f63, 0x1f68, 0x1f6a, 0x1f69, 0x1f6b, 0x1fbf, 0x1fcd, 0x1ffe, + 0x1fdd, 0x75, 0x41, 0xc1, 0x43, 0x106, 0x45, 0xc9, + 0x47, 0x1f4, 0x49, 0xcd, 0x4b, 0x1e30, 0x4c, 0x139, + 0x4d, 0x1e3e, 0x4e, 0x143, 0x4f, 0xd3, 0x50, 0x1e54, + 0x52, 0x154, 0x53, 0x15a, 0x55, 0xda, 0x57, 0x1e82, + 0x59, 0xdd, 0x5a, 0x179, 0x61, 0xe1, 0x63, 0x107, + 0x65, 0xe9, 0x67, 0x1f5, 0x69, 0xed, 0x6b, 0x1e31, + 0x6c, 0x13a, 0x6d, 0x1e3f, 0x6e, 0x144, 0x6f, 0xf3, + 0x70, 0x1e55, 0x72, 0x155, 0x73, 0x15b, 0x75, 0xfa, + 0x77, 0x1e83, 0x79, 0xfd, 0x7a, 0x17a, 0xa8, 0x385, + 0xc2, 0x1ea4, 0xc5, 0x1fa, 0xc6, 0x1fc, 0xc7, 0x1e08, + 0xca, 0x1ebe, 0xcf, 0x1e2e, 0xd4, 0x1ed0, 0xd5, 0x1e4c, + 0xd8, 0x1fe, 0xdc, 0x1d7, 0xe2, 0x1ea5, 0xe5, 0x1fb, + 0xe6, 0x1fd, 0xe7, 0x1e09, 0xea, 0x1ebf, 0xef, 0x1e2f, + 0xf4, 0x1ed1, 0xf5, 0x1e4d, 0xf8, 0x1ff, 0xfc, 0x1d8, + 0x102, 0x1eae, 0x103, 0x1eaf, 0x112, 0x1e16, 0x113, 0x1e17, + 0x14c, 0x1e52, 0x14d, 0x1e53, 0x168, 0x1e78, 0x169, 0x1e79, + 0x1a0, 0x1eda, 0x1a1, 0x1edb, 0x1af, 0x1ee8, 0x1b0, 0x1ee9, + 0x391, 0x386, 0x395, 0x388, 0x397, 0x389, 0x399, 0x38a, + 0x39f, 0x38c, 0x3a5, 0x38e, 0x3a9, 0x38f, 0x3b1, 0x3ac, + 0x3b5, 0x3ad, 0x3b7, 0x3ae, 0x3b9, 0x3af, 0x3bf, 0x3cc, + 0x3c5, 0x3cd, 0x3c9, 0x3ce, 0x3ca, 0x390, 0x3cb, 0x3b0, + 0x3d2, 0x3d3, 0x413, 0x403, 0x41a, 0x40c, 0x433, 0x453, + 0x43a, 0x45c, 0x1f00, 0x1f04, 0x1f01, 0x1f05, 0x1f08, 0x1f0c, + 0x1f09, 0x1f0d, 0x1f10, 0x1f14, 0x1f11, 0x1f15, 0x1f18, 0x1f1c, + 0x1f19, 0x1f1d, 0x1f20, 0x1f24, 0x1f21, 0x1f25, 0x1f28, 0x1f2c, + 0x1f29, 0x1f2d, 0x1f30, 0x1f34, 0x1f31, 0x1f35, 0x1f38, 0x1f3c, + 0x1f39, 0x1f3d, 0x1f40, 0x1f44, 0x1f41, 0x1f45, 0x1f48, 0x1f4c, + 0x1f49, 0x1f4d, 0x1f50, 0x1f54, 0x1f51, 0x1f55, 0x1f59, 0x1f5d, + 0x1f60, 0x1f64, 0x1f61, 0x1f65, 0x1f68, 0x1f6c, 0x1f69, 0x1f6d, + 0x1fbf, 0x1fce, 0x1ffe, 0x1fde, 0x20, 0x41, 0xc2, 0x43, + 0x108, 0x45, 0xca, 0x47, 0x11c, 0x48, 0x124, 0x49, + 0xce, 0x4a, 0x134, 0x4f, 0xd4, 0x53, 0x15c, 0x55, + 0xdb, 0x57, 0x174, 0x59, 0x176, 0x5a, 0x1e90, 0x61, + 0xe2, 0x63, 0x109, 0x65, 0xea, 0x67, 0x11d, 0x68, + 0x125, 0x69, 0xee, 0x6a, 0x135, 0x6f, 0xf4, 0x73, + 0x15d, 0x75, 0xfb, 0x77, 0x175, 0x79, 0x177, 0x7a, + 0x1e91, 0x1ea0, 0x1eac, 0x1ea1, 0x1ead, 0x1eb8, 0x1ec6, 0x1eb9, + 0x1ec7, 0x1ecc, 0x1ed8, 0x1ecd, 0x1ed9, 0x1c, 0x41, 0xc3, + 0x45, 0x1ebc, 0x49, 0x128, 0x4e, 0xd1, 0x4f, 0xd5, + 0x55, 0x168, 0x56, 0x1e7c, 0x59, 0x1ef8, 0x61, 0xe3, + 0x65, 0x1ebd, 0x69, 0x129, 0x6e, 0xf1, 0x6f, 0xf5, + 0x75, 0x169, 0x76, 0x1e7d, 0x79, 0x1ef9, 0xc2, 0x1eaa, + 0xca, 0x1ec4, 0xd4, 0x1ed6, 0xe2, 0x1eab, 0xea, 0x1ec5, + 0xf4, 0x1ed7, 0x102, 0x1eb4, 0x103, 0x1eb5, 0x1a0, 0x1ee0, + 0x1a1, 0x1ee1, 0x1af, 0x1eee, 0x1b0, 0x1eef, 0x2c, 0x41, + 0x100, 0x45, 0x112, 0x47, 0x1e20, 0x49, 0x12a, 0x4f, + 0x14c, 0x55, 0x16a, 0x59, 0x232, 0x61, 0x101, 0x65, + 0x113, 0x67, 0x1e21, 0x69, 0x12b, 0x6f, 0x14d, 0x75, + 0x16b, 0x79, 0x233, 0xc4, 0x1de, 0xc6, 0x1e2, 0xd5, + 0x22c, 0xd6, 0x22a, 0xdc, 0x1d5, 0xe4, 0x1df, 0xe6, + 0x1e3, 0xf5, 0x22d, 0xf6, 0x22b, 0xfc, 0x1d6, 0x1ea, + 0x1ec, 0x1eb, 0x1ed, 0x226, 0x1e0, 0x227, 0x1e1, 0x22e, + 0x230, 0x22f, 0x231, 0x391, 0x1fb9, 0x399, 0x1fd9, 0x3a5, + 0x1fe9, 0x3b1, 0x1fb1, 0x3b9, 0x1fd1, 0x3c5, 0x1fe1, 0x418, + 0x4e2, 0x423, 0x4ee, 0x438, 0x4e3, 0x443, 0x4ef, 0x1e36, + 0x1e38, 0x1e37, 0x1e39, 0x1e5a, 0x1e5c, 0x1e5b, 0x1e5d, 0x20, + 0x41, 0x102, 0x45, 0x114, 0x47, 0x11e, 0x49, 0x12c, + 0x4f, 0x14e, 0x55, 0x16c, 0x61, 0x103, 0x65, 0x115, + 0x67, 0x11f, 0x69, 0x12d, 0x6f, 0x14f, 0x75, 0x16d, + 0x228, 0x1e1c, 0x229, 0x1e1d, 0x391, 0x1fb8, 0x399, 0x1fd8, + 0x3a5, 0x1fe8, 0x3b1, 0x1fb0, 0x3b9, 0x1fd0, 0x3c5, 0x1fe0, + 0x410, 0x4d0, 0x415, 0x4d6, 0x416, 0x4c1, 0x418, 0x419, + 0x423, 0x40e, 0x430, 0x4d1, 0x435, 0x4d7, 0x436, 0x4c2, + 0x438, 0x439, 0x443, 0x45e, 0x1ea0, 0x1eb6, 0x1ea1, 0x1eb7, + 0x2e, 0x41, 0x226, 0x42, 0x1e02, 0x43, 0x10a, 0x44, + 0x1e0a, 0x45, 0x116, 0x46, 0x1e1e, 0x47, 0x120, 0x48, + 0x1e22, 0x49, 0x130, 0x4d, 0x1e40, 0x4e, 0x1e44, 0x4f, + 0x22e, 0x50, 0x1e56, 0x52, 0x1e58, 0x53, 0x1e60, 0x54, + 0x1e6a, 0x57, 0x1e86, 0x58, 0x1e8a, 0x59, 0x1e8e, 0x5a, + 0x17b, 0x61, 0x227, 0x62, 0x1e03, 0x63, 0x10b, 0x64, + 0x1e0b, 0x65, 0x117, 0x66, 0x1e1f, 0x67, 0x121, 0x68, + 0x1e23, 0x6d, 0x1e41, 0x6e, 0x1e45, 0x6f, 0x22f, 0x70, + 0x1e57, 0x72, 0x1e59, 0x73, 0x1e61, 0x74, 0x1e6b, 0x77, + 0x1e87, 0x78, 0x1e8b, 0x79, 0x1e8f, 0x7a, 0x17c, 0x15a, + 0x1e64, 0x15b, 0x1e65, 0x160, 0x1e66, 0x161, 0x1e67, 0x17f, + 0x1e9b, 0x1e62, 0x1e68, 0x1e63, 0x1e69, 0x36, 0x41, 0xc4, + 0x45, 0xcb, 0x48, 0x1e26, 0x49, 0xcf, 0x4f, 0xd6, + 0x55, 0xdc, 0x57, 0x1e84, 0x58, 0x1e8c, 0x59, 0x178, + 0x61, 0xe4, 0x65, 0xeb, 0x68, 0x1e27, 0x69, 0xef, + 0x6f, 0xf6, 0x74, 0x1e97, 0x75, 0xfc, 0x77, 0x1e85, + 0x78, 0x1e8d, 0x79, 0xff, 0xd5, 0x1e4e, 0xf5, 0x1e4f, + 0x16a, 0x1e7a, 0x16b, 0x1e7b, 0x399, 0x3aa, 0x3a5, 0x3ab, + 0x3b9, 0x3ca, 0x3c5, 0x3cb, 0x3d2, 0x3d4, 0x406, 0x407, + 0x410, 0x4d2, 0x415, 0x401, 0x416, 0x4dc, 0x417, 0x4de, + 0x418, 0x4e4, 0x41e, 0x4e6, 0x423, 0x4f0, 0x427, 0x4f4, + 0x42b, 0x4f8, 0x42d, 0x4ec, 0x430, 0x4d3, 0x435, 0x451, + 0x436, 0x4dd, 0x437, 0x4df, 0x438, 0x4e5, 0x43e, 0x4e7, + 0x443, 0x4f1, 0x447, 0x4f5, 0x44b, 0x4f9, 0x44d, 0x4ed, + 0x456, 0x457, 0x4d8, 0x4da, 0x4d9, 0x4db, 0x4e8, 0x4ea, + 0x4e9, 0x4eb, 0x18, 0x41, 0x1ea2, 0x45, 0x1eba, 0x49, + 0x1ec8, 0x4f, 0x1ece, 0x55, 0x1ee6, 0x59, 0x1ef6, 0x61, + 0x1ea3, 0x65, 0x1ebb, 0x69, 0x1ec9, 0x6f, 0x1ecf, 0x75, + 0x1ee7, 0x79, 0x1ef7, 0xc2, 0x1ea8, 0xca, 0x1ec2, 0xd4, + 0x1ed4, 0xe2, 0x1ea9, 0xea, 0x1ec3, 0xf4, 0x1ed5, 0x102, + 0x1eb2, 0x103, 0x1eb3, 0x1a0, 0x1ede, 0x1a1, 0x1edf, 0x1af, + 0x1eec, 0x1b0, 0x1eed, 0x6, 0x41, 0xc5, 0x55, 0x16e, + 0x61, 0xe5, 0x75, 0x16f, 0x77, 0x1e98, 0x79, 0x1e99, + 0x6, 0x4f, 0x150, 0x55, 0x170, 0x6f, 0x151, 0x75, + 0x171, 0x423, 0x4f2, 0x443, 0x4f3, 0x25, 0x41, 0x1cd, + 0x43, 0x10c, 0x44, 0x10e, 0x45, 0x11a, 0x47, 0x1e6, + 0x48, 0x21e, 0x49, 0x1cf, 0x4b, 0x1e8, 0x4c, 0x13d, + 0x4e, 0x147, 0x4f, 0x1d1, 0x52, 0x158, 0x53, 0x160, + 0x54, 0x164, 0x55, 0x1d3, 0x5a, 0x17d, 0x61, 0x1ce, + 0x63, 0x10d, 0x64, 0x10f, 0x65, 0x11b, 0x67, 0x1e7, + 0x68, 0x21f, 0x69, 0x1d0, 0x6a, 0x1f0, 0x6b, 0x1e9, + 0x6c, 0x13e, 0x6e, 0x148, 0x6f, 0x1d2, 0x72, 0x159, + 0x73, 0x161, 0x74, 0x165, 0x75, 0x1d4, 0x7a, 0x17e, + 0xdc, 0x1d9, 0xfc, 0x1da, 0x1b7, 0x1ee, 0x292, 0x1ef, + 0xe, 0x41, 0x200, 0x45, 0x204, 0x49, 0x208, 0x4f, + 0x20c, 0x52, 0x210, 0x55, 0x214, 0x61, 0x201, 0x65, + 0x205, 0x69, 0x209, 0x6f, 0x20d, 0x72, 0x211, 0x75, + 0x215, 0x474, 0x476, 0x475, 0x477, 0xc, 0x41, 0x202, + 0x45, 0x206, 0x49, 0x20a, 0x4f, 0x20e, 0x52, 0x212, + 0x55, 0x216, 0x61, 0x203, 0x65, 0x207, 0x69, 0x20b, + 0x6f, 0x20f, 0x72, 0x213, 0x75, 0x217, 0xe, 0x391, + 0x1f08, 0x395, 0x1f18, 0x397, 0x1f28, 0x399, 0x1f38, 0x39f, + 0x1f48, 0x3a9, 0x1f68, 0x3b1, 0x1f00, 0x3b5, 0x1f10, 0x3b7, + 0x1f20, 0x3b9, 0x1f30, 0x3bf, 0x1f40, 0x3c1, 0x1fe4, 0x3c5, + 0x1f50, 0x3c9, 0x1f60, 0x10, 0x391, 0x1f09, 0x395, 0x1f19, + 0x397, 0x1f29, 0x399, 0x1f39, 0x39f, 0x1f49, 0x3a1, 0x1fec, + 0x3a5, 0x1f59, 0x3a9, 0x1f69, 0x3b1, 0x1f01, 0x3b5, 0x1f11, + 0x3b7, 0x1f21, 0x3b9, 0x1f31, 0x3bf, 0x1f41, 0x3c1, 0x1fe5, + 0x3c5, 0x1f51, 0x3c9, 0x1f61, 0x4, 0x4f, 0x1a0, 0x55, + 0x1af, 0x6f, 0x1a1, 0x75, 0x1b0, 0x2a, 0x41, 0x1ea0, + 0x42, 0x1e04, 0x44, 0x1e0c, 0x45, 0x1eb8, 0x48, 0x1e24, + 0x49, 0x1eca, 0x4b, 0x1e32, 0x4c, 0x1e36, 0x4d, 0x1e42, + 0x4e, 0x1e46, 0x4f, 0x1ecc, 0x52, 0x1e5a, 0x53, 0x1e62, + 0x54, 0x1e6c, 0x55, 0x1ee4, 0x56, 0x1e7e, 0x57, 0x1e88, + 0x59, 0x1ef4, 0x5a, 0x1e92, 0x61, 0x1ea1, 0x62, 0x1e05, + 0x64, 0x1e0d, 0x65, 0x1eb9, 0x68, 0x1e25, 0x69, 0x1ecb, + 0x6b, 0x1e33, 0x6c, 0x1e37, 0x6d, 0x1e43, 0x6e, 0x1e47, + 0x6f, 0x1ecd, 0x72, 0x1e5b, 0x73, 0x1e63, 0x74, 0x1e6d, + 0x75, 0x1ee5, 0x76, 0x1e7f, 0x77, 0x1e89, 0x79, 0x1ef5, + 0x7a, 0x1e93, 0x1a0, 0x1ee2, 0x1a1, 0x1ee3, 0x1af, 0x1ef0, + 0x1b0, 0x1ef1, 0x2, 0x55, 0x1e72, 0x75, 0x1e73, 0x2, + 0x41, 0x1e00, 0x61, 0x1e01, 0x4, 0x53, 0x218, 0x54, + 0x21a, 0x73, 0x219, 0x74, 0x21b, 0x16, 0x43, 0xc7, + 0x44, 0x1e10, 0x45, 0x228, 0x47, 0x122, 0x48, 0x1e28, + 0x4b, 0x136, 0x4c, 0x13b, 0x4e, 0x145, 0x52, 0x156, + 0x53, 0x15e, 0x54, 0x162, 0x63, 0xe7, 0x64, 0x1e11, + 0x65, 0x229, 0x67, 0x123, 0x68, 0x1e29, 0x6b, 0x137, + 0x6c, 0x13c, 0x6e, 0x146, 0x72, 0x157, 0x73, 0x15f, + 0x74, 0x163, 0xa, 0x41, 0x104, 0x45, 0x118, 0x49, + 0x12e, 0x4f, 0x1ea, 0x55, 0x172, 0x61, 0x105, 0x65, + 0x119, 0x69, 0x12f, 0x6f, 0x1eb, 0x75, 0x173, 0xc, + 0x44, 0x1e12, 0x45, 0x1e18, 0x4c, 0x1e3c, 0x4e, 0x1e4a, + 0x54, 0x1e70, 0x55, 0x1e76, 0x64, 0x1e13, 0x65, 0x1e19, + 0x6c, 0x1e3d, 0x6e, 0x1e4b, 0x74, 0x1e71, 0x75, 0x1e77, + 0x2, 0x48, 0x1e2a, 0x68, 0x1e2b, 0x6, 0x45, 0x1e1a, + 0x49, 0x1e2c, 0x55, 0x1e74, 0x65, 0x1e1b, 0x69, 0x1e2d, + 0x75, 0x1e75, 0x11, 0x42, 0x1e06, 0x44, 0x1e0e, 0x4b, + 0x1e34, 0x4c, 0x1e3a, 0x4e, 0x1e48, 0x52, 0x1e5e, 0x54, + 0x1e6e, 0x5a, 0x1e94, 0x62, 0x1e07, 0x64, 0x1e0f, 0x68, + 0x1e96, 0x6b, 0x1e35, 0x6c, 0x1e3b, 0x6e, 0x1e49, 0x72, + 0x1e5f, 0x74, 0x1e6f, 0x7a, 0x1e95, 0x2c, 0x3c, 0x226e, + 0x3d, 0x2260, 0x3e, 0x226f, 0x2190, 0x219a, 0x2192, 0x219b, + 0x2194, 0x21ae, 0x21d0, 0x21cd, 0x21d2, 0x21cf, 0x21d4, 0x21ce, + 0x2203, 0x2204, 0x2208, 0x2209, 0x220b, 0x220c, 0x2223, 0x2224, + 0x2225, 0x2226, 0x223c, 0x2241, 0x2243, 0x2244, 0x2245, 0x2247, + 0x2248, 0x2249, 0x224d, 0x226d, 0x2261, 0x2262, 0x2264, 0x2270, + 0x2265, 0x2271, 0x2272, 0x2274, 0x2273, 0x2275, 0x2276, 0x2278, + 0x2277, 0x2279, 0x227a, 0x2280, 0x227b, 0x2281, 0x227c, 0x22e0, + 0x227d, 0x22e1, 0x2282, 0x2284, 0x2283, 0x2285, 0x2286, 0x2288, + 0x2287, 0x2289, 0x2291, 0x22e2, 0x2292, 0x22e3, 0x22a2, 0x22ac, + 0x22a8, 0x22ad, 0x22a9, 0x22ae, 0x22ab, 0x22af, 0x22b2, 0x22ea, + 0x22b3, 0x22eb, 0x22b4, 0x22ec, 0x22b5, 0x22ed, 0x1d, 0xa8, + 0x1fc1, 0x3b1, 0x1fb6, 0x3b7, 0x1fc6, 0x3b9, 0x1fd6, 0x3c5, + 0x1fe6, 0x3c9, 0x1ff6, 0x3ca, 0x1fd7, 0x3cb, 0x1fe7, 0x1f00, + 0x1f06, 0x1f01, 0x1f07, 0x1f08, 0x1f0e, 0x1f09, 0x1f0f, 0x1f20, + 0x1f26, 0x1f21, 0x1f27, 0x1f28, 0x1f2e, 0x1f29, 0x1f2f, 0x1f30, + 0x1f36, 0x1f31, 0x1f37, 0x1f38, 0x1f3e, 0x1f39, 0x1f3f, 0x1f50, + 0x1f56, 0x1f51, 0x1f57, 0x1f59, 0x1f5f, 0x1f60, 0x1f66, 0x1f61, + 0x1f67, 0x1f68, 0x1f6e, 0x1f69, 0x1f6f, 0x1fbf, 0x1fcf, 0x1ffe, + 0x1fdf, 0x3f, 0x391, 0x1fbc, 0x397, 0x1fcc, 0x3a9, 0x1ffc, + 0x3ac, 0x1fb4, 0x3ae, 0x1fc4, 0x3b1, 0x1fb3, 0x3b7, 0x1fc3, + 0x3c9, 0x1ff3, 0x3ce, 0x1ff4, 0x1f00, 0x1f80, 0x1f01, 0x1f81, + 0x1f02, 0x1f82, 0x1f03, 0x1f83, 0x1f04, 0x1f84, 0x1f05, 0x1f85, + 0x1f06, 0x1f86, 0x1f07, 0x1f87, 0x1f08, 0x1f88, 0x1f09, 0x1f89, + 0x1f0a, 0x1f8a, 0x1f0b, 0x1f8b, 0x1f0c, 0x1f8c, 0x1f0d, 0x1f8d, + 0x1f0e, 0x1f8e, 0x1f0f, 0x1f8f, 0x1f20, 0x1f90, 0x1f21, 0x1f91, + 0x1f22, 0x1f92, 0x1f23, 0x1f93, 0x1f24, 0x1f94, 0x1f25, 0x1f95, + 0x1f26, 0x1f96, 0x1f27, 0x1f97, 0x1f28, 0x1f98, 0x1f29, 0x1f99, + 0x1f2a, 0x1f9a, 0x1f2b, 0x1f9b, 0x1f2c, 0x1f9c, 0x1f2d, 0x1f9d, + 0x1f2e, 0x1f9e, 0x1f2f, 0x1f9f, 0x1f60, 0x1fa0, 0x1f61, 0x1fa1, + 0x1f62, 0x1fa2, 0x1f63, 0x1fa3, 0x1f64, 0x1fa4, 0x1f65, 0x1fa5, + 0x1f66, 0x1fa6, 0x1f67, 0x1fa7, 0x1f68, 0x1fa8, 0x1f69, 0x1fa9, + 0x1f6a, 0x1faa, 0x1f6b, 0x1fab, 0x1f6c, 0x1fac, 0x1f6d, 0x1fad, + 0x1f6e, 0x1fae, 0x1f6f, 0x1faf, 0x1f70, 0x1fb2, 0x1f74, 0x1fc2, + 0x1f7c, 0x1ff2, 0x1fb6, 0x1fb7, 0x1fc6, 0x1fc7, 0x1ff6, 0x1ff7, + 0x1, 0x627, 0x622, 0x6, 0x627, 0x623, 0x648, 0x624, + 0x64a, 0x626, 0x6c1, 0x6c2, 0x6d2, 0x6d3, 0x6d5, 0x6c0, + 0x1, 0x627, 0x625, 0x3, 0x928, 0x929, 0x930, 0x931, + 0x933, 0x934, 0x1, 0x9c7, 0x9cb, 0x1, 0x9c7, 0x9cc, + 0x1, 0xb47, 0xb4b, 0x1, 0xb47, 0xb48, 0x1, 0xb47, + 0xb4c, 0x2, 0xbc6, 0xbca, 0xbc7, 0xbcb, 0x2, 0xb92, + 0xb94, 0xbc6, 0xbcc, 0x1, 0xc46, 0xc48, 0x1, 0xcc6, + 0xcca, 0x3, 0xcbf, 0xcc0, 0xcc6, 0xcc7, 0xcca, 0xccb, + 0x1, 0xcc6, 0xcc8, 0x2, 0xd46, 0xd4a, 0xd47, 0xd4b, + 0x1, 0xd46, 0xd4c, 0x2, 0xdd9, 0xdda, 0xddc, 0xddd, + 0x1, 0xdd9, 0xddc, 0x1, 0xdd9, 0xdde, 0x1, 0x1025, + 0x1026, 0xb, 0x1b05, 0x1b06, 0x1b07, 0x1b08, 0x1b09, 0x1b0a, + 0x1b0b, 0x1b0c, 0x1b0d, 0x1b0e, 0x1b11, 0x1b12, 0x1b3a, 0x1b3b, + 0x1b3c, 0x1b3d, 0x1b3e, 0x1b40, 0x1b3f, 0x1b41, 0x1b42, 0x1b43, + 0x30, 0x3046, 0x3094, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, + 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, + 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, + 0x3060, 0x3061, 0x3062, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, + 0x3069, 0x306f, 0x3070, 0x3072, 0x3073, 0x3075, 0x3076, 0x3078, + 0x3079, 0x307b, 0x307c, 0x309d, 0x309e, 0x30a6, 0x30f4, 0x30ab, + 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, 0x30b1, 0x30b2, 0x30b3, + 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, 0x30b9, 0x30ba, 0x30bb, + 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, 0x30c1, 0x30c2, 0x30c4, + 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9, 0x30cf, 0x30d0, 0x30d2, + 0x30d3, 0x30d5, 0x30d6, 0x30d8, 0x30d9, 0x30db, 0x30dc, 0x30ef, + 0x30f7, 0x30f0, 0x30f8, 0x30f1, 0x30f9, 0x30f2, 0x30fa, 0x30fd, + 0x30fe, 0xa, 0x306f, 0x3071, 0x3072, 0x3074, 0x3075, 0x3077, + 0x3078, 0x307a, 0x307b, 0x307d, 0x30cf, 0x30d1, 0x30d2, 0x30d4, + 0x30d5, 0x30d7, 0x30d8, 0x30da, 0x30db, 0x30dd, 0x3, 0xd804, + 0xdc99, 0xd804, 0xdc9a, 0xd804, 0xdc9b, 0xd804, 0xdc9c, 0xd804, + 0xdca5, 0xd804, 0xdcab, 0x2, 0xd804, 0xdd31, 0xd804, 0xdd2e, + 0xd804, 0xdd32, 0xd804, 0xdd2f +}; + + +struct NormalizationCorrection { + uint ucs4; + uint old_mapping; + int version; +}; + +static const NormalizationCorrection uc_normalization_corrections[] = { + { 0xf951, 0x96fb, 6 }, + { 0x2f868, 0x2136a, 7 }, + { 0x2f874, 0x5f33, 7 }, + { 0x2f91f, 0x43ab, 7 }, + { 0x2f95f, 0x7aae, 7 }, + { 0x2f9bf, 0x4d57, 7 }, +}; + +enum { NumNormalizationCorrections = 6 }; +enum { NormalizationCorrectionsVersionMax = 7 }; + +} // namespace QUnicodeTables + +using namespace QUnicodeTables; + +QT_END_NAMESPACE diff --git a/Telegram/_qt_5_3_1_patch/qtbase/src/gui/image/qbmphandler.cpp b/Telegram/_qt_5_4_0_patch/qtbase/src/gui/image/qbmphandler.cpp similarity index 94% rename from Telegram/_qt_5_3_1_patch/qtbase/src/gui/image/qbmphandler.cpp rename to Telegram/_qt_5_4_0_patch/qtbase/src/gui/image/qbmphandler.cpp index 9f7da1015..f293ef9cc 100644 --- a/Telegram/_qt_5_3_1_patch/qtbase/src/gui/image/qbmphandler.cpp +++ b/Telegram/_qt_5_4_0_patch/qtbase/src/gui/image/qbmphandler.cpp @@ -1,40 +1,32 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the QtGui module of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:LGPL21$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information ** use the contact form at http://qt.digia.com/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception +** rights. These rights are described in the Digia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** ** $QT_END_LICENSE$ ** ****************************************************************************/ @@ -792,24 +784,19 @@ bool QBmpHandler::write(const QImage &img) QImage image; switch (img.format()) { - case QImage::Format_ARGB8565_Premultiplied: - case QImage::Format_ARGB8555_Premultiplied: - case QImage::Format_ARGB6666_Premultiplied: - case QImage::Format_ARGB4444_Premultiplied: - case QImage::Format_RGBA8888: - case QImage::Format_RGBA8888_Premultiplied: - image = img.convertToFormat(QImage::Format_ARGB32); - break; - case QImage::Format_RGB16: - case QImage::Format_RGB888: - case QImage::Format_RGB666: - case QImage::Format_RGB555: - case QImage::Format_RGB444: - case QImage::Format_RGBX8888: - image = img.convertToFormat(QImage::Format_RGB32); + case QImage::Format_Mono: + case QImage::Format_MonoLSB: + case QImage::Format_Indexed8: + case QImage::Format_RGB32: + case QImage::Format_ARGB32: + image = img; break; default: - image = img; + if (img.hasAlphaChannel()) + image = img.convertToFormat(QImage::Format_ARGB32); + else + image = img.convertToFormat(QImage::Format_RGB32); + break; } QIODevice *d = device(); diff --git a/Telegram/_qt_5_3_1_patch/qtbase/src/gui/kernel/qplatformdialoghelper.h b/Telegram/_qt_5_4_0_patch/qtbase/src/gui/kernel/qplatformdialoghelper.h similarity index 92% rename from Telegram/_qt_5_3_1_patch/qtbase/src/gui/kernel/qplatformdialoghelper.h rename to Telegram/_qt_5_4_0_patch/qtbase/src/gui/kernel/qplatformdialoghelper.h index 567a3225d..00fccad7d 100644 --- a/Telegram/_qt_5_3_1_patch/qtbase/src/gui/kernel/qplatformdialoghelper.h +++ b/Telegram/_qt_5_4_0_patch/qtbase/src/gui/kernel/qplatformdialoghelper.h @@ -1,40 +1,32 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the QtGui module of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:LGPL21$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information ** use the contact form at http://qt.digia.com/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception +** rights. These rights are described in the Digia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/Telegram/_qt_5_3_1_patch/qtbase/src/gui/painting/qpaintengine_p.h b/Telegram/_qt_5_4_0_patch/qtbase/src/gui/painting/qpaintengine_p.h similarity index 76% rename from Telegram/_qt_5_3_1_patch/qtbase/src/gui/painting/qpaintengine_p.h rename to Telegram/_qt_5_4_0_patch/qtbase/src/gui/painting/qpaintengine_p.h index 642e5b797..5e823183d 100644 --- a/Telegram/_qt_5_3_1_patch/qtbase/src/gui/painting/qpaintengine_p.h +++ b/Telegram/_qt_5_4_0_patch/qtbase/src/gui/painting/qpaintengine_p.h @@ -1,40 +1,32 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the QtGui module of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:LGPL21$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information ** use the contact form at http://qt.digia.com/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception +** rights. These rights are described in the Digia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/Telegram/_qt_5_3_1_patch/qtbase/src/gui/text/qtextlayout.h b/Telegram/_qt_5_4_0_patch/qtbase/src/gui/text/qtextlayout.h similarity index 86% rename from Telegram/_qt_5_3_1_patch/qtbase/src/gui/text/qtextlayout.h rename to Telegram/_qt_5_4_0_patch/qtbase/src/gui/text/qtextlayout.h index 2209490ef..47972d3a0 100644 --- a/Telegram/_qt_5_3_1_patch/qtbase/src/gui/text/qtextlayout.h +++ b/Telegram/_qt_5_4_0_patch/qtbase/src/gui/text/qtextlayout.h @@ -1,40 +1,32 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the QtGui module of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:LGPL21$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information ** use the contact form at http://qt.digia.com/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception +** rights. These rights are described in the Digia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** ** $QT_END_LICENSE$ ** ****************************************************************************/ diff --git a/Telegram/_qt_5_3_1_patch/qtbase/src/network/socket/qnativesocketengine_win.cpp b/Telegram/_qt_5_4_0_patch/qtbase/src/network/socket/qnativesocketengine_win.cpp similarity index 97% rename from Telegram/_qt_5_3_1_patch/qtbase/src/network/socket/qnativesocketengine_win.cpp rename to Telegram/_qt_5_4_0_patch/qtbase/src/network/socket/qnativesocketengine_win.cpp index b0e90e198..f7787c3e3 100644 --- a/Telegram/_qt_5_3_1_patch/qtbase/src/network/socket/qnativesocketengine_win.cpp +++ b/Telegram/_qt_5_4_0_patch/qtbase/src/network/socket/qnativesocketengine_win.cpp @@ -1,40 +1,32 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the QtNetwork module of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:LGPL21$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information ** use the contact form at http://qt.digia.com/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception +** rights. These rights are described in the Digia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** ** $QT_END_LICENSE$ ** ****************************************************************************/ @@ -1154,7 +1146,7 @@ bool QNativeSocketEnginePrivate::nativeHasPendingDatagrams() const int err = WSAGetLastError(); if (ret == SOCKET_ERROR && err != WSAEMSGSIZE) { WS_ERROR_DEBUG(err); - if (err == WSAECONNRESET) { + if (err == WSAECONNRESET || err == WSAENETRESET) { // Discard error message to prevent QAbstractSocket from // getting this message repeatedly after reenabling the // notifiers. @@ -1177,7 +1169,7 @@ bool QNativeSocketEnginePrivate::nativeHasPendingDatagrams() const timeout.tv_sec = 0; timeout.tv_usec = 5000; int available = ::select(1, &readS, 0, 0, &timeout); - result = available > 0 ? true : false; + result = available > 0; #endif #if defined (QNATIVESOCKETENGINE_DEBUG) diff --git a/Telegram/_qt_5_3_1_patch/qtbase/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp b/Telegram/_qt_5_4_0_patch/qtbase/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp similarity index 84% rename from Telegram/_qt_5_3_1_patch/qtbase/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp rename to Telegram/_qt_5_4_0_patch/qtbase/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp index 94c4c1d03..efa70140a 100644 --- a/Telegram/_qt_5_3_1_patch/qtbase/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp +++ b/Telegram/_qt_5_4_0_patch/qtbase/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp @@ -1,40 +1,32 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the plugins of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:LGPL21$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information ** use the contact form at http://qt.digia.com/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception +** rights. These rights are described in the Digia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** ** $QT_END_LICENSE$ ** ****************************************************************************/ @@ -96,8 +88,9 @@ void QBasicFontDatabase::populateFontDatabase() QString fontpath = fontDir(); if(!QFile::exists(fontpath)) { - qFatal("QFontDatabase: Cannot find font directory %s - is Qt installed correctly?", + qWarning("QFontDatabase: Cannot find font directory %s - is Qt installed correctly?", qPrintable(fontpath)); + return; } QDir dir(fontpath); @@ -238,30 +231,30 @@ extern FT_Library qt_getFreetype(); /* documentation is in freetype.h */ FT_Error __ft_New_Face(FT_Library library, const char* pathname, FT_Long face_index, FT_Face *aface) { - FT_Open_Args args; + FT_Open_Args args; - /* test for valid `library' and `aface' delayed to FT_Open_Face() */ - if ( !pathname ) - return FT_Err_Invalid_Argument; + /* test for valid `library' and `aface' delayed to FT_Open_Face() */ + if (!pathname) + return FT_Err_Invalid_Argument; - FT_Parameter params[2]; - params[0].tag = FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY; - params[0].data = 0; - params[1].tag = FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY; - params[1].data = 0; - args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; - args.pathname = (char*)pathname; - args.stream = NULL; - args.num_params = 2; - args.params = params; + FT_Parameter params[2]; + params[0].tag = FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY; + params[0].data = 0; + params[1].tag = FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY; + params[1].data = 0; + args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; + args.pathname = (char*)pathname; + args.stream = NULL; + args.num_params = 2; + args.params = params; - return FT_Open_Face( library, &args, face_index, aface ); + return FT_Open_Face(library, &args, face_index, aface); } #else FT_Error __ft_New_Face(FT_Library library, const char* pathname, FT_Long face_index, FT_Face *aface) { - return FT_New_Face(library, pathname, face_index, aface); + return FT_New_Face(library, pathname, face_index, aface); } #endif /* defined( FT_MACINTOSH ) && !defined( DARWIN_NO_CARBON ) */ @@ -269,25 +262,25 @@ FT_Error __ft_New_Face(FT_Library library, const char* pathname, FT_Long face_in /* documentation is in freetype.h */ FT_Error __ft_New_Memory_Face(FT_Library library, const FT_Byte* file_base, FT_Long file_size, FT_Long face_index, FT_Face *aface) { - FT_Open_Args args; + FT_Open_Args args; - /* test for valid `library' and `face' delayed to FT_Open_Face() */ - if ( !file_base ) - return FT_Err_Invalid_Argument; + /* test for valid `library' and `face' delayed to FT_Open_Face() */ + if (!file_base) + return FT_Err_Invalid_Argument; - FT_Parameter params[2]; - params[0].tag = FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY; - params[0].data = 0; - params[1].tag = FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY; - params[1].data = 0; - args.flags = FT_OPEN_MEMORY | FT_OPEN_PARAMS; - args.memory_base = file_base; - args.memory_size = file_size; - args.stream = NULL; - args.num_params = 2; - args.params = params; + FT_Parameter params[2]; + params[0].tag = FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY; + params[0].data = 0; + params[1].tag = FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY; + params[1].data = 0; + args.flags = FT_OPEN_MEMORY | FT_OPEN_PARAMS; + args.memory_base = file_base; + args.memory_size = file_size; + args.stream = NULL; + args.num_params = 2; + args.params = params; - return FT_Open_Face( library, &args, face_index, aface ); + return FT_Open_Face(library, &args, face_index, aface); } // end @@ -356,10 +349,16 @@ QStringList QBasicFontDatabase::addTTFile(const QByteArray &fontData, const QByt if (os2->usWeightClass == 0) ; + else if (os2->usWeightClass < 150) + weight = qt_thinFontWeight; + else if (os2->usWeightClass < 250) + weight = qt_extralightFontWeight; else if (os2->usWeightClass < 350) weight = QFont::Light; else if (os2->usWeightClass < 450) weight = QFont::Normal; + else if (os2->usWeightClass < 550) + weight = qt_mediumFontWeight; else if (os2->usWeightClass < 650) weight = QFont::DemiBold; else if (os2->usWeightClass < 750) @@ -369,10 +368,16 @@ QStringList QBasicFontDatabase::addTTFile(const QByteArray &fontData, const QByt if (os2->panose[2] >= 2) { int w = os2->panose[2]; - if (w <= 3) + if (w <= 1) + weight = qt_thinFontWeight; + else if (w <= 2) + weight = qt_extralightFontWeight; + else if (w <= 3) weight = QFont::Light; else if (w <= 5) weight = QFont::Normal; + else if (w <= 6) + weight = qt_mediumFontWeight; else if (w <= 7) weight = QFont::DemiBold; else if (w <= 8) diff --git a/Telegram/_qt_5_3_1_patch/qtbase/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm b/Telegram/_qt_5_4_0_patch/qtbase/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm similarity index 70% rename from Telegram/_qt_5_3_1_patch/qtbase/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm rename to Telegram/_qt_5_4_0_patch/qtbase/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm index ffaa71e43..fe87ca137 100644 --- a/Telegram/_qt_5_3_1_patch/qtbase/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm +++ b/Telegram/_qt_5_4_0_patch/qtbase/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm @@ -52,6 +52,7 @@ #include "qfontengine_coretext_p.h" #include #include +#include QT_BEGIN_NAMESPACE @@ -200,7 +201,7 @@ void QCoreTextFontDatabase::populateFontDatabase() QString familyName = QCFString::toQString(familyNameRef); // Don't populate internal fonts - if (familyName.startsWith(QLatin1Char('.')) || familyName == QStringLiteral("LastResort")) + if (familyName.startsWith(QLatin1Char('.')) || familyName == QLatin1String("LastResort")) continue; QPlatformFontDatabase::registerFontFamily(familyName); @@ -211,13 +212,20 @@ void QCoreTextFontDatabase::populateFontDatabase() QPlatformFontDatabase::registerAliasToFontFamily(familyName, localizedFamilyName); #endif } + + // Force creating the theme fonts to get the descriptors in m_systemFontDescriptors + if (m_themeFonts.isEmpty()) + (void)themeFonts(); + + Q_FOREACH (CTFontDescriptorRef fontDesc, m_systemFontDescriptors) + populateFromDescriptor(fontDesc); } void QCoreTextFontDatabase::populateFamily(const QString &familyName) { - CFMutableDictionaryRef attributes = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + QCFType attributes = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); CFDictionaryAddValue(attributes, kCTFontFamilyNameAttribute, QCFString(familyName)); - CTFontDescriptorRef nameOnlyDescriptor = CTFontDescriptorCreateWithAttributes(attributes); + QCFType nameOnlyDescriptor = CTFontDescriptorCreateWithAttributes(attributes); // A single family might match several different fonts with different styles eg. QCFType matchingFonts = (CFArrayRef) CTFontDescriptorCreateMatchingFontDescriptors(nameOnlyDescriptor, 0); @@ -231,61 +239,107 @@ void QCoreTextFontDatabase::populateFamily(const QString &familyName) populateFromDescriptor(CTFontDescriptorRef(CFArrayGetValueAtIndex(matchingFonts, i))); } -void QCoreTextFontDatabase::populateFromDescriptor(CTFontDescriptorRef font) +struct FontDescription { + QCFString familyName; + QCFString styleName; + QString foundryName; + QFont::Weight weight; + QFont::Style style; + QFont::Stretch stretch; + int pixelSize; + bool fixedPitch; + QSupportedWritingSystems writingSystems; +}; + +static void getFontDescription(CTFontDescriptorRef font, FontDescription *fd) { - QString foundryName = QStringLiteral("CoreText"); - QCFString familyName = (CFStringRef) CTFontDescriptorCopyAttribute(font, kCTFontFamilyNameAttribute); - QCFString _displayName = (CFStringRef) CTFontDescriptorCopyAttribute(font, kCTFontDisplayNameAttribute); - if (_displayName == QStringLiteral("Open Sans Semibold")) { - familyName = _displayName; - } - QCFString styleName = (CFStringRef)CTFontDescriptorCopyAttribute(font, kCTFontStyleNameAttribute); QCFType styles = (CFDictionaryRef) CTFontDescriptorCopyAttribute(font, kCTFontTraitsAttribute); - QFont::Weight weight = QFont::Normal; - QFont::Style style = QFont::StyleNormal; - QFont::Stretch stretch = QFont::Unstretched; - bool fixedPitch = false; + + fd->foundryName = QStringLiteral("CoreText"); + fd->familyName = (CFStringRef) CTFontDescriptorCopyAttribute(font, kCTFontFamilyNameAttribute); + QCFString _displayName = (CFStringRef) CTFontDescriptorCopyAttribute(font, kCTFontDisplayNameAttribute); + if (_displayName == QStringLiteral("Open Sans Semibold")) { + fd->familyName = _displayName; + } + fd->styleName = (CFStringRef)CTFontDescriptorCopyAttribute(font, kCTFontStyleNameAttribute); + fd->weight = QFont::Normal; + fd->style = QFont::StyleNormal; + fd->stretch = QFont::Unstretched; + fd->fixedPitch = false; + + if (QCFType tempFont = CTFontCreateWithFontDescriptor(font, 0.0, 0)) { + uint length = 0; + uint tag = MAKE_TAG('O', 'S', '/', '2'); + CTFontRef tempFontRef = tempFont; + void *userData = reinterpret_cast(&tempFontRef); + if (QCoreTextFontEngine::ct_getSfntTable(userData, tag, 0, &length)) { + QVarLengthArray os2Table(length); + if (length >= 86 && QCoreTextFontEngine::ct_getSfntTable(userData, tag, os2Table.data(), &length)) { + quint32 unicodeRange[4] = { + qFromBigEndian(os2Table.data() + 42), + qFromBigEndian(os2Table.data() + 46), + qFromBigEndian(os2Table.data() + 50), + qFromBigEndian(os2Table.data() + 54) + }; + quint32 codePageRange[2] = { qFromBigEndian(os2Table.data() + 78), + qFromBigEndian(os2Table.data() + 82) }; + fd->writingSystems = QPlatformFontDatabase::writingSystemsFromTrueTypeBits(unicodeRange, codePageRange); + } + } + } if (styles) { if (CFNumberRef weightValue = (CFNumberRef) CFDictionaryGetValue(styles, kCTFontWeightTrait)) { - Q_ASSERT(CFNumberIsFloatType(weightValue)); - double d; - if (CFNumberGetValue(weightValue, kCFNumberDoubleType, &d)) - weight = (d > 0.0) ? QFont::Bold : QFont::Normal; + double normalizedWeight; + if (CFNumberGetValue(weightValue, kCFNumberDoubleType, &normalizedWeight)) { + if (normalizedWeight >= 0.62) + fd->weight = QFont::Black; + else if (normalizedWeight >= 0.4) + fd->weight = QFont::Bold; + else if (normalizedWeight >= 0.3) + fd->weight = QFont::DemiBold; + else if (normalizedWeight >= 0.2) + fd->weight = qt_mediumFontWeight; + else if (normalizedWeight == 0.0) + fd->weight = QFont::Normal; + else if (normalizedWeight <= -0.4) + fd->weight = QFont::Light; + else if (normalizedWeight <= -0.6) + fd->weight = qt_extralightFontWeight; + else if (normalizedWeight <= -0.8) + fd->weight = qt_thinFontWeight; + } } if (CFNumberRef italic = (CFNumberRef) CFDictionaryGetValue(styles, kCTFontSlantTrait)) { - Q_ASSERT(CFNumberIsFloatType(italic)); double d; if (CFNumberGetValue(italic, kCFNumberDoubleType, &d)) { if (d > 0.0) - style = QFont::StyleItalic; + fd->style = QFont::StyleItalic; } } if (CFNumberRef symbolic = (CFNumberRef) CFDictionaryGetValue(styles, kCTFontSymbolicTrait)) { int d; if (CFNumberGetValue(symbolic, kCFNumberSInt32Type, &d)) { if (d & kCTFontMonoSpaceTrait) - fixedPitch = true; + fd->fixedPitch = true; if (d & kCTFontExpandedTrait) - stretch = QFont::Expanded; + fd->stretch = QFont::Expanded; else if (d & kCTFontCondensedTrait) - stretch = QFont::Condensed; + fd->stretch = QFont::Condensed; } } } - int pixelSize = 0; if (QCFType size = (CFNumberRef) CTFontDescriptorCopyAttribute(font, kCTFontSizeAttribute)) { if (CFNumberIsFloatType(size)) { double d; CFNumberGetValue(size, kCFNumberDoubleType, &d); - pixelSize = d; + fd->pixelSize = d; } else { - CFNumberGetValue(size, kCFNumberIntType, &pixelSize); + CFNumberGetValue(size, kCFNumberIntType, &fd->pixelSize); } } - QSupportedWritingSystems writingSystems; if (QCFType languages = (CFArrayRef) CTFontDescriptorCopyAttribute(font, kCTFontLanguagesAttribute)) { CFIndex length = CFArrayGetCount(languages); for (int i = 1; i < LanguageCount; ++i) { @@ -293,14 +347,24 @@ void QCoreTextFontDatabase::populateFromDescriptor(CTFontDescriptorRef font) continue; QCFString lang = CFStringCreateWithCString(NULL, languageForWritingSystem[i], kCFStringEncodingASCII); if (CFArrayContainsValue(languages, CFRangeMake(0, length), lang)) - writingSystems.setSupported(QFontDatabase::WritingSystem(i)); + fd->writingSystems.setSupported(QFontDatabase::WritingSystem(i)); } } +} +void QCoreTextFontDatabase::populateFromDescriptor(CTFontDescriptorRef font) +{ + FontDescription fd; + getFontDescription(font, &fd); + populateFromFontDescription(font, fd); +} + +void QCoreTextFontDatabase::populateFromFontDescription(CTFontDescriptorRef font, const FontDescription &fd) +{ CFRetain(font); - QPlatformFontDatabase::registerFont(familyName, styleName, foundryName, weight, style, stretch, + QPlatformFontDatabase::registerFont(fd.familyName, fd.styleName, fd.foundryName, fd.weight, fd.style, fd.stretch, true /* antialiased */, true /* scalable */, - pixelSize, fixedPitch, writingSystems, (void *) font); + fd.pixelSize, fd.fixedPitch, fd.writingSystems, (void *) font); } void QCoreTextFontDatabase::releaseHandle(void *handle) @@ -352,7 +416,7 @@ QFontEngine *QCoreTextFontDatabase::fontEngine(const QByteArray &fontData, qreal QFontEngine *fontEngine = NULL; if (cgFont == NULL) { - qWarning("QRawFont::platformLoadFromData: CGFontCreateWithDataProvider failed"); + qWarning("QCoreTextFontDatabase::fontEngine: CGFontCreateWithDataProvider failed"); } else { QFontDef def; def.pixelSize = pixelSize; @@ -427,6 +491,17 @@ QStringList QCoreTextFontDatabase::fallbacksForFamily(const QString &family, QFo QCFString fallbackFamilyName = (CFStringRef) CTFontDescriptorCopyAttribute(fontFallback, kCTFontFamilyNameAttribute); fallbackList.append(QCFString::toQString(fallbackFamilyName)); } + +#if defined(Q_OS_OSX) + // Since we are only returning a list of default fonts for the current language, we do not + // cover all unicode completely. This was especially an issue for some of the common script + // symbols such as mathematical symbols, currency or geometric shapes. To minimize the risk + // of missing glyphs, we add Arial Unicode MS as a final fail safe, since this covers most + // of Unicode 2.1. + if (!fallbackList.contains(QStringLiteral("Arial Unicode MS"))) + fallbackList.append(QStringLiteral("Arial Unicode MS")); +#endif + fallbackLists[family] = fallbackList; } } @@ -470,6 +545,14 @@ QStringList QCoreTextFontDatabase::fallbacksForFamily(const QString &family, QFo if (QCoreTextFontEngine::supportsColorGlyphs()) fallbackList.append(QLatin1String("Apple Color Emoji")); + // Since we are only returning a list of default fonts for the current language, we do not + // cover all unicode completely. This was especially an issue for some of the common script + // symbols such as mathematical symbols, currency or geometric shapes. To minimize the risk + // of missing glyphs, we add Arial Unicode MS as a final fail safe, since this covers most + // of Unicode 2.1. + if (!fallbackList.contains(QStringLiteral("Arial Unicode MS"))) + fallbackList.append(QStringLiteral("Arial Unicode MS")); + fallbackLists[styleLookupKey.arg(fallbackStyleHint)] = fallbackList; } #else @@ -606,6 +689,153 @@ QStringList QCoreTextFontDatabase::addApplicationFont(const QByteArray &fontData return families; } +bool QCoreTextFontDatabase::isPrivateFontFamily(const QString &family) const +{ + if (family.startsWith(QLatin1Char('.'))) + return true; + + return QPlatformFontDatabase::isPrivateFontFamily(family); +} + +static CTFontUIFontType fontTypeFromTheme(QPlatformTheme::Font f) +{ + switch (f) { + case QPlatformTheme::SystemFont: + return kCTFontSystemFontType; + + case QPlatformTheme::MenuFont: + case QPlatformTheme::MenuBarFont: + case QPlatformTheme::MenuItemFont: + return kCTFontMenuItemFontType; + + case QPlatformTheme::MessageBoxFont: + return kCTFontEmphasizedSystemFontType; + + case QPlatformTheme::LabelFont: + return kCTFontSystemFontType; + + case QPlatformTheme::TipLabelFont: + return kCTFontToolTipFontType; + + case QPlatformTheme::StatusBarFont: + return kCTFontSystemFontType; + + case QPlatformTheme::TitleBarFont: + return kCTFontWindowTitleFontType; + + case QPlatformTheme::MdiSubWindowTitleFont: + case QPlatformTheme::DockWidgetTitleFont: + return kCTFontSystemFontType; + + case QPlatformTheme::PushButtonFont: + return kCTFontPushButtonFontType; + + case QPlatformTheme::CheckBoxFont: + case QPlatformTheme::RadioButtonFont: + return kCTFontSystemFontType; + + case QPlatformTheme::ToolButtonFont: + return kCTFontSmallToolbarFontType; + + case QPlatformTheme::ItemViewFont: + return kCTFontSystemFontType; + + case QPlatformTheme::ListViewFont: + return kCTFontViewsFontType; + + case QPlatformTheme::HeaderViewFont: + return kCTFontSmallSystemFontType; + + case QPlatformTheme::ListBoxFont: + return kCTFontViewsFontType; + + case QPlatformTheme::ComboMenuItemFont: + return kCTFontSystemFontType; + + case QPlatformTheme::ComboLineEditFont: + return kCTFontViewsFontType; + + case QPlatformTheme::SmallFont: + return kCTFontSmallSystemFontType; + + case QPlatformTheme::MiniFont: + return kCTFontMiniSystemFontType; + + case QPlatformTheme::FixedFont: + return kCTFontUserFixedPitchFontType; + + default: + return kCTFontSystemFontType; + } +} + +static CTFontDescriptorRef fontDescriptorFromTheme(QPlatformTheme::Font f) +{ +#ifdef Q_OS_IOS + if (QSysInfo::MacintoshVersion >= QSysInfo::MV_IOS_7_0) { + // Use Dynamic Type to resolve theme fonts if possible, to get + // correct font sizes and style based on user configuration. + NSString *textStyle = 0; + switch (f) { + case QPlatformTheme::TitleBarFont: + case QPlatformTheme::HeaderViewFont: + textStyle = UIFontTextStyleHeadline; + break; + case QPlatformTheme::MdiSubWindowTitleFont: + textStyle = UIFontTextStyleSubheadline; + break; + case QPlatformTheme::TipLabelFont: + case QPlatformTheme::SmallFont: + textStyle = UIFontTextStyleFootnote; + break; + case QPlatformTheme::MiniFont: + textStyle = UIFontTextStyleCaption2; + break; + case QPlatformTheme::FixedFont: + // Fall back to regular code path, as iOS doesn't provide + // an appropriate text style for this theme font. + break; + default: + textStyle = UIFontTextStyleBody; + break; + } + + if (textStyle) { + UIFontDescriptor *desc = [UIFontDescriptor preferredFontDescriptorWithTextStyle:textStyle]; + return static_cast(CFBridgingRetain(desc)); + } + } +#endif // Q_OS_IOS + + // OSX default case and iOS fallback case + CTFontUIFontType fontType = fontTypeFromTheme(f); + QCFType ctFont = CTFontCreateUIFontForLanguage(fontType, 0.0, NULL); + return CTFontCopyFontDescriptor(ctFont); +} + +const QHash &QCoreTextFontDatabase::themeFonts() const +{ + if (m_themeFonts.isEmpty()) { + for (long f = QPlatformTheme::SystemFont; f < QPlatformTheme::NFonts; f++) { + QPlatformTheme::Font ft = static_cast(f); + m_themeFonts.insert(ft, themeFont(ft)); + } + } + + return m_themeFonts; +} + +QFont *QCoreTextFontDatabase::themeFont(QPlatformTheme::Font f) const +{ + CTFontDescriptorRef fontDesc = fontDescriptorFromTheme(f); + FontDescription fd; + getFontDescription(fontDesc, &fd); + m_systemFontDescriptors.insert(fontDesc); + + QFont *font = new QFont(fd.familyName, fd.pixelSize, fd.weight, fd.style == QFont::StyleItalic); + return font; +} + QFont QCoreTextFontDatabase::defaultFont() const { if (defaultFontName.isEmpty()) { @@ -629,6 +859,9 @@ QList QCoreTextFontDatabase::standardSizes() const void QCoreTextFontDatabase::removeApplicationFonts() { + if (m_applicationFonts.isEmpty()) + return; + foreach (const QVariant &font, m_applicationFonts) { #if HAVE_CORETEXT if (&CTFontManagerUnregisterGraphicsFont && &CTFontManagerUnregisterFontsForURL) { diff --git a/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm b/Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm similarity index 91% rename from Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm rename to Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm index 0cf6dc6f5..5df151437 100644 --- a/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm +++ b/Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm @@ -163,6 +163,9 @@ static void cleanupCocoaApplicationDelegate() - (NSMenu *)applicationDockMenu:(NSApplication *)sender { Q_UNUSED(sender); + // Manually invoke the delegate's -menuWillOpen: method. + // See QTBUG-39604 (and its fix) for details. + [[dockMenu delegate] menuWillOpen:dockMenu]; return [[dockMenu retain] autorelease]; } @@ -213,7 +216,7 @@ static void cleanupCocoaApplicationDelegate() if (reflectionDelegate) { if ([reflectionDelegate respondsToSelector:@selector(applicationShouldTerminate:)]) return [reflectionDelegate applicationShouldTerminate:sender]; -// return NSTerminateNow; + //return NSTerminateNow; } if ([self canQuit]) { @@ -340,6 +343,7 @@ static void cleanupCocoaApplicationDelegate() && [reflectionDelegate respondsToSelector:@selector(applicationDidBecomeActive:)]) [reflectionDelegate applicationDidBecomeActive:notification]; + QWindowSystemInterface::handleApplicationStateChanged(Qt::ApplicationActive); /* onApplicationChangedActivation(true); @@ -363,6 +367,7 @@ static void cleanupCocoaApplicationDelegate() && [reflectionDelegate respondsToSelector:@selector(applicationDidResignActive:)]) [reflectionDelegate applicationDidResignActive:notification]; + QWindowSystemInterface::handleApplicationStateChanged(Qt::ApplicationInactive); /* onApplicationChangedActivation(false); @@ -374,6 +379,26 @@ static void cleanupCocoaApplicationDelegate() */ } +- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag +{ + Q_UNUSED(theApplication); + Q_UNUSED(flag); + if (reflectionDelegate + && [reflectionDelegate respondsToSelector:@selector(applicationShouldHandleReopen:hasVisibleWindows:)]) + return [reflectionDelegate applicationShouldHandleReopen:theApplication hasVisibleWindows:flag]; + + /* + true to force delivery of the event even if the application state is already active, + because rapp (handle reopen) events are sent each time the dock icon is clicked regardless + of the active state of the application or number of visible windows. For example, a browser + app that has no windows opened would need the event be to delivered even if it was already + active in order to create a new window as per OS X conventions. + */ + QWindowSystemInterface::handleApplicationStateChanged(Qt::ApplicationActive, true /*forcePropagate*/); + + return YES; +} + - (void)setReflectionDelegate:(NSObject *)oldDelegate { [oldDelegate retain]; @@ -411,7 +436,7 @@ static void cleanupCocoaApplicationDelegate() { Q_UNUSED(replyEvent); NSString *urlString = [[event paramDescriptorForKeyword:keyDirectObject] stringValue]; - QWindowSystemInterface::handleFileOpenEvent(QUrl::fromNSURL([NSURL URLWithString:urlString])); + QWindowSystemInterface::handleFileOpenEvent(QUrl(QCFString::toQString(urlString))); } - (void)appleEventQuit:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent diff --git a/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm b/Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm old mode 100755 new mode 100644 similarity index 80% rename from Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm rename to Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm index 17f2df5ca..7f7bd24f4 --- a/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm +++ b/Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm @@ -124,7 +124,6 @@ QT_USE_NAMESPACE QT_MANGLE_NAMESPACE(QNSStatusItem) *parent; } -(id)initWithParent:(QT_MANGLE_NAMESPACE(QNSStatusItem)*)myParent; --(void)updateIconSelection; -(void)menuTrackingDone:(NSNotification*)notification; -(void)mousePressed:(NSEvent *)mouseEvent button:(Qt::MouseButton)mouseButton; @end @@ -188,12 +187,12 @@ void QCocoaSystemTrayIcon::cleanup() m_sys = 0; } -qreal _devicePixelRatio() { - qreal result = 1.0; - foreach (QScreen *screen, QGuiApplication::screens()) { - result = qMax(result, screen->devicePixelRatio()); - } - return result; +static bool heightCompareFunction (QSize a, QSize b) { return (a.height() < b.height()); } +static QList sortByHeight(const QList sizes) +{ + QList sorted = sizes; + std::sort(sorted.begin(), sorted.end(), heightCompareFunction); + return sorted; } void QCocoaSystemTrayIcon::updateIcon(const QIcon &icon) @@ -203,16 +202,62 @@ void QCocoaSystemTrayIcon::updateIcon(const QIcon &icon) m_sys->item->icon = icon; - CGFloat hgt = [[[NSApplication sharedApplication] mainMenu] menuBarHeight]; - const short scale = hgt * _devicePixelRatio(); + // The reccomended maximum title bar icon height is 18 points + // (device independent pixels). The menu height on past and + // current OS X versions is 22 points. Provide some future-proofing + // by deriving the icon height from the menu height. + const int padding = 0; + const int menuHeight = [[[NSApplication sharedApplication] mainMenu] menuBarHeight]; + const int maxImageHeight = menuHeight - padding; - QPixmap pm = m_sys->item->icon.pixmap(QSize(scale, scale), - m_sys->item->iconSelected ? QIcon::Selected : QIcon::Normal); - if (pm.isNull()) { - pm = QPixmap(scale, scale); - pm.fill(Qt::transparent); + // Select pixmap based on the device pixel height. Ideally we would use + // the devicePixelRatio of the target screen, but that value is not + // known until draw time. Use qApp->devicePixelRatio, which returns the + // devicePixelRatio for the "best" screen on the system. + qreal devicePixelRatio = qApp->devicePixelRatio(); + const int maxPixmapHeight = maxImageHeight * devicePixelRatio; + const QIcon::Mode mode = m_sys->item->iconSelected ? QIcon::Selected : QIcon::Normal; + QSize selectedSize; + Q_FOREACH (const QSize& size, sortByHeight(icon.availableSizes(mode))) { + // Select a pixmap based on the height. We want the largest pixmap + // with a height smaller or equal to maxPixmapHeight. The pixmap + // may rectangular; assume it has a reasonable size. If there is + // not suitable pixmap use the smallest one the icon can provide. + if (size.height() <= maxPixmapHeight) { + selectedSize = size; + } else { + if (!selectedSize.isValid()) + selectedSize = size; + break; + } } - NSImage *nsimage = static_cast(qt_mac_create_nsimage(pm)); + + QPixmap pixmap = icon.pixmap(selectedSize, mode); + + // Draw a low-resolution icon if there is not enough pixels for a retina + // icon. This prevents showing a small icon on retina displays. + if (devicePixelRatio > 1.0 && selectedSize.height() < maxPixmapHeight / 2) + devicePixelRatio = 1.0; + + // Scale large pixmaps to fit the available menu bar area. + if (pixmap.height() > maxPixmapHeight) + pixmap = pixmap.scaledToHeight(maxPixmapHeight, Qt::SmoothTransformation); + + // The icon will be stretched over the full height of the menu bar + // therefore we create a second pixmap which has the full height + QSize fullHeightSize(!pixmap.isNull() ? pixmap.width(): + menuHeight * devicePixelRatio, + menuHeight * devicePixelRatio); + QPixmap fullHeightPixmap(fullHeightSize); + fullHeightPixmap.fill(Qt::transparent); + if (!pixmap.isNull()) { + QPainter p(&fullHeightPixmap); + QRect r = pixmap.rect(); + r.moveCenter(fullHeightPixmap.rect().center()); + p.drawPixmap(r, pixmap); + } + + NSImage *nsimage = static_cast(qt_mac_create_nsimage(fullHeightPixmap)); [(NSImageView*)[[m_sys->item item] view] setImage: nsimage]; [nsimage release]; } @@ -329,30 +374,14 @@ QT_END_NAMESPACE return self; } --(void)updateIconSelection -{ - CGFloat hgt = [[[NSApplication sharedApplication] mainMenu] menuBarHeight]; - const short scale = hgt * _devicePixelRatio(); - QPixmap pm = parent->icon.pixmap(QSize(scale, scale), - parent->iconSelected ? QIcon::Selected : QIcon::Normal); - if (pm.isNull()) { - pm = QPixmap(scale, scale); - pm.fill(Qt::transparent); - } - NSImage *nsaltimage = static_cast(qt_mac_create_nsimage(pm)); - [self setImage: nsaltimage]; - [nsaltimage release]; -} - -(void)menuTrackingDone:(NSNotification*)notification { Q_UNUSED(notification); down = NO; - parent->menuVisible = false; - - parent->iconSelected = false; - [self updateIconSelection]; + parent->iconSelected = false; + parent->systray->updateIcon(parent->icon); + parent->menuVisible = false; [self setNeedsDisplay:YES]; } @@ -363,15 +392,15 @@ QT_END_NAMESPACE int clickCount = [mouseEvent clickCount]; [self setNeedsDisplay:YES]; - parent->iconSelected = (clickCount != 2) && parent->menu; - [self updateIconSelection]; + parent->iconSelected = (clickCount != 2) && parent->menu; + parent->systray->updateIcon(parent->icon); - if (clickCount == 2) { - [self menuTrackingDone:nil]; - [parent doubleClickSelector:self]; - } else { - [parent triggerSelector:self button:mouseButton]; - } + if (clickCount == 2) { + [self menuTrackingDone:nil]; + [parent doubleClickSelector:self]; + } else { + [parent triggerSelector:self button:mouseButton]; + } } -(void)mouseDown:(NSEvent *)mouseEvent @@ -382,10 +411,11 @@ QT_END_NAMESPACE -(void)mouseUp:(NSEvent *)mouseEvent { Q_UNUSED(mouseEvent); - [self menuTrackingDone:nil]; - parent->iconSelected = false; - [self updateIconSelection]; + parent->iconSelected = false; + parent->systray->updateIcon(parent->icon); + + [self menuTrackingDone:nil]; } - (void)rightMouseDown:(NSEvent *)mouseEvent @@ -396,10 +426,11 @@ QT_END_NAMESPACE -(void)rightMouseUp:(NSEvent *)mouseEvent { Q_UNUSED(mouseEvent); - [self menuTrackingDone:nil]; - parent->iconSelected = false; - [self updateIconSelection]; + parent->iconSelected = false; + parent->systray->updateIcon(parent->icon); + + [self menuTrackingDone:nil]; } - (void)otherMouseDown:(NSEvent *)mouseEvent @@ -414,7 +445,7 @@ QT_END_NAMESPACE } -(void)drawRect:(NSRect)rect { - [[parent item] drawStatusBarBackgroundInRect:rect withHighlight:parent->menu ? down : NO]; + [[parent item] drawStatusBarBackgroundInRect:rect withHighlight:parent->menu ? down : NO]; [super drawRect:rect]; } @end diff --git a/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm b/Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm similarity index 91% rename from Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm rename to Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm index 159395aa2..486fda0ff 100644 --- a/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the plugins of the Qt Toolkit. @@ -43,7 +43,9 @@ #include "qnswindowdelegate.h" #include "qcocoaautoreleasepool.h" #include "qcocoaeventdispatcher.h" +#ifndef QT_NO_OPENGL #include "qcocoaglcontext.h" +#endif #include "qcocoahelpers.h" #include "qcocoanativeinterface.h" #include "qnsview.h" @@ -80,24 +82,30 @@ static bool isMouseEvent(NSEvent *ev) } } -@interface NSWindow (CocoaWindowCategory) -- (NSRect) legacyConvertRectFromScreen:(NSRect) rect; -@end - -@implementation NSWindow (CocoaWindowCategory) -- (NSRect) legacyConvertRectFromScreen:(NSRect) rect +static void selectNextKeyWindow(NSWindow *currentKeyWindow) { -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) { - return [self convertRectFromScreen: rect]; - } -#endif - NSRect r = rect; - r.origin = [self convertScreenToBase:rect.origin]; - return r; -} -@end + if (!currentKeyWindow) + return; + const QCocoaAutoReleasePool pool; + + if ([[NSApplication sharedApplication] keyWindow] != currentKeyWindow) + return;//currentKeyWindow is not a key window actually. + + NSArray *const windows = [[NSApplication sharedApplication] windows]; + bool startLookup = false; + for (NSWindow *candidate in [windows reverseObjectEnumerator]) { + if (!startLookup) { + if (candidate == currentKeyWindow) + startLookup = true; + } else { + if ([candidate isVisible] && [candidate canBecomeKeyWindow]) { + [candidate makeKeyWindow]; + break; + } + } + } +} @implementation QNSWindowHelper @@ -169,7 +177,7 @@ static bool isMouseEvent(NSEvent *ev) if (pw && pw->frameStrutEventsEnabled() && pw->m_synchedWindowState != Qt::WindowMinimized && pw->m_isExposed && isMouseEvent(theEvent)) { NSPoint loc = [theEvent locationInWindow]; - NSRect windowFrame = [self.window legacyConvertRectFromScreen:[self.window frame]]; + NSRect windowFrame = [self.window convertRectFromScreen:[self.window frame]]; NSRect contentFrame = [[self.window contentView] frame]; if (NSMouseInRect(loc, windowFrame, NO) && !NSMouseInRect(loc, contentFrame, NO)) @@ -237,6 +245,9 @@ static bool isMouseEvent(NSEvent *ev) if (!pw || pw->m_isNSWindowChild) return NO; + if (pw->shouldRefuseKeyWindowAndFirstResponder()) + return NO; + // The default implementation returns NO for title-bar less windows, // override and return yes here to make sure popup windows such as // the combobox popup can become the key window. @@ -314,6 +325,9 @@ static bool isMouseEvent(NSEvent *ev) if (!pw) return NO; + if (pw->shouldRefuseKeyWindowAndFirstResponder()) + return NO; + // Only tool or dialog windows should become key: Qt::WindowType type = pw->window()->type(); if (type == Qt::Tool || type == Qt::Dialog) @@ -366,7 +380,11 @@ QCocoaWindow::QCocoaWindow(QWindow *tlw) , m_windowModality(Qt::NonModal) , m_windowUnderMouse(false) , m_inConstructor(true) + , m_inSetVisible(false) + , m_inSetGeometry(false) +#ifndef QT_NO_OPENGL , m_glContext(0) +#endif , m_menubar(0) , m_windowCursor(0) , m_hasModalSession(false) @@ -395,19 +413,16 @@ QCocoaWindow::QCocoaWindow(QWindow *tlw) } else { m_qtView = [[QNSView alloc] initWithQWindow:tlw platformWindow:this]; m_contentView = m_qtView; -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 // Enable high-dpi OpenGL for retina displays. Enabling has the side // effect that Cocoa will start calling glViewport(0, 0, width, height), // overriding any glViewport calls in application code. This is usually not a // problem, except if the appilcation wants to have a "custom" viewport. // (like the hellogl example) - if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7 - && tlw->supportsOpenGL()) { + if (tlw->supportsOpenGL()) { BOOL enable = qt_mac_resolveOption(YES, tlw, "_q_mac_wantsBestResolutionOpenGLSurface", "QT_MAC_WANTS_BEST_RESOLUTION_OPENGL_SURFACE"); [m_contentView setWantsBestResolutionOpenGLSurface:enable]; } -#endif BOOL enable = qt_mac_resolveOption(NO, tlw, "_q_mac_wantsLayer", "QT_MAC_WANTS_LAYER"); [m_contentView setWantsLayer:enable]; @@ -456,6 +471,8 @@ QSurfaceFormat QCocoaWindow::format() const void QCocoaWindow::setGeometry(const QRect &rectIn) { + QBoolBlocker inSetGeometry(m_inSetGeometry, true); + QRect rect = rectIn; // This means it is a call from QWindow::setFramePosition() and // the coordinates include the frame (size is still the contents rectangle). @@ -479,7 +496,8 @@ QRect QCocoaWindow::geometry() const // of view. Embedded QWindows get global (screen) geometry. if (m_contentViewIsEmbedded) { NSPoint windowPoint = [m_contentView convertPoint:NSMakePoint(0, 0) toView:nil]; - NSPoint screenPoint = [[m_contentView window] convertBaseToScreen:windowPoint]; // ### use convertRectToScreen after 10.6 removal + NSRect screenRect = [[m_contentView window] convertRectToScreen:NSMakeRect(windowPoint.x, windowPoint.y, 1, 1)]; + NSPoint screenPoint = screenRect.origin; QPoint position = qt_mac_flipPoint(screenPoint).toPoint(); QSize size = qt_mac_toQRect([m_contentView bounds]).size(); return QRect(position, size); @@ -505,7 +523,7 @@ void QCocoaWindow::setCocoaGeometry(const QRect &rect) // call this here: updateGeometry in qnsview.mm is a no-op for this case QWindowSystemInterface::handleGeometryChange(window(), rect); - QWindowSystemInterface::handleExposeEvent(window(), rect); + QWindowSystemInterface::handleExposeEvent(window(), QRect(QPoint(0, 0), rect.size())); } else if (m_nsWindow) { NSRect bounds = qt_mac_flipRect(rect); [m_nsWindow setFrame:[m_nsWindow frameRectForContentRect:bounds] display:YES animate:NO]; @@ -581,6 +599,9 @@ void QCocoaWindow::hide(bool becauseOfAncestor) foreach (QCocoaWindow *childWindow, m_childWindows) childWindow->hide(true); + if (window()->transientParent() && m_nsWindow == [[NSApplication sharedApplication] keyWindow]) + selectNextKeyWindow(m_nsWindow); // Otherwise, Cocoa can do it wrong. + [m_nsWindow orderOut:nil]; } @@ -612,6 +633,8 @@ void QCocoaWindow::setVisible(bool visible) if (m_isNSWindowChild && m_hiddenByClipping) return; + m_inSetVisible = true; + QCocoaAutoReleasePool pool; QCocoaWindow *parentCocoaWindow = 0; if (window()->transientParent()) @@ -639,11 +662,7 @@ void QCocoaWindow::setVisible(bool visible) // Since this isn't a native popup, the window manager doesn't close the popup when you click outside NSUInteger parentStyleMask = [parentCocoaWindow->m_nsWindow styleMask]; if ((m_resizableTransientParent = (parentStyleMask & NSResizableWindowMask)) -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - && QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7 - && !([parentCocoaWindow->m_nsWindow styleMask] & NSFullScreenWindowMask) -#endif - ) + && !([parentCocoaWindow->m_nsWindow styleMask] & NSFullScreenWindowMask)) [parentCocoaWindow->m_nsWindow setStyleMask:parentStyleMask & ~NSResizableWindowMask]; } @@ -657,7 +676,7 @@ void QCocoaWindow::setVisible(bool visible) exposeWindow(); if (m_nsWindow) { - QWindowSystemInterface::flushWindowSystemEvents(); + QWindowSystemInterface::flushWindowSystemEvents(QEventLoop::ExcludeUserInputEvents); // setWindowState might have been called while the window was hidden and // will not change the NSWindow state in that case. Sync up here: @@ -703,8 +722,10 @@ void QCocoaWindow::setVisible(bool visible) [m_contentView setHidden:NO]; } else { // qDebug() << "close" << this; +#ifndef QT_NO_OPENGL if (m_glContext) m_glContext->windowWasHidden(); +#endif QCocoaEventDispatcher *cocoaEventDispatcher = qobject_cast(QGuiApplication::instance()->eventDispatcher()); QCocoaEventDispatcherPrivate *cocoaEventDispatcherPrivate = 0; if (cocoaEventDispatcher) @@ -740,15 +761,13 @@ void QCocoaWindow::setVisible(bool visible) if (parentCocoaWindow && window()->type() == Qt::Popup) { parentCocoaWindow->m_activePopupWindow = 0; if (m_resizableTransientParent -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - && QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7 - && !([parentCocoaWindow->m_nsWindow styleMask] & NSFullScreenWindowMask) -#endif - ) + && !([parentCocoaWindow->m_nsWindow styleMask] & NSFullScreenWindowMask)) // QTBUG-30266: a window should not be resizable while a transient popup is open [parentCocoaWindow->m_nsWindow setStyleMask:[parentCocoaWindow->m_nsWindow styleMask] | NSResizableWindowMask]; } } + + m_inSetVisible = false; } NSInteger QCocoaWindow::windowLevel(Qt::WindowFlags flags) @@ -857,19 +876,15 @@ void QCocoaWindow::setWindowFlags(Qt::WindowFlags flags) setWindowTitle(window()->title()); } -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) { - Qt::WindowType type = window()->type(); - if ((type & Qt::Popup) != Qt::Popup && (type & Qt::Dialog) != Qt::Dialog) { - NSWindowCollectionBehavior behavior = [m_nsWindow collectionBehavior]; - if (flags & Qt::WindowFullscreenButtonHint) - behavior |= NSWindowCollectionBehaviorFullScreenPrimary; - else - behavior &= ~NSWindowCollectionBehaviorFullScreenPrimary; - [m_nsWindow setCollectionBehavior:behavior]; - } + Qt::WindowType type = window()->type(); + if ((type & Qt::Popup) != Qt::Popup && (type & Qt::Dialog) != Qt::Dialog) { + NSWindowCollectionBehavior behavior = [m_nsWindow collectionBehavior]; + if (flags & Qt::WindowFullscreenButtonHint) + behavior |= NSWindowCollectionBehaviorFullScreenPrimary; + else + behavior &= ~NSWindowCollectionBehaviorFullScreenPrimary; + [m_nsWindow setCollectionBehavior:behavior]; } -#endif setWindowZoomButton(flags); } @@ -904,11 +919,11 @@ void QCocoaWindow::setWindowFilePath(const QString &filePath) } qreal _win_devicePixelRatio() { - qreal result = 1.0; - foreach (QScreen *screen, QGuiApplication::screens()) { - result = qMax(result, screen->devicePixelRatio()); - } - return result; + qreal result = 1.0; + foreach (QScreen *screen, QGuiApplication::screens()) { + result = qMax(result, screen->devicePixelRatio()); + } + return result; } void QCocoaWindow::setWindowIcon(const QIcon &icon) @@ -926,7 +941,7 @@ void QCocoaWindow::setWindowIcon(const QIcon &icon) if (icon.isNull()) { [iconButton setImage:nil]; } else { - CGFloat hgt = 16. * _win_devicePixelRatio(); + CGFloat hgt = 16. * _win_devicePixelRatio(); QPixmap pixmap = icon.pixmap(QSize(hgt, hgt)); NSImage *image = static_cast(qt_mac_create_nsimage(pixmap)); [iconButton setImage:image]; @@ -972,9 +987,12 @@ void QCocoaWindow::raise() [parentNSWindow addChildWindow:m_nsWindow ordered:NSWindowAbove]; } else { [m_nsWindow orderFront: m_nsWindow]; - ProcessSerialNumber psn; - GetCurrentProcess(&psn); - SetFrontProcessWithOptions(&psn, kSetFrontProcessFrontWindowOnly); + static bool raiseProcess = qt_mac_resolveOption(true, "QT_MAC_SET_RAISE_PROCESS"); + if (raiseProcess) { + ProcessSerialNumber psn; + GetCurrentProcess(&psn); + SetFrontProcessWithOptions(&psn, kSetFrontProcessFrontWindowOnly); + } } } } @@ -1222,6 +1240,7 @@ bool QCocoaWindow::windowIsPopupType(Qt::WindowType type) const return ((type & Qt::Popup) == Qt::Popup); } +#ifndef QT_NO_OPENGL void QCocoaWindow::setCurrentContext(QCocoaGLContext *context) { m_glContext = context; @@ -1231,6 +1250,7 @@ QCocoaGLContext *QCocoaWindow::currentContext() const { return m_glContext; } +#endif void QCocoaWindow::recreateWindow(const QPlatformWindow *parentWindow) { @@ -1298,13 +1318,9 @@ void QCocoaWindow::recreateWindow(const QPlatformWindow *parentWindow) m_nsWindow.hasShadow = NO; m_nsWindow.level = NSNormalWindowLevel; NSWindowCollectionBehavior collectionBehavior = - NSWindowCollectionBehaviorManaged | NSWindowCollectionBehaviorIgnoresCycle; -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) { - collectionBehavior |= NSWindowCollectionBehaviorFullScreenAuxiliary; - m_nsWindow.animationBehavior = NSWindowAnimationBehaviorNone; - } -#endif + NSWindowCollectionBehaviorManaged | NSWindowCollectionBehaviorIgnoresCycle + | NSWindowCollectionBehaviorFullScreenAuxiliary; + m_nsWindow.animationBehavior = NSWindowAnimationBehaviorNone; m_nsWindow.collectionBehavior = collectionBehavior; setCocoaGeometry(window()->geometry()); @@ -1396,17 +1412,17 @@ QCocoaNSWindow * QCocoaWindow::createNSWindow() if ((type & Qt::Popup) == Qt::Popup) [window setHasShadow:YES]; - [window setHidesOnDeactivate:(type & Qt::Tool) == Qt::Tool]; + // Qt::Tool windows hide on app deactivation, unless Qt::WA_MacAlwaysShowToolWindow is set. + QVariant showWithoutActivating = QPlatformWindow::window()->property("_q_macAlwaysShowToolWindow"); + bool shouldHideOnDeactivate = ((type & Qt::Tool) == Qt::Tool) && + !(showWithoutActivating.isValid() && showWithoutActivating.toBool()); + [window setHidesOnDeactivate: shouldHideOnDeactivate]; -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) { - // Make popup winows show on the same desktop as the parent full-screen window. - [window setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary]; + // Make popup windows show on the same desktop as the parent full-screen window. + [window setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary]; + if ((type & Qt::Popup) == Qt::Popup) + [window setAnimationBehavior:NSWindowAnimationBehaviorUtilityWindow]; - if ((type & Qt::Popup) == Qt::Popup) - [window setAnimationBehavior:NSWindowAnimationBehaviorUtilityWindow]; - } -#endif createdWindow = window; } else { QNSWindow *window; @@ -1416,10 +1432,8 @@ QCocoaNSWindow * QCocoaWindow::createNSWindow() createdWindow = window; } -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 if ([createdWindow respondsToSelector:@selector(setRestorable:)]) [createdWindow setRestorable: NO]; -#endif NSInteger level = windowLevel(flags); [createdWindow setLevel:level]; @@ -1446,7 +1460,11 @@ void QCocoaWindow::setNSWindow(QCocoaNSWindow *window) { if (window.contentView != m_contentView) { [m_contentView setPostsFrameChangedNotifications: NO]; + [m_contentView retain]; + if (m_contentView.superview) // m_contentView comes from another NSWindow + [m_contentView removeFromSuperview]; [window setContentView:m_contentView]; + [m_contentView release]; [m_contentView setPostsFrameChangedNotifications: YES]; } } @@ -1516,18 +1534,11 @@ void QCocoaWindow::syncWindowState(Qt::WindowState newState) } if ((m_synchedWindowState & Qt::WindowFullScreen) != (newState & Qt::WindowFullScreen)) { - bool fakeFullScreen = true; -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) { - if (window()->flags() & Qt::WindowFullscreenButtonHint) { - fakeFullScreen = false; - if (m_effectivelyMaximized && m_synchedWindowState == Qt::WindowFullScreen) - predictedState = Qt::WindowMaximized; - [m_nsWindow toggleFullScreen : m_nsWindow]; - } - } -#endif - if (fakeFullScreen) { + if (window()->flags() & Qt::WindowFullscreenButtonHint) { + if (m_effectivelyMaximized && m_synchedWindowState == Qt::WindowFullScreen) + predictedState = Qt::WindowMaximized; + [m_nsWindow toggleFullScreen : m_nsWindow]; + } else { if (newState & Qt::WindowFullScreen) { QScreen *screen = window()->screen(); if (screen) { @@ -1701,19 +1712,13 @@ bool QCocoaWindow::testContentBorderAreaPosition(int position) const qreal QCocoaWindow::devicePixelRatio() const { -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) { - NSWindow* window = [m_contentView window]; - if (window) { - return qreal([window backingScaleFactor]); - } else { - return 1.0; - } - } else -#endif - { - return 1.0; - } + // The documented way to observe the relationship between device-independent + // and device pixels is to use one for the convertToBacking functions. Other + // methods such as [NSWindow backingScaleFacor] might not give the correct + // result, for example if setWantsBestResolutionOpenGLSurface is not set or + // or ignored by the OpenGL driver. + NSSize backingSize = [m_contentView convertSizeToBacking:NSMakeSize(1.0, 1.0)]; + return backingSize.height; } // Returns whether the window can be expose, which it can @@ -1739,7 +1744,7 @@ void QCocoaWindow::exposeWindow() m_isExposed = true; m_exposedGeometry = geometry(); m_exposedDevicePixelRatio = devicePixelRatio(); - QWindowSystemInterface::handleExposeEvent(window(), QRegion(geometry())); + QWindowSystemInterface::handleExposeEvent(window(), QRect(QPoint(0, 0), m_exposedGeometry.size())); } } @@ -1761,16 +1766,21 @@ void QCocoaWindow::updateExposedGeometry() if (!m_geometryUpdateExposeAllowed) return; + // Do not send incorrect exposes in case the window is not even visible yet. + // We might get here as a result of a resize() from QWidget's show(), for instance. + if (!window()->isVisible()) + return; + if (!isWindowExposable()) return; - if (m_exposedGeometry == geometry() && m_exposedDevicePixelRatio == devicePixelRatio()) + if (m_exposedGeometry.size() == geometry().size() && m_exposedDevicePixelRatio == devicePixelRatio()) return; m_isExposed = true; m_exposedGeometry = geometry(); m_exposedDevicePixelRatio = devicePixelRatio(); - QWindowSystemInterface::handleExposeEvent(window(), QRegion(geometry())); + QWindowSystemInterface::handleExposeEvent(window(), QRect(QPoint(0, 0), m_exposedGeometry.size())); } QWindow *QCocoaWindow::childWindowAt(QPoint windowPoint) @@ -1785,6 +1795,23 @@ QWindow *QCocoaWindow::childWindowAt(QPoint windowPoint) return targetWindow; } +bool QCocoaWindow::shouldRefuseKeyWindowAndFirstResponder() +{ + // This function speaks up if there's any reason + // to refuse key window or first responder state. + + if (window()->flags() & Qt::WindowDoesNotAcceptFocus) + return true; + + if (m_inSetVisible) { + QVariant showWithoutActivating = window()->property("_q_showWithoutActivating"); + if (showWithoutActivating.isValid() && showWithoutActivating.toBool()) + return true; + } + + return false; +} + QMargins QCocoaWindow::frameMargins() const { NSRect frameW = [m_nsWindow frame]; diff --git a/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/cocoa/qnsview.mm b/Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/cocoa/qnsview.mm similarity index 86% rename from Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/cocoa/qnsview.mm rename to Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/cocoa/qnsview.mm index 1ca8105a3..0357bf4b6 100644 --- a/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/cocoa/qnsview.mm +++ b/Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/cocoa/qnsview.mm @@ -57,13 +57,21 @@ #include #include #include "qcocoabackingstore.h" +#ifndef QT_NO_OPENGL #include "qcocoaglcontext.h" +#endif #include "qcocoaintegration.h" #ifdef QT_COCOA_ENABLE_ACCESSIBILITY_INSPECTOR #include #endif +Q_LOGGING_CATEGORY(lcQpaTouch, "qt.qpa.input.touch") +#ifndef QT_NO_GESTURES +Q_LOGGING_CATEGORY(lcQpaGestures, "qt.qpa.input.gestures") +#endif +Q_LOGGING_CATEGORY(lcQpaTablet, "qt.qpa.input.tablet") + static QTouchDevice *touchDevice = 0; // ### HACK Remove once 10.8 is unsupported @@ -75,7 +83,54 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; - (CGFloat)deviceDeltaZ; @end -@implementation QNSView +@interface QNSViewMouseMoveHelper : NSObject +{ + QNSView *view; +} + +- (id)initWithView:(QNSView *)theView; + +- (void)mouseMoved:(NSEvent *)theEvent; +- (void)mouseEntered:(NSEvent *)theEvent; +- (void)mouseExited:(NSEvent *)theEvent; +- (void)cursorUpdate:(NSEvent *)theEvent; + +@end + +@implementation QNSViewMouseMoveHelper + +- (id)initWithView:(QNSView *)theView +{ + self = [super init]; + if (self) { + view = theView; + } + return self; +} + +- (void)mouseMoved:(NSEvent *)theEvent +{ + [view mouseMovedImpl:theEvent]; +} + +- (void)mouseEntered:(NSEvent *)theEvent +{ + [view mouseEnteredImpl:theEvent]; +} + +- (void)mouseExited:(NSEvent *)theEvent +{ + [view mouseExitedImpl:theEvent]; +} + +- (void)cursorUpdate:(NSEvent *)theEvent +{ + [view cursorUpdateImpl:theEvent]; +} + +@end + +@implementation QT_MANGLE_NAMESPACE(QNSView) + (void)initialize { @@ -88,18 +143,23 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; { self = [super initWithFrame : NSMakeRect(0,0, 300,300)]; if (self) { - m_backingStore = 0; + m_pixelRatio = 1.; m_maskImage = 0; m_shouldInvalidateWindowShadow = false; m_window = 0; m_buttons = Qt::NoButton; + m_frameStrutButtons = Qt::NoButton; m_sendKeyEvent = false; m_subscribesForGlobalFrameNotifications = false; +#ifndef QT_NO_OPENGL m_glContext = 0; m_shouldSetGLContextinDrawRect = false; +#endif currentCustomDragTypes = 0; m_sendUpAsRightButton = false; m_inputSource = 0; + m_mouseMoveHelper = [[QNSViewMouseMoveHelper alloc] initWithView:self]; + m_resendKeyEvent = false; if (!touchDevice) { touchDevice = new QTouchDevice; @@ -119,6 +179,7 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; m_subscribesForGlobalFrameNotifications = false; [m_inputSource release]; [[NSNotificationCenter defaultCenter] removeObserver:self]; + [m_mouseMoveHelper release]; delete currentCustomDragTypes; @@ -160,6 +221,7 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; return self; } +#ifndef QT_NO_OPENGL - (void) setQCocoaGLContext:(QCocoaGLContext *)context { m_glContext = context; @@ -181,6 +243,7 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; object:self]; } } +#endif - (void) globalFrameChanged:(NSNotification*)notification { @@ -238,7 +301,7 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; // For widgets we need to do a bit of trickery as the window // to activate is the window of the top-level widget. - if (m_window->metaObject()->className() == QStringLiteral("QWidgetWindow")) { + if (qstrcmp(m_window->metaObject()->className(), "QWidgetWindow") == 0) { while (focusWindow->parent()) { focusWindow = focusWindow->parent(); } @@ -299,7 +362,10 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; if (!m_platformWindow->m_inConstructor) { QWindowSystemInterface::handleGeometryChange(m_window, geometry); m_platformWindow->updateExposedGeometry(); - QWindowSystemInterface::flushWindowSystemEvents(); + // Guard against processing window system events during QWindow::setGeometry + // calles, which Qt and Qt applications do not excpect. + if (!m_platformWindow->m_inSetGeometry) + QWindowSystemInterface::flushWindowSystemEvents(); } } @@ -341,10 +407,6 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; Qt::WindowState newState = notificationName == NSWindowDidMiniaturizeNotification ? Qt::WindowMinimized : Qt::WindowNoState; [self notifyWindowStateChanged:newState]; - // NSWindowDidOrderOnScreenAndFinishAnimatingNotification is private API, and not - // emitted in 10.6, so we bring back the old behavior for that case alone. - if (newState == Qt::WindowNoState/* && QSysInfo::QSysInfo::MacintoshVersion == QSysInfo::MV_10_6*/) - m_platformWindow->exposeWindow(); } else if ([notificationName isEqualToString: @"NSWindowDidOrderOffScreenNotification"]) { m_platformWindow->obscureWindow(); } else if ([notificationName isEqualToString: @"NSWindowDidOrderOnScreenAndFinishAnimatingNotification"]) { @@ -357,12 +419,17 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; #pragma clang diagnostic ignored "-Wobjc-method-access" enum { NSWindowOcclusionStateVisible = 1UL << 1 }; #endif - // Older versions managed in -[QNSView viewDidMoveToWindow]. - // Support QWidgetAction in NSMenu. Mavericks only sends this notification. - // Ideally we should support this in Qt as well, in order to disable animations - // when the window is occluded. - if ((NSUInteger)[self.window occlusionState] & NSWindowOcclusionStateVisible) + if ((NSUInteger)[self.window occlusionState] & NSWindowOcclusionStateVisible) { m_platformWindow->exposeWindow(); + } else { + // Send Obscure events on window occlusion to stop animations. Several + // unit tests expect paint and/or expose events for windows that are + // sometimes (unpredictably) occlouded: Don't send Obscure events when + // running under QTestLib. + static bool onTestLib = qt_mac_resolveOption(false, "QT_QTESTLIB_RUNNING"); + if (!onTestLib) + m_platformWindow->obscureWindow(); + } #if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_9 #pragma clang diagnostic pop #endif @@ -370,24 +437,16 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; if (m_window) { NSUInteger screenIndex = [[NSScreen screens] indexOfObject:self.window.screen]; if (screenIndex != NSNotFound) { - m_platformWindow->updateExposedGeometry(); QCocoaScreen *cocoaScreen = QCocoaIntegration::instance()->screenAtIndex(screenIndex); QWindowSystemInterface::handleWindowScreenChanged(m_window, cocoaScreen->screen()); + m_platformWindow->updateExposedGeometry(); } } - } else { - -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) { - if (notificationName == NSWindowDidEnterFullScreenNotification - || notificationName == NSWindowDidExitFullScreenNotification) { - Qt::WindowState newState = notificationName == NSWindowDidEnterFullScreenNotification ? - Qt::WindowFullScreen : Qt::WindowNoState; - [self notifyWindowStateChanged:newState]; - } - } -#endif - + } else if (notificationName == NSWindowDidEnterFullScreenNotification + || notificationName == NSWindowDidExitFullScreenNotification) { + Qt::WindowState newState = notificationName == NSWindowDidEnterFullScreenNotification ? + Qt::WindowFullScreen : Qt::WindowNoState; + [self notifyWindowStateChanged:newState]; } } @@ -411,8 +470,9 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; - (void) flushBackingStore:(QCocoaBackingStore *)backingStore region:(const QRegion &)region offset:(QPoint)offset { - m_backingStore = backingStore; - m_backingStoreOffset = offset * m_backingStore->getBackingStoreDevicePixelRatio(); + m_backingStore = backingStore->toImage(); + m_pixelRatio = backingStore->getBackingStoreDevicePixelRatio(); + m_backingStoreOffset = offset * m_pixelRatio; foreach (QRect rect, region.rects()) { [self setNeedsDisplayInRect:NSMakeRect(rect.x(), rect.y(), rect.width(), rect.height())]; } @@ -466,15 +526,17 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; - (void) drawRect:(NSRect)dirtyRect { +#ifndef QT_NO_OPENGL if (m_glContext && m_shouldSetGLContextinDrawRect) { [m_glContext->nsOpenGLContext() setView:self]; m_shouldSetGLContextinDrawRect = false; } +#endif if (m_platformWindow->m_drawContentBorderGradient) NSDrawWindowBackground(dirtyRect); - if (!m_backingStore) + if (m_backingStore.isNull()) return; // Calculate source and target rects. The target rect is the dirtyRect: @@ -482,11 +544,10 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; // The backing store source rect will be larger on retina displays. // Scale dirtyRect by the device pixel ratio: - const qreal devicePixelRatio = m_backingStore->getBackingStoreDevicePixelRatio(); - CGRect dirtyBackingRect = CGRectMake(dirtyRect.origin.x * devicePixelRatio, - dirtyRect.origin.y * devicePixelRatio, - dirtyRect.size.width * devicePixelRatio, - dirtyRect.size.height * devicePixelRatio); + CGRect dirtyBackingRect = CGRectMake(dirtyRect.origin.x * m_pixelRatio, + dirtyRect.origin.y * m_pixelRatio, + dirtyRect.size.width * m_pixelRatio, + dirtyRect.size.height * m_pixelRatio); NSGraphicsContext *nsGraphicsContext = [NSGraphicsContext currentContext]; CGContextRef cgContext = (CGContextRef) [nsGraphicsContext graphicsPort]; @@ -512,7 +573,7 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; dirtyBackingRect.size.width, dirtyBackingRect.size.height ); - CGImageRef bsCGImage = m_backingStore->getBackingStoreCGImage(); + CGImageRef bsCGImage = qt_mac_toCGImage(m_backingStore); CGImageRef cleanImg = CGImageCreateWithImageInRect(bsCGImage, backingStoreRect); // Optimization: Copy frame buffer content instead of blending for @@ -527,6 +588,7 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; CGContextRestoreGState(cgContext); CGImageRelease(cleanImg); CGImageRelease(subMask); + CGImageRelease(bsCGImage); [self invalidateWindowShadowIfNeeded]; } @@ -540,13 +602,14 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; { if (m_window->flags() & Qt::WindowTransparentForInput) return NO; - QWindowSystemInterface::handleWindowActivated([self topLevelWindow]); + if (!m_platformWindow->windowIsPopupType()) + QWindowSystemInterface::handleWindowActivated([self topLevelWindow]); return YES; } - (BOOL)acceptsFirstResponder { - if (m_window->flags() & Qt::WindowDoesNotAcceptFocus) + if (m_platformWindow->shouldRefuseKeyWindowAndFirstResponder()) return NO; if (m_window->flags() & Qt::WindowTransparentForInput) return NO; @@ -585,16 +648,8 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; NSWindow *window = [self window]; NSPoint nsWindowPoint; - // Use convertRectToScreen if available (added in 10.7). -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if ([window respondsToSelector:@selector(convertRectFromScreen:)]) { - NSRect windowRect = [window convertRectFromScreen:NSMakeRect(mouseLocation.x, mouseLocation.y, 1, 1)]; - nsWindowPoint = windowRect.origin; // NSWindow coordinates - } else -#endif - { - nsWindowPoint = [window convertScreenToBase:mouseLocation]; // NSWindow coordinates - } + NSRect windowRect = [window convertRectFromScreen:NSMakeRect(mouseLocation.x, mouseLocation.y, 1, 1)]; + nsWindowPoint = windowRect.origin; // NSWindow coordinates NSPoint nsViewPoint = [self convertPoint: nsWindowPoint fromView: nil]; // NSView/QWindow coordinates *qtWindowPoint = QPointF(nsViewPoint.x, nsViewPoint.y); // NSView/QWindow coordinates @@ -604,6 +659,20 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; - (void)resetMouseButtons { m_buttons = Qt::NoButton; + m_frameStrutButtons = Qt::NoButton; +} + +- (NSPoint) screenMousePoint:(NSEvent *)theEvent +{ + NSPoint screenPoint; + if (theEvent) { + NSPoint windowPoint = [theEvent locationInWindow]; + NSRect screenRect = [[theEvent window] convertRectToScreen:NSMakeRect(windowPoint.x, windowPoint.y, 1, 1)]; + screenPoint = screenRect.origin; + } else { + screenPoint = [NSEvent mouseLocation]; + } + return screenPoint; } - (void)handleMouseEvent:(NSEvent *)theEvent @@ -620,7 +689,7 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; m_platformWindow->m_forwardWindow = 0; } - [targetView convertFromScreen:[NSEvent mouseLocation] toWindowPoint:&qtWindowPoint andScreenPoint:&qtScreenPoint]; + [targetView convertFromScreen:[self screenMousePoint:theEvent] toWindowPoint:&qtWindowPoint andScreenPoint:&qtScreenPoint]; ulong timestamp = [theEvent timestamp] * 1000; QCocoaDrag* nativeDrag = QCocoaIntegration::instance()->drag(); @@ -633,25 +702,35 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; - (void)handleFrameStrutMouseEvent:(NSEvent *)theEvent { // get m_buttons in sync + // Don't send frme strut events if we are in the middle of a mouse drag. + if (m_buttons != Qt::NoButton) + return; + NSEventType ty = [theEvent type]; switch (ty) { case NSLeftMouseDown: - m_buttons |= Qt::LeftButton; + m_frameStrutButtons |= Qt::LeftButton; break; case NSLeftMouseUp: - m_buttons &= ~Qt::LeftButton; + m_frameStrutButtons &= ~Qt::LeftButton; break; case NSRightMouseDown: - m_buttons |= Qt::RightButton; + m_frameStrutButtons |= Qt::RightButton; + break; + case NSLeftMouseDragged: + m_frameStrutButtons |= Qt::LeftButton; + break; + case NSRightMouseDragged: + m_frameStrutButtons |= Qt::RightButton; break; case NSRightMouseUp: - m_buttons &= ~Qt::RightButton; + m_frameStrutButtons &= ~Qt::RightButton; break; case NSOtherMouseDown: - m_buttons |= cocoaButton2QtButton([theEvent buttonNumber]); + m_frameStrutButtons |= cocoaButton2QtButton([theEvent buttonNumber]); break; case NSOtherMouseUp: - m_buttons &= ~cocoaButton2QtButton([theEvent buttonNumber]); + m_frameStrutButtons &= ~cocoaButton2QtButton([theEvent buttonNumber]); default: break; } @@ -669,7 +748,7 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; QPoint qtScreenPoint = QPoint(screenPoint.x, qt_mac_flipYCoordinate(screenPoint.y)); ulong timestamp = [theEvent timestamp] * 1000; - QWindowSystemInterface::handleFrameStrutMouseEvent(m_window, timestamp, qtWindowPoint, qtScreenPoint, m_buttons); + QWindowSystemInterface::handleFrameStrutMouseEvent(m_window, timestamp, qtWindowPoint, qtScreenPoint, m_frameStrutButtons); } - (void)mouseDown:(NSEvent *)theEvent @@ -753,13 +832,13 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; | NSTrackingInVisibleRect | NSTrackingMouseMoved | NSTrackingCursorUpdate; NSTrackingArea *ta = [[[NSTrackingArea alloc] initWithRect:[self frame] options:trackingOptions - owner:self + owner:m_mouseMoveHelper userInfo:nil] autorelease]; [self addTrackingArea:ta]; } --(void)cursorUpdate:(NSEvent *)theEvent +-(void)cursorUpdateImpl:(NSEvent *)theEvent { Q_UNUSED(theEvent) // Set the cursor manually if there is no NSWindow. @@ -776,14 +855,14 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; [self addCursorRect:[self visibleRect] cursor:m_platformWindow->m_windowCursor]; } -- (void)mouseMoved:(NSEvent *)theEvent +- (void)mouseMovedImpl:(NSEvent *)theEvent { if (m_window->flags() & Qt::WindowTransparentForInput) - return [super mouseMoved:theEvent]; + return; QPointF windowPoint; QPointF screenPoint; - [self convertFromScreen:[NSEvent mouseLocation] toWindowPoint:&windowPoint andScreenPoint:&screenPoint]; + [self convertFromScreen:[self screenMousePoint:theEvent] toWindowPoint:&windowPoint andScreenPoint:&screenPoint]; QWindow *childWindow = m_platformWindow->childWindowAt(windowPoint.toPoint()); // Top-level windows generate enter-leave events for sub-windows. @@ -806,12 +885,13 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; [self handleMouseEvent: theEvent]; } -- (void)mouseEntered:(NSEvent *)theEvent +- (void)mouseEnteredImpl:(NSEvent *)theEvent { + Q_UNUSED(theEvent) m_platformWindow->m_windowUnderMouse = true; if (m_window->flags() & Qt::WindowTransparentForInput) - return [super mouseEntered:theEvent]; + return; // Top-level windows generate enter events for sub-windows. if (!m_platformWindow->m_nsWindow) @@ -824,13 +904,13 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; QWindowSystemInterface::handleEnterEvent(m_platformWindow->m_enterLeaveTargetWindow, windowPoint, screenPoint); } -- (void)mouseExited:(NSEvent *)theEvent +- (void)mouseExitedImpl:(NSEvent *)theEvent { + Q_UNUSED(theEvent); m_platformWindow->m_windowUnderMouse = false; if (m_window->flags() & Qt::WindowTransparentForInput) - return [super mouseExited:theEvent]; - Q_UNUSED(theEvent); + return; // Top-level windows generate leave events for sub-windows. if (!m_platformWindow->m_nsWindow) @@ -934,6 +1014,7 @@ Q_GLOBAL_STATIC(QCocoaTabletDeviceDataHash, tabletDeviceDataHash) NSPoint tilt = [theEvent tilt]; int xTilt = qRound(tilt.x * 60.0); int yTilt = qRound(tilt.y * -60.0); + Qt::MouseButtons buttons = static_cast(static_cast([theEvent buttonMask])); qreal tangentialPressure = 0; qreal rotation = 0; int z = 0; @@ -941,14 +1022,21 @@ Q_GLOBAL_STATIC(QCocoaTabletDeviceDataHash, tabletDeviceDataHash) z = [theEvent absoluteZ]; if (deviceData.capabilityMask & 0x0800) - tangentialPressure = [theEvent tangentialPressure]; + tangentialPressure = ([theEvent tangentialPressure] * 2.0) - 1.0; - rotation = [theEvent rotation]; + rotation = 360.0 - [theEvent rotation]; + if (rotation > 180.0) + rotation -= 360.0; Qt::KeyboardModifiers keyboardModifiers = [QNSView convertKeyModifiers:[theEvent modifierFlags]]; - QWindowSystemInterface::handleTabletEvent(m_window, timestamp, down, windowPoint, screenPoint, - deviceData.device, deviceData.pointerType, pressure, xTilt, yTilt, + qCDebug(lcQpaTablet, "event on tablet %d with tool %d type %d unique ID %lld pos %6.1f, %6.1f root pos %6.1f, %6.1f buttons 0x%x pressure %4.2lf tilt %d, %d rotation %6.2lf", + deviceId, deviceData.device, deviceData.pointerType, deviceData.uid, + windowPoint.x(), windowPoint.y(), screenPoint.x(), screenPoint.y(), + static_cast(buttons), pressure, xTilt, yTilt, rotation); + + QWindowSystemInterface::handleTabletEvent(m_window, timestamp, windowPoint, screenPoint, + deviceData.device, deviceData.pointerType, buttons, pressure, xTilt, yTilt, tangentialPressure, rotation, z, deviceData.uid, keyboardModifiers); } @@ -1040,6 +1128,9 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) tabletDeviceDataHash->remove(deviceId); } + qCDebug(lcQpaTablet, "proximity change on tablet %d: current tool %d type %d unique ID %lld", + deviceId, deviceData.device, deviceData.pointerType, deviceData.uid); + if (entering) { QWindowSystemInterface::handleTabletEnterProximityEvent(timestamp, deviceData.device, deviceData.pointerType, deviceData.uid); } else { @@ -1047,41 +1138,49 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) } } +- (bool) shouldSendSingleTouch +{ + // QtWidgets expects single-point touch events, QtDeclarative does not. + // Until there is an API we solve this by looking at the window class type. + return m_window->inherits("QWidgetWindow"); +} + - (void)touchesBeganWithEvent:(NSEvent *)event { const NSTimeInterval timestamp = [event timestamp]; - const QList points = QCocoaTouch::getCurrentTouchPointList(event, /*acceptSingleTouch= ### true or false?*/false); + const QList points = QCocoaTouch::getCurrentTouchPointList(event, [self shouldSendSingleTouch]); + qCDebug(lcQpaTouch) << "touchesBeganWithEvent" << points; QWindowSystemInterface::handleTouchEvent(m_window, timestamp * 1000, touchDevice, points); } - (void)touchesMovedWithEvent:(NSEvent *)event { const NSTimeInterval timestamp = [event timestamp]; - const QList points = QCocoaTouch::getCurrentTouchPointList(event, /*acceptSingleTouch= ### true or false?*/false); + const QList points = QCocoaTouch::getCurrentTouchPointList(event, [self shouldSendSingleTouch]); + qCDebug(lcQpaTouch) << "touchesMovedWithEvent" << points; QWindowSystemInterface::handleTouchEvent(m_window, timestamp * 1000, touchDevice, points); } - (void)touchesEndedWithEvent:(NSEvent *)event { const NSTimeInterval timestamp = [event timestamp]; - const QList points = QCocoaTouch::getCurrentTouchPointList(event, /*acceptSingleTouch= ### true or false?*/false); + const QList points = QCocoaTouch::getCurrentTouchPointList(event, [self shouldSendSingleTouch]); + qCDebug(lcQpaTouch) << "touchesEndedWithEvent" << points; QWindowSystemInterface::handleTouchEvent(m_window, timestamp * 1000, touchDevice, points); } - (void)touchesCancelledWithEvent:(NSEvent *)event { const NSTimeInterval timestamp = [event timestamp]; - const QList points = QCocoaTouch::getCurrentTouchPointList(event, /*acceptSingleTouch= ### true or false?*/false); + const QList points = QCocoaTouch::getCurrentTouchPointList(event, [self shouldSendSingleTouch]); + qCDebug(lcQpaTouch) << "touchesCancelledWithEvent" << points; QWindowSystemInterface::handleTouchEvent(m_window, timestamp * 1000, touchDevice, points); } #ifndef QT_NO_GESTURES -//#define QT_COCOA_ENABLE_GESTURE_DEBUG - (void)magnifyWithEvent:(NSEvent *)event { -#ifdef QT_COCOA_ENABLE_GESTURE_DEBUG - qDebug() << "magnifyWithEvent" << [event magnification]; -#endif + qCDebug(lcQpaGestures) << "magnifyWithEvent" << [event magnification]; const NSTimeInterval timestamp = [event timestamp]; QPointF windowPoint; QPointF screenPoint; @@ -1094,9 +1193,7 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) - (void)smartMagnifyWithEvent:(NSEvent *)event { static bool zoomIn = true; -#ifdef QT_COCOA_ENABLE_GESTURE_DEBUG - qDebug() << "smartMagnifyWithEvent" << zoomIn; -#endif + qCDebug(lcQpaGestures) << "smartMagnifyWithEvent" << zoomIn; const NSTimeInterval timestamp = [event timestamp]; QPointF windowPoint; QPointF screenPoint; @@ -1109,9 +1206,7 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) - (void)rotateWithEvent:(NSEvent *)event { -#ifdef QT_COCOA_ENABLE_GESTURE_DEBUG - qDebug() << "rotateWithEvent" << [event rotation]; -#endif + qCDebug(lcQpaGestures) << "rotateWithEvent" << [event rotation]; const NSTimeInterval timestamp = [event timestamp]; QPointF windowPoint; QPointF screenPoint; @@ -1122,9 +1217,7 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) - (void)swipeWithEvent:(NSEvent *)event { -#ifdef QT_COCOA_ENABLE_GESTURE_DEBUG - qDebug() << "swipeWithEvent" << [event deltaX] << [event deltaY]; -#endif + qCDebug(lcQpaGestures) << "swipeWithEvent" << [event deltaX] << [event deltaY]; const NSTimeInterval timestamp = [event timestamp]; QPointF windowPoint; QPointF screenPoint; @@ -1146,22 +1239,18 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) - (void)beginGestureWithEvent:(NSEvent *)event { -#ifdef QT_COCOA_ENABLE_GESTURE_DEBUG - qDebug() << "beginGestureWithEvent"; -#endif const NSTimeInterval timestamp = [event timestamp]; QPointF windowPoint; QPointF screenPoint; [self convertFromScreen:[NSEvent mouseLocation] toWindowPoint:&windowPoint andScreenPoint:&screenPoint]; + qCDebug(lcQpaGestures) << "beginGestureWithEvent @" << windowPoint; QWindowSystemInterface::handleGestureEvent(m_window, timestamp, Qt::BeginNativeGesture, windowPoint, screenPoint); } - (void)endGestureWithEvent:(NSEvent *)event { -#ifdef QT_COCOA_ENABLE_GESTURE_DEBUG - qDebug() << "endGestureWithEvent"; -#endif + qCDebug(lcQpaGestures) << "endGestureWithEvent"; const NSTimeInterval timestamp = [event timestamp]; QPointF windowPoint; QPointF screenPoint; @@ -1188,18 +1277,8 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) // It looks like 1/4 degrees per pixel behaves most native. // (NB: Qt expects the unit for delta to be 8 per degree): const int pixelsToDegrees = 2; // 8 * 1/4 - -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if ([theEvent respondsToSelector:@selector(scrollingDeltaX)]) { - angleDelta.setX([theEvent scrollingDeltaX] * pixelsToDegrees); - angleDelta.setY([theEvent scrollingDeltaY] * pixelsToDegrees); - } else -#endif - { - angleDelta.setX([theEvent deviceDeltaX] * pixelsToDegrees); - angleDelta.setY([theEvent deviceDeltaY] * pixelsToDegrees); - } - + angleDelta.setX([theEvent scrollingDeltaX] * pixelsToDegrees); + angleDelta.setY([theEvent scrollingDeltaY] * pixelsToDegrees); } else { // carbonEventKind == kEventMouseWheelMoved // Remove acceleration, and use either -120 or 120 as delta: @@ -1208,20 +1287,16 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) } QPoint pixelDelta; -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if ([theEvent respondsToSelector:@selector(scrollingDeltaX)]) { - if ([theEvent hasPreciseScrollingDeltas]) { - pixelDelta.setX([theEvent scrollingDeltaX]); - pixelDelta.setY([theEvent scrollingDeltaY]); - } else { - // docs: "In the case of !hasPreciseScrollingDeltas, multiply the delta with the line width." - // scrollingDeltaX seems to return a minimum value of 0.1 in this case, map that to two pixels. - const CGFloat lineWithEstimate = 20.0; - pixelDelta.setX([theEvent scrollingDeltaX] * lineWithEstimate); - pixelDelta.setY([theEvent scrollingDeltaY] * lineWithEstimate); - } + if ([theEvent hasPreciseScrollingDeltas]) { + pixelDelta.setX([theEvent scrollingDeltaX]); + pixelDelta.setY([theEvent scrollingDeltaY]); + } else { + // docs: "In the case of !hasPreciseScrollingDeltas, multiply the delta with the line width." + // scrollingDeltaX seems to return a minimum value of 0.1 in this case, map that to two pixels. + const CGFloat lineWithEstimate = 20.0; + pixelDelta.setX([theEvent scrollingDeltaX] * lineWithEstimate); + pixelDelta.setY([theEvent scrollingDeltaY] * lineWithEstimate); } -#endif QPointF qt_windowPoint; QPointF qt_screenPoint; @@ -1229,48 +1304,36 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) NSTimeInterval timestamp = [theEvent timestamp]; ulong qt_timestamp = timestamp * 1000; -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if ([theEvent respondsToSelector:@selector(scrollingDeltaX)]) { - // Prevent keyboard modifier state from changing during scroll event streams. - // A two-finger trackpad flick generates a stream of scroll events. We want - // the keyboard modifier state to be the state at the beginning of the - // flick in order to avoid changing the interpretation of the events - // mid-stream. One example of this happening would be when pressing cmd - // after scrolling in Qt Creator: not taking the phase into account causes - // the end of the event stream to be interpreted as font size changes. - NSEventPhase momentumPhase = [theEvent momentumPhase]; - if (momentumPhase == NSEventPhaseNone) { - currentWheelModifiers = [QNSView convertKeyModifiers:[theEvent modifierFlags]]; - } + // Prevent keyboard modifier state from changing during scroll event streams. + // A two-finger trackpad flick generates a stream of scroll events. We want + // the keyboard modifier state to be the state at the beginning of the + // flick in order to avoid changing the interpretation of the events + // mid-stream. One example of this happening would be when pressing cmd + // after scrolling in Qt Creator: not taking the phase into account causes + // the end of the event stream to be interpreted as font size changes. + NSEventPhase momentumPhase = [theEvent momentumPhase]; + if (momentumPhase == NSEventPhaseNone) { + currentWheelModifiers = [QNSView convertKeyModifiers:[theEvent modifierFlags]]; + } - NSEventPhase phase = [theEvent phase]; - Qt::ScrollPhase ph = Qt::ScrollUpdate; + NSEventPhase phase = [theEvent phase]; + Qt::ScrollPhase ph = Qt::ScrollUpdate; #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_8 - if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_8) { - // On 10.8 and above, MayBegin is likely to happen. We treat it the same as an actual begin. - if (phase == NSEventPhaseMayBegin || phase == NSEventPhaseBegan) - ph = Qt::ScrollBegin; - } else + if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_8) { + // On 10.8 and above, MayBegin is likely to happen. We treat it the same as an actual begin. + if (phase == NSEventPhaseMayBegin || phase == NSEventPhaseBegan) + ph = Qt::ScrollBegin; + } else #endif if (phase == NSEventPhaseBegan) { // On 10.7, MayBegin will not happen, so Began is the actual beginning. ph = Qt::ScrollBegin; } - if (phase == NSEventPhaseEnded || phase == NSEventPhaseCancelled) { - ph = Qt::ScrollEnd; - } - - QWindowSystemInterface::handleWheelEvent(m_window, qt_timestamp, qt_windowPoint, qt_screenPoint, pixelDelta, angleDelta, currentWheelModifiers, ph); - - if (momentumPhase == NSEventPhaseEnded || momentumPhase == NSEventPhaseCancelled || momentumPhase == NSEventPhaseNone) { - currentWheelModifiers = Qt::NoModifier; - } - } else -#endif - { - QWindowSystemInterface::handleWheelEvent(m_window, qt_timestamp, qt_windowPoint, qt_screenPoint, pixelDelta, angleDelta, - [QNSView convertKeyModifiers:[theEvent modifierFlags]]); + if (phase == NSEventPhaseEnded || phase == NSEventPhaseCancelled) { + ph = Qt::ScrollEnd; } + + QWindowSystemInterface::handleWheelEvent(m_window, qt_timestamp, qt_windowPoint, qt_screenPoint, pixelDelta, angleDelta, currentWheelModifiers, ph); } #endif //QT_NO_WHEELEVENT @@ -1316,7 +1379,7 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) QChar ch = QChar::ReplacementCharacter; int keyCode = Qt::Key_unknown; if ([characters length] != 0) { - if ((modifiers & Qt::MetaModifier) && ([charactersIgnoringModifiers length] != 0)) + if (((modifiers & Qt::MetaModifier) || (modifiers & Qt::AltModifier)) && ([charactersIgnoringModifiers length] != 0)) ch = QChar([charactersIgnoringModifiers characterAtIndex:0]); else ch = QChar([characters characterAtIndex:0]); @@ -1328,7 +1391,7 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) QString text; // ignore text for the U+F700-U+F8FF range. This is used by Cocoa when // delivering function keys (e.g. arrow keys, backspace, F1-F35, etc.) - if (ch.unicode() < 0xf700 || ch.unicode() > 0xf8ff) + if (!(modifiers & (Qt::ControlModifier | Qt::MetaModifier)) && (ch.unicode() < 0xf700 || ch.unicode() > 0xf8ff)) text = QCFString::toQString(characters); QWindow *focusWindow = [self topLevelWindow]; @@ -1350,6 +1413,8 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) } } } + if (m_resendKeyEvent) + m_sendKeyEvent = true; } if (m_sendKeyEvent && m_composingText.isEmpty()) @@ -1357,6 +1422,7 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) nativeScanCode, nativeVirtualKey, nativeModifiers, text, [nsevent isARepeat]); m_sendKeyEvent = false; + m_resendKeyEvent = false; } - (void)keyDown:(NSEvent *)nsevent @@ -1386,10 +1452,9 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) [self handleKeyEvent:nsevent eventType:int(QEvent::KeyPress)]; return YES; } else if ([nsevent modifierFlags] & NSControlKeyMask && (qtKey == Qt::Key_Tab || qtKey == Qt::Key_Backtab)) { - [self handleKeyEvent:nsevent eventType:int(QEvent::KeyPress)]; - return YES; - } - + [self handleKeyEvent:nsevent eventType:int(QEvent::KeyPress)]; + return YES; + } } return [super performKeyEquivalent:nsevent]; } @@ -1431,6 +1496,12 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) } } +- (void) insertNewline:(id)sender +{ + Q_UNUSED(sender); + m_resendKeyEvent = true; +} + - (void) doCommandBySelector:(SEL)aSelector { [self tryToPerform:aSelector with:self]; @@ -1725,6 +1796,19 @@ static QPoint mapWindowCoordinates(QWindow *source, QWindow *target, QPoint poin return NO; } +- (BOOL)wantsPeriodicDraggingUpdates +{ + // From the documentation: + // + // "If the destination returns NO, these messages are sent only when the mouse moves + // or a modifier flag changes. Otherwise the destination gets the default behavior, + // where it receives periodic dragging-updated messages even if nothing changes." + // + // We do not want these constant drag update events while mouse is stationary, + // since we do all animations (autoscroll) with timers. + return NO; +} + - (NSDragOperation)draggingEntered:(id )sender { return [self handleDrag : sender]; diff --git a/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp similarity index 98% rename from Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp rename to Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp index 9b9d6e0f9..97819ddc8 100644 --- a/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp +++ b/Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp @@ -1,40 +1,32 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the plugins of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:LGPL21$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information ** use the contact form at http://qt.digia.com/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception +** rights. These rights are described in the Digia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** ** $QT_END_LICENSE$ ** ****************************************************************************/ @@ -1250,16 +1242,21 @@ void QWindowsNativeFileDialogBase::setNameFilters(const QStringList &filters) QScopedArrayPointer buffer(new WCHAR[totalStringLength + 2 * size]); QScopedArrayPointer comFilterSpec(new COMDLG_FILTERSPEC[size]); - const QString matchesAll = QStringLiteral(" (*)"); WCHAR *ptr = buffer.data(); // Split filter specification as 'Texts (*.txt[;] *.doc)' // into description and filters specification as '*.txt;*.doc' for (int i = 0; i < size; ++i) { - // Display glitch (CLSID only): 'All files (*)' shows up as 'All files (*) (*)' + // Display glitch (CLSID only): Any filter not filtering on suffix (such as + // '*', 'a.*') will be duplicated in combo: 'All files (*) (*)', + // 'AAA files (a.*) (a.*)' QString description = specs[i].description; - if (!m_hideFiltersDetails && description.endsWith(matchesAll)) - description.truncate(description.size() - matchesAll.size()); + const QString &filter = specs[i].filter; + if (!m_hideFiltersDetails && !filter.startsWith(QLatin1String("*."))) { + const int pos = description.lastIndexOf(QLatin1Char('(')); + if (pos > 0) + description.truncate(pos); + } // Add to buffer. comFilterSpec[i].pszName = ptr; ptr += description.toWCharArray(ptr); @@ -1291,7 +1288,6 @@ void QWindowsNativeFileDialogBase::setLabelText(QFileDialogOptions::DialogLabel { wchar_t *wText = const_cast(reinterpret_cast(text.utf16())); switch (l) { - break; case QFileDialogOptions::FileName: m_fileDialog->SetFileNameLabel(wText); break; @@ -1313,7 +1309,7 @@ void QWindowsNativeFileDialogBase::selectFile(const QString &fileName) const if (lastBackSlash >= 0) { file = file.mid(lastBackSlash + 1); } - m_fileDialog->SetFileName((wchar_t*)file.utf16()); + m_fileDialog->SetFileName((wchar_t*)file.utf16());; } // Return the index of the selected filter, accounting for QFileDialog diff --git a/Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp b/Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp new file mode 100644 index 000000000..ba423b430 --- /dev/null +++ b/Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp @@ -0,0 +1,1220 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the plugins of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL21$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qwindowskeymapper.h" +#include "qwindowscontext.h" +#include "qwindowswindow.h" +#include "qwindowsguieventdispatcher.h" +#include "qwindowsscaling.h" + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +/*! + \class QWindowsKeyMapper + \brief Translates Windows keys to QWindowSystemInterface events. + \internal + \ingroup qt-lighthouse-win + + In addition, handles some special keys to display system menus, etc. + The code originates from \c qkeymapper_win.cpp. +*/ + +QWindowsKeyMapper::QWindowsKeyMapper() + : m_useRTLExtensions(false), m_keyGrabber(0) +{ + memset(keyLayout, 0, sizeof(keyLayout)); +} + +QWindowsKeyMapper::~QWindowsKeyMapper() +{ +} + +#ifndef LANG_PASHTO +#define LANG_PASHTO 0x63 +#endif +#ifndef LANG_SYRIAC +#define LANG_SYRIAC 0x5a +#endif +#ifndef LANG_DIVEHI +#define LANG_DIVEHI 0x65 +#endif +#ifndef VK_OEM_PLUS +#define VK_OEM_PLUS 0xBB +#endif +#ifndef VK_OEM_3 +#define VK_OEM_3 0xC0 +#endif + +// We not only need the scancode itself but also the extended bit of key messages. Thus we need +// the additional bit when masking the scancode. +enum { scancodeBitmask = 0x1ff }; + +// Key recorder ------------------------------------------------------------------------[ start ] -- +struct KeyRecord { + KeyRecord(int c, int a, int s, const QString &t) : code(c), ascii(a), state(s), text(t) {} + KeyRecord() {} + + int code; + int ascii; + int state; + QString text; +}; + +// We need to record the pressed keys in order to decide, whether the key event is an autorepeat +// event. As soon as its state changes, the chain of autorepeat events will be broken. +static const int QT_MAX_KEY_RECORDINGS = 64; // User has LOTS of fingers... +struct KeyRecorder +{ + KeyRecorder() : nrecs(0) {} + + inline KeyRecord *findKey(int code, bool remove); + inline void storeKey(int code, int ascii, int state, const QString& text); + inline void clearKeys(); + + int nrecs; + KeyRecord deleted_record; // A copy of last entry removed from records[] + KeyRecord records[QT_MAX_KEY_RECORDINGS]; +}; +static KeyRecorder key_recorder; + +KeyRecord *KeyRecorder::findKey(int code, bool remove) +{ + KeyRecord *result = 0; + for (int i = 0; i < nrecs; ++i) { + if (records[i].code == code) { + if (remove) { + deleted_record = records[i]; + // Move rest down, and decrease count + while (i + 1 < nrecs) { + records[i] = records[i + 1]; + ++i; + } + --nrecs; + result = &deleted_record; + } else { + result = &records[i]; + } + break; + } + } + return result; +} + +void KeyRecorder::storeKey(int code, int ascii, int state, const QString& text) +{ + Q_ASSERT_X(nrecs != QT_MAX_KEY_RECORDINGS, + "Internal KeyRecorder", + "Keyboard recorder buffer overflow, consider increasing QT_MAX_KEY_RECORDINGS"); + + if (nrecs == QT_MAX_KEY_RECORDINGS) { + qWarning("Qt: Internal keyboard buffer overflow"); + return; + } + records[nrecs++] = KeyRecord(code,ascii,state,text); +} + +void KeyRecorder::clearKeys() +{ + nrecs = 0; +} +// Key recorder --------------------------------------------------------------------------[ end ] -- + + +// Key translation ---------------------------------------------------------------------[ start ] -- +// Meaning of values: +// 0 = Character output key, needs keyboard driver mapping +// Key_unknown = Unknown Virtual Key, no translation possible, ignore +static const uint KeyTbl[] = { // Keyboard mapping table + // Dec | Hex | Windows Virtual key + Qt::Key_unknown, // 0 0x00 + Qt::Key_unknown, // 1 0x01 VK_LBUTTON | Left mouse button + Qt::Key_unknown, // 2 0x02 VK_RBUTTON | Right mouse button + Qt::Key_Cancel, // 3 0x03 VK_CANCEL | Control-Break processing + Qt::Key_unknown, // 4 0x04 VK_MBUTTON | Middle mouse button + Qt::Key_unknown, // 5 0x05 VK_XBUTTON1 | X1 mouse button + Qt::Key_unknown, // 6 0x06 VK_XBUTTON2 | X2 mouse button + Qt::Key_unknown, // 7 0x07 -- unassigned -- + Qt::Key_Backspace, // 8 0x08 VK_BACK | BackSpace key + Qt::Key_Tab, // 9 0x09 VK_TAB | Tab key + Qt::Key_unknown, // 10 0x0A -- reserved -- + Qt::Key_unknown, // 11 0x0B -- reserved -- + Qt::Key_Clear, // 12 0x0C VK_CLEAR | Clear key + Qt::Key_Return, // 13 0x0D VK_RETURN | Enter key + Qt::Key_unknown, // 14 0x0E -- unassigned -- + Qt::Key_unknown, // 15 0x0F -- unassigned -- + Qt::Key_Shift, // 16 0x10 VK_SHIFT | Shift key + Qt::Key_Control, // 17 0x11 VK_CONTROL | Ctrl key + Qt::Key_Alt, // 18 0x12 VK_MENU | Alt key + Qt::Key_Pause, // 19 0x13 VK_PAUSE | Pause key + Qt::Key_CapsLock, // 20 0x14 VK_CAPITAL | Caps-Lock + Qt::Key_unknown, // 21 0x15 VK_KANA / VK_HANGUL | IME Kana or Hangul mode + Qt::Key_unknown, // 22 0x16 -- unassigned -- + Qt::Key_unknown, // 23 0x17 VK_JUNJA | IME Junja mode + Qt::Key_unknown, // 24 0x18 VK_FINAL | IME final mode + Qt::Key_unknown, // 25 0x19 VK_HANJA / VK_KANJI | IME Hanja or Kanji mode + Qt::Key_unknown, // 26 0x1A -- unassigned -- + Qt::Key_Escape, // 27 0x1B VK_ESCAPE | Esc key + Qt::Key_unknown, // 28 0x1C VK_CONVERT | IME convert + Qt::Key_unknown, // 29 0x1D VK_NONCONVERT | IME non-convert + Qt::Key_unknown, // 30 0x1E VK_ACCEPT | IME accept + Qt::Key_Mode_switch,// 31 0x1F VK_MODECHANGE | IME mode change request + Qt::Key_Space, // 32 0x20 VK_SPACE | Spacebar + Qt::Key_PageUp, // 33 0x21 VK_PRIOR | Page Up key + Qt::Key_PageDown, // 34 0x22 VK_NEXT | Page Down key + Qt::Key_End, // 35 0x23 VK_END | End key + Qt::Key_Home, // 36 0x24 VK_HOME | Home key + Qt::Key_Left, // 37 0x25 VK_LEFT | Left arrow key + Qt::Key_Up, // 38 0x26 VK_UP | Up arrow key + Qt::Key_Right, // 39 0x27 VK_RIGHT | Right arrow key + Qt::Key_Down, // 40 0x28 VK_DOWN | Down arrow key + Qt::Key_Select, // 41 0x29 VK_SELECT | Select key + Qt::Key_Printer, // 42 0x2A VK_PRINT | Print key + Qt::Key_Execute, // 43 0x2B VK_EXECUTE | Execute key + Qt::Key_Print, // 44 0x2C VK_SNAPSHOT | Print Screen key + Qt::Key_Insert, // 45 0x2D VK_INSERT | Ins key + Qt::Key_Delete, // 46 0x2E VK_DELETE | Del key + Qt::Key_Help, // 47 0x2F VK_HELP | Help key + 0, // 48 0x30 (VK_0) | 0 key + 0, // 49 0x31 (VK_1) | 1 key + 0, // 50 0x32 (VK_2) | 2 key + 0, // 51 0x33 (VK_3) | 3 key + 0, // 52 0x34 (VK_4) | 4 key + 0, // 53 0x35 (VK_5) | 5 key + 0, // 54 0x36 (VK_6) | 6 key + 0, // 55 0x37 (VK_7) | 7 key + 0, // 56 0x38 (VK_8) | 8 key + 0, // 57 0x39 (VK_9) | 9 key + Qt::Key_unknown, // 58 0x3A -- unassigned -- + Qt::Key_unknown, // 59 0x3B -- unassigned -- + Qt::Key_unknown, // 60 0x3C -- unassigned -- + Qt::Key_unknown, // 61 0x3D -- unassigned -- + Qt::Key_unknown, // 62 0x3E -- unassigned -- + Qt::Key_unknown, // 63 0x3F -- unassigned -- + Qt::Key_unknown, // 64 0x40 -- unassigned -- + 0, // 65 0x41 (VK_A) | A key + 0, // 66 0x42 (VK_B) | B key + 0, // 67 0x43 (VK_C) | C key + 0, // 68 0x44 (VK_D) | D key + 0, // 69 0x45 (VK_E) | E key + 0, // 70 0x46 (VK_F) | F key + 0, // 71 0x47 (VK_G) | G key + 0, // 72 0x48 (VK_H) | H key + 0, // 73 0x49 (VK_I) | I key + 0, // 74 0x4A (VK_J) | J key + 0, // 75 0x4B (VK_K) | K key + 0, // 76 0x4C (VK_L) | L key + 0, // 77 0x4D (VK_M) | M key + 0, // 78 0x4E (VK_N) | N key + 0, // 79 0x4F (VK_O) | O key + 0, // 80 0x50 (VK_P) | P key + 0, // 81 0x51 (VK_Q) | Q key + 0, // 82 0x52 (VK_R) | R key + 0, // 83 0x53 (VK_S) | S key + 0, // 84 0x54 (VK_T) | T key + 0, // 85 0x55 (VK_U) | U key + 0, // 86 0x56 (VK_V) | V key + 0, // 87 0x57 (VK_W) | W key + 0, // 88 0x58 (VK_X) | X key + 0, // 89 0x59 (VK_Y) | Y key + 0, // 90 0x5A (VK_Z) | Z key + Qt::Key_Meta, // 91 0x5B VK_LWIN | Left Windows - MS Natural kbd + Qt::Key_Meta, // 92 0x5C VK_RWIN | Right Windows - MS Natural kbd + Qt::Key_Menu, // 93 0x5D VK_APPS | Application key-MS Natural kbd + Qt::Key_unknown, // 94 0x5E -- reserved -- + Qt::Key_Sleep, // 95 0x5F VK_SLEEP + Qt::Key_0, // 96 0x60 VK_NUMPAD0 | Numeric keypad 0 key + Qt::Key_1, // 97 0x61 VK_NUMPAD1 | Numeric keypad 1 key + Qt::Key_2, // 98 0x62 VK_NUMPAD2 | Numeric keypad 2 key + Qt::Key_3, // 99 0x63 VK_NUMPAD3 | Numeric keypad 3 key + Qt::Key_4, // 100 0x64 VK_NUMPAD4 | Numeric keypad 4 key + Qt::Key_5, // 101 0x65 VK_NUMPAD5 | Numeric keypad 5 key + Qt::Key_6, // 102 0x66 VK_NUMPAD6 | Numeric keypad 6 key + Qt::Key_7, // 103 0x67 VK_NUMPAD7 | Numeric keypad 7 key + Qt::Key_8, // 104 0x68 VK_NUMPAD8 | Numeric keypad 8 key + Qt::Key_9, // 105 0x69 VK_NUMPAD9 | Numeric keypad 9 key + Qt::Key_Asterisk, // 106 0x6A VK_MULTIPLY | Multiply key + Qt::Key_Plus, // 107 0x6B VK_ADD | Add key + Qt::Key_Comma, // 108 0x6C VK_SEPARATOR | Separator key + Qt::Key_Minus, // 109 0x6D VK_SUBTRACT | Subtract key + Qt::Key_Period, // 110 0x6E VK_DECIMAL | Decimal key + Qt::Key_Slash, // 111 0x6F VK_DIVIDE | Divide key + Qt::Key_F1, // 112 0x70 VK_F1 | F1 key + Qt::Key_F2, // 113 0x71 VK_F2 | F2 key + Qt::Key_F3, // 114 0x72 VK_F3 | F3 key + Qt::Key_F4, // 115 0x73 VK_F4 | F4 key + Qt::Key_F5, // 116 0x74 VK_F5 | F5 key + Qt::Key_F6, // 117 0x75 VK_F6 | F6 key + Qt::Key_F7, // 118 0x76 VK_F7 | F7 key + Qt::Key_F8, // 119 0x77 VK_F8 | F8 key + Qt::Key_F9, // 120 0x78 VK_F9 | F9 key + Qt::Key_F10, // 121 0x79 VK_F10 | F10 key + Qt::Key_F11, // 122 0x7A VK_F11 | F11 key + Qt::Key_F12, // 123 0x7B VK_F12 | F12 key + Qt::Key_F13, // 124 0x7C VK_F13 | F13 key + Qt::Key_F14, // 125 0x7D VK_F14 | F14 key + Qt::Key_F15, // 126 0x7E VK_F15 | F15 key + Qt::Key_F16, // 127 0x7F VK_F16 | F16 key + Qt::Key_F17, // 128 0x80 VK_F17 | F17 key + Qt::Key_F18, // 129 0x81 VK_F18 | F18 key + Qt::Key_F19, // 130 0x82 VK_F19 | F19 key + Qt::Key_F20, // 131 0x83 VK_F20 | F20 key + Qt::Key_F21, // 132 0x84 VK_F21 | F21 key + Qt::Key_F22, // 133 0x85 VK_F22 | F22 key + Qt::Key_F23, // 134 0x86 VK_F23 | F23 key + Qt::Key_F24, // 135 0x87 VK_F24 | F24 key + Qt::Key_unknown, // 136 0x88 -- unassigned -- + Qt::Key_unknown, // 137 0x89 -- unassigned -- + Qt::Key_unknown, // 138 0x8A -- unassigned -- + Qt::Key_unknown, // 139 0x8B -- unassigned -- + Qt::Key_unknown, // 140 0x8C -- unassigned -- + Qt::Key_unknown, // 141 0x8D -- unassigned -- + Qt::Key_unknown, // 142 0x8E -- unassigned -- + Qt::Key_unknown, // 143 0x8F -- unassigned -- + Qt::Key_NumLock, // 144 0x90 VK_NUMLOCK | Num Lock key + Qt::Key_ScrollLock, // 145 0x91 VK_SCROLL | Scroll Lock key + // Fujitsu/OASYS kbd -------------------- + 0, //Qt::Key_Jisho, // 146 0x92 VK_OEM_FJ_JISHO | 'Dictionary' key / + // VK_OEM_NEC_EQUAL = key on numpad on NEC PC-9800 kbd + Qt::Key_Massyo, // 147 0x93 VK_OEM_FJ_MASSHOU | 'Unregister word' key + Qt::Key_Touroku, // 148 0x94 VK_OEM_FJ_TOUROKU | 'Register word' key + 0, //Qt::Key_Oyayubi_Left,//149 0x95 VK_OEM_FJ_LOYA | 'Left OYAYUBI' key + 0, //Qt::Key_Oyayubi_Right,//150 0x96 VK_OEM_FJ_ROYA | 'Right OYAYUBI' key + Qt::Key_unknown, // 151 0x97 -- unassigned -- + Qt::Key_unknown, // 152 0x98 -- unassigned -- + Qt::Key_unknown, // 153 0x99 -- unassigned -- + Qt::Key_unknown, // 154 0x9A -- unassigned -- + Qt::Key_unknown, // 155 0x9B -- unassigned -- + Qt::Key_unknown, // 156 0x9C -- unassigned -- + Qt::Key_unknown, // 157 0x9D -- unassigned -- + Qt::Key_unknown, // 158 0x9E -- unassigned -- + Qt::Key_unknown, // 159 0x9F -- unassigned -- + Qt::Key_Shift, // 160 0xA0 VK_LSHIFT | Left Shift key + Qt::Key_Shift, // 161 0xA1 VK_RSHIFT | Right Shift key + Qt::Key_Control, // 162 0xA2 VK_LCONTROL | Left Ctrl key + Qt::Key_Control, // 163 0xA3 VK_RCONTROL | Right Ctrl key + Qt::Key_Alt, // 164 0xA4 VK_LMENU | Left Menu key + Qt::Key_Alt, // 165 0xA5 VK_RMENU | Right Menu key + Qt::Key_Back, // 166 0xA6 VK_BROWSER_BACK | Browser Back key + Qt::Key_Forward, // 167 0xA7 VK_BROWSER_FORWARD | Browser Forward key + Qt::Key_Refresh, // 168 0xA8 VK_BROWSER_REFRESH | Browser Refresh key + Qt::Key_Stop, // 169 0xA9 VK_BROWSER_STOP | Browser Stop key + Qt::Key_Search, // 170 0xAA VK_BROWSER_SEARCH | Browser Search key + Qt::Key_Favorites, // 171 0xAB VK_BROWSER_FAVORITES| Browser Favorites key + Qt::Key_HomePage, // 172 0xAC VK_BROWSER_HOME | Browser Start and Home key + Qt::Key_VolumeMute, // 173 0xAD VK_VOLUME_MUTE | Volume Mute key + Qt::Key_VolumeDown, // 174 0xAE VK_VOLUME_DOWN | Volume Down key + Qt::Key_VolumeUp, // 175 0xAF VK_VOLUME_UP | Volume Up key + Qt::Key_MediaNext, // 176 0xB0 VK_MEDIA_NEXT_TRACK | Next Track key + Qt::Key_MediaPrevious, //177 0xB1 VK_MEDIA_PREV_TRACK | Previous Track key + Qt::Key_MediaStop, // 178 0xB2 VK_MEDIA_STOP | Stop Media key + Qt::Key_MediaPlay, // 179 0xB3 VK_MEDIA_PLAY_PAUSE | Play/Pause Media key + Qt::Key_LaunchMail, // 180 0xB4 VK_LAUNCH_MAIL | Start Mail key + Qt::Key_LaunchMedia,// 181 0xB5 VK_LAUNCH_MEDIA_SELECT Select Media key + Qt::Key_Launch0, // 182 0xB6 VK_LAUNCH_APP1 | Start Application 1 key + Qt::Key_Launch1, // 183 0xB7 VK_LAUNCH_APP2 | Start Application 2 key + Qt::Key_unknown, // 184 0xB8 -- reserved -- + Qt::Key_unknown, // 185 0xB9 -- reserved -- + 0, // 186 0xBA VK_OEM_1 | ';:' for US + 0, // 187 0xBB VK_OEM_PLUS | '+' any country + 0, // 188 0xBC VK_OEM_COMMA | ',' any country + 0, // 189 0xBD VK_OEM_MINUS | '-' any country + 0, // 190 0xBE VK_OEM_PERIOD | '.' any country + 0, // 191 0xBF VK_OEM_2 | '/?' for US + 0, // 192 0xC0 VK_OEM_3 | '`~' for US + Qt::Key_unknown, // 193 0xC1 -- reserved -- + Qt::Key_unknown, // 194 0xC2 -- reserved -- + Qt::Key_unknown, // 195 0xC3 -- reserved -- + Qt::Key_unknown, // 196 0xC4 -- reserved -- + Qt::Key_unknown, // 197 0xC5 -- reserved -- + Qt::Key_unknown, // 198 0xC6 -- reserved -- + Qt::Key_unknown, // 199 0xC7 -- reserved -- + Qt::Key_unknown, // 200 0xC8 -- reserved -- + Qt::Key_unknown, // 201 0xC9 -- reserved -- + Qt::Key_unknown, // 202 0xCA -- reserved -- + Qt::Key_unknown, // 203 0xCB -- reserved -- + Qt::Key_unknown, // 204 0xCC -- reserved -- + Qt::Key_unknown, // 205 0xCD -- reserved -- + Qt::Key_unknown, // 206 0xCE -- reserved -- + Qt::Key_unknown, // 207 0xCF -- reserved -- + Qt::Key_unknown, // 208 0xD0 -- reserved -- + Qt::Key_unknown, // 209 0xD1 -- reserved -- + Qt::Key_unknown, // 210 0xD2 -- reserved -- + Qt::Key_unknown, // 211 0xD3 -- reserved -- + Qt::Key_unknown, // 212 0xD4 -- reserved -- + Qt::Key_unknown, // 213 0xD5 -- reserved -- + Qt::Key_unknown, // 214 0xD6 -- reserved -- + Qt::Key_unknown, // 215 0xD7 -- reserved -- + Qt::Key_unknown, // 216 0xD8 -- unassigned -- + Qt::Key_unknown, // 217 0xD9 -- unassigned -- + Qt::Key_unknown, // 218 0xDA -- unassigned -- + 0, // 219 0xDB VK_OEM_4 | '[{' for US + 0, // 220 0xDC VK_OEM_5 | '\|' for US + 0, // 221 0xDD VK_OEM_6 | ']}' for US + 0, // 222 0xDE VK_OEM_7 | ''"' for US + 0, // 223 0xDF VK_OEM_8 + Qt::Key_unknown, // 224 0xE0 -- reserved -- + Qt::Key_unknown, // 225 0xE1 VK_OEM_AX | 'AX' key on Japanese AX kbd + Qt::Key_unknown, // 226 0xE2 VK_OEM_102 | "<>" or "\|" on RT 102-key kbd + Qt::Key_unknown, // 227 0xE3 VK_ICO_HELP | Help key on ICO + Qt::Key_unknown, // 228 0xE4 VK_ICO_00 | 00 key on ICO + Qt::Key_unknown, // 229 0xE5 VK_PROCESSKEY | IME Process key + Qt::Key_unknown, // 230 0xE6 VK_ICO_CLEAR | + Qt::Key_unknown, // 231 0xE7 VK_PACKET | Unicode char as keystrokes + Qt::Key_unknown, // 232 0xE8 -- unassigned -- + // Nokia/Ericsson definitions --------------- + Qt::Key_unknown, // 233 0xE9 VK_OEM_RESET + Qt::Key_unknown, // 234 0xEA VK_OEM_JUMP + Qt::Key_unknown, // 235 0xEB VK_OEM_PA1 + Qt::Key_unknown, // 236 0xEC VK_OEM_PA2 + Qt::Key_unknown, // 237 0xED VK_OEM_PA3 + Qt::Key_unknown, // 238 0xEE VK_OEM_WSCTRL + Qt::Key_unknown, // 239 0xEF VK_OEM_CUSEL + Qt::Key_unknown, // 240 0xF0 VK_OEM_ATTN + Qt::Key_unknown, // 241 0xF1 VK_OEM_FINISH + Qt::Key_unknown, // 242 0xF2 VK_OEM_COPY + Qt::Key_unknown, // 243 0xF3 VK_OEM_AUTO + Qt::Key_unknown, // 244 0xF4 VK_OEM_ENLW + Qt::Key_unknown, // 245 0xF5 VK_OEM_BACKTAB + Qt::Key_unknown, // 246 0xF6 VK_ATTN | Attn key + Qt::Key_unknown, // 247 0xF7 VK_CRSEL | CrSel key + Qt::Key_unknown, // 248 0xF8 VK_EXSEL | ExSel key + Qt::Key_unknown, // 249 0xF9 VK_EREOF | Erase EOF key + Qt::Key_Play, // 250 0xFA VK_PLAY | Play key + Qt::Key_Zoom, // 251 0xFB VK_ZOOM | Zoom key + Qt::Key_unknown, // 252 0xFC VK_NONAME | Reserved + Qt::Key_unknown, // 253 0xFD VK_PA1 | PA1 key + Qt::Key_Clear, // 254 0xFE VK_OEM_CLEAR | Clear key + 0 +}; + +static const uint CmdTbl[] = { // Multimedia keys mapping table + // Dec | Hex | AppCommand + Qt::Key_unknown, // 0 0x00 + Qt::Key_Back, // 1 0x01 APPCOMMAND_BROWSER_BACKWARD + Qt::Key_Forward, // 2 0x02 APPCOMMAND_BROWSER_FORWARD + Qt::Key_Refresh, // 3 0x03 APPCOMMAND_BROWSER_REFRESH + Qt::Key_Stop, // 4 0x04 APPCOMMAND_BROWSER_STOP + Qt::Key_Search, // 5 0x05 APPCOMMAND_BROWSER_SEARCH + Qt::Key_Favorites, // 6 0x06 APPCOMMAND_BROWSER_FAVORITES + Qt::Key_Home, // 7 0x07 APPCOMMAND_BROWSER_HOME + Qt::Key_VolumeMute, // 8 0x08 APPCOMMAND_VOLUME_MUTE + Qt::Key_VolumeDown, // 9 0x09 APPCOMMAND_VOLUME_DOWN + Qt::Key_VolumeUp, // 10 0x0a APPCOMMAND_VOLUME_UP + Qt::Key_MediaNext, // 11 0x0b APPCOMMAND_MEDIA_NEXTTRACK + Qt::Key_MediaPrevious, // 12 0x0c APPCOMMAND_MEDIA_PREVIOUSTRACK + Qt::Key_MediaStop, // 13 0x0d APPCOMMAND_MEDIA_STOP + Qt::Key_MediaTogglePlayPause, // 14 0x0e APPCOMMAND_MEDIA_PLAYPAUSE + Qt::Key_LaunchMail, // 15 0x0f APPCOMMAND_LAUNCH_MAIL + Qt::Key_LaunchMedia, // 16 0x10 APPCOMMAND_LAUNCH_MEDIA_SELECT + Qt::Key_Launch0, // 17 0x11 APPCOMMAND_LAUNCH_APP1 + Qt::Key_Launch1, // 18 0x12 APPCOMMAND_LAUNCH_APP2 + Qt::Key_BassDown, // 19 0x13 APPCOMMAND_BASS_DOWN + Qt::Key_BassBoost, // 20 0x14 APPCOMMAND_BASS_BOOST + Qt::Key_BassUp, // 21 0x15 APPCOMMAND_BASS_UP + Qt::Key_TrebleDown, // 22 0x16 APPCOMMAND_TREBLE_DOWN + Qt::Key_TrebleUp, // 23 0x17 APPCOMMAND_TREBLE_UP + Qt::Key_MicMute, // 24 0x18 APPCOMMAND_MICROPHONE_VOLUME_MUTE + Qt::Key_MicVolumeDown, // 25 0x19 APPCOMMAND_MICROPHONE_VOLUME_DOWN + Qt::Key_MicVolumeUp, // 26 0x1a APPCOMMAND_MICROPHONE_VOLUME_UP + Qt::Key_Help, // 27 0x1b APPCOMMAND_HELP + Qt::Key_Find, // 28 0x1c APPCOMMAND_FIND + Qt::Key_New, // 29 0x1d APPCOMMAND_NEW + Qt::Key_Open, // 30 0x1e APPCOMMAND_OPEN + Qt::Key_Close, // 31 0x1f APPCOMMAND_CLOSE + Qt::Key_Save, // 32 0x20 APPCOMMAND_SAVE + Qt::Key_Print, // 33 0x21 APPCOMMAND_PRINT + Qt::Key_Undo, // 34 0x22 APPCOMMAND_UNDO + Qt::Key_Redo, // 35 0x23 APPCOMMAND_REDO + Qt::Key_Copy, // 36 0x24 APPCOMMAND_COPY + Qt::Key_Cut, // 37 0x25 APPCOMMAND_CUT + Qt::Key_Paste, // 38 0x26 APPCOMMAND_PASTE + Qt::Key_Reply, // 39 0x27 APPCOMMAND_REPLY_TO_MAIL + Qt::Key_MailForward, // 40 0x28 APPCOMMAND_FORWARD_MAIL + Qt::Key_Send, // 41 0x29 APPCOMMAND_SEND_MAIL + Qt::Key_Spell, // 42 0x2a APPCOMMAND_SPELL_CHECK + Qt::Key_unknown, // 43 0x2b APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE + Qt::Key_unknown, // 44 0x2c APPCOMMAND_MIC_ON_OFF_TOGGLE + Qt::Key_unknown, // 45 0x2d APPCOMMAND_CORRECTION_LIST + Qt::Key_MediaPlay, // 46 0x2e APPCOMMAND_MEDIA_PLAY + Qt::Key_MediaPause, // 47 0x2f APPCOMMAND_MEDIA_PAUSE + Qt::Key_MediaRecord, // 48 0x30 APPCOMMAND_MEDIA_RECORD + Qt::Key_AudioForward, // 49 0x31 APPCOMMAND_MEDIA_FAST_FORWARD + Qt::Key_AudioRewind, // 50 0x32 APPCOMMAND_MEDIA_REWIND + Qt::Key_ChannelDown, // 51 0x33 APPCOMMAND_MEDIA_CHANNEL_DOWN + Qt::Key_ChannelUp // 52 0x34 APPCOMMAND_MEDIA_CHANNEL_UP +}; + +// Possible modifier states. +// NOTE: The order of these states match the order in QWindowsKeyMapper::updatePossibleKeyCodes()! +static const Qt::KeyboardModifiers ModsTbl[] = { + Qt::NoModifier, // 0 + Qt::ShiftModifier, // 1 + Qt::ControlModifier, // 2 + Qt::ControlModifier | Qt::ShiftModifier, // 3 + Qt::AltModifier, // 4 + Qt::AltModifier | Qt::ShiftModifier, // 5 + Qt::AltModifier | Qt::ControlModifier, // 6 + Qt::AltModifier | Qt::ShiftModifier | Qt::ControlModifier, // 7 + Qt::NoModifier, // Fall-back to raw Key_* +}; +static const size_t NumMods = sizeof ModsTbl / sizeof *ModsTbl; +Q_STATIC_ASSERT((NumMods == KeyboardLayoutItem::NumQtKeys)); + +/** + Remap return or action key to select key for windows mobile. +*/ +inline int winceKeyBend(int keyCode) +{ + return KeyTbl[keyCode]; +} + +#ifdef Q_OS_WINCE +QT_BEGIN_INCLUDE_NAMESPACE +int ToUnicode(UINT vk, int /*scancode*/, unsigned char* /*kbdBuffer*/, LPWSTR unicodeBuffer, int, int) +{ + QT_USE_NAMESPACE + QChar* buf = reinterpret_cast< QChar*>(unicodeBuffer); + if (KeyTbl[vk] == 0) { + buf[0] = vk; + return 1; + } + return 0; +} + +int ToAscii(UINT vk, int scancode, unsigned char *kbdBuffer, LPWORD unicodeBuffer, int flag) +{ + return ToUnicode(vk, scancode, kbdBuffer, (LPWSTR) unicodeBuffer, 0, flag); + +} + +bool GetKeyboardState(unsigned char* kbuffer) +{ + for (int i=0; i< 256; ++i) + kbuffer[i] = GetAsyncKeyState(i); + return true; +} +QT_END_INCLUDE_NAMESPACE +#endif // Q_OS_WINCE + +// Translate a VK into a Qt key code, or unicode character +static inline int toKeyOrUnicode(int vk, int scancode, unsigned char *kbdBuffer, bool *isDeadkey = 0) +{ + Q_ASSERT(vk > 0 && vk < 256); + int code = 0; + QChar unicodeBuffer[5]; + int res = ToUnicode(vk, scancode, kbdBuffer, reinterpret_cast(unicodeBuffer), 5, 0); + // When Ctrl modifier is used ToUnicode does not return correct values. In order to assign the + // right key the control modifier is removed for just that function if the previous call failed. + if (res == 0 && kbdBuffer[VK_CONTROL]) { + const unsigned char controlState = kbdBuffer[VK_CONTROL]; + kbdBuffer[VK_CONTROL] = 0; + res = ToUnicode(vk, scancode, kbdBuffer, reinterpret_cast(unicodeBuffer), 5, 0); + kbdBuffer[VK_CONTROL] = controlState; + } + if (res) + code = unicodeBuffer[0].toUpper().unicode(); + + // Qt::Key_*'s are not encoded below 0x20, so try again, and DEL keys (0x7f) is encoded with a + // proper Qt::Key_ code + if (code < 0x20 || code == 0x7f) // Handles res==0 too + code = winceKeyBend(vk); + + if (isDeadkey) + *isDeadkey = (res == -1); + + return code == Qt::Key_unknown ? 0 : code; +} + +static inline int asciiToKeycode(char a, int state) +{ + if (a >= 'a' && a <= 'z') + a = toupper(a); + if ((state & Qt::ControlModifier) != 0) { + if (a >= 0 && a <= 31) // Ctrl+@..Ctrl+A..CTRL+Z..Ctrl+_ + a += '@'; // to @..A..Z.._ + } + return a & 0xff; +} + +static inline bool isModifierKey(int code) +{ + return (code >= Qt::Key_Shift) && (code <= Qt::Key_ScrollLock); +} +// Key translation -----------------------------------------------------------------------[ end ]--- + + +// Keyboard map private ----------------------------------------------------------------[ start ]--- + +void QWindowsKeyMapper::deleteLayouts() +{ + for (size_t i = 0; i < NumKeyboardLayoutItems; ++i) + keyLayout[i].exists = false; +} + +void QWindowsKeyMapper::changeKeyboard() +{ + deleteLayouts(); + + /* MAKELCID()'s first argument is a WORD, and GetKeyboardLayout() + * returns a DWORD. */ + + LCID newLCID = MAKELCID((quintptr)GetKeyboardLayout(0), SORT_DEFAULT); +// keyboardInputLocale = qt_localeFromLCID(newLCID); + + bool bidi = false; + wchar_t LCIDFontSig[16]; + if (GetLocaleInfo(newLCID, LOCALE_FONTSIGNATURE, LCIDFontSig, sizeof(LCIDFontSig) / sizeof(wchar_t)) + && (LCIDFontSig[7] & (wchar_t)0x0800)) + bidi = true; + + keyboardInputDirection = bidi ? Qt::RightToLeft : Qt::LeftToRight; +} + +// Helper function that is used when obtaining the list of characters that can be produced by one key and +// every possible combination of modifiers +inline void setKbdState(unsigned char *kbd, bool shift, bool ctrl, bool alt) +{ + kbd[VK_LSHIFT ] = (shift ? 0x80 : 0); + kbd[VK_SHIFT ] = (shift ? 0x80 : 0); + kbd[VK_LCONTROL] = (ctrl ? 0x80 : 0); + kbd[VK_CONTROL ] = (ctrl ? 0x80 : 0); + kbd[VK_RMENU ] = (alt ? 0x80 : 0); + kbd[VK_MENU ] = (alt ? 0x80 : 0); +} + +// Adds the msg's key to keyLayout if it is not yet present there +void QWindowsKeyMapper::updateKeyMap(const MSG &msg) +{ + unsigned char kbdBuffer[256]; // Will hold the complete keyboard state + GetKeyboardState(kbdBuffer); + const quint32 scancode = (msg.lParam >> 16) & scancodeBitmask; + updatePossibleKeyCodes(kbdBuffer, scancode, msg.wParam); +} + +// Fills keyLayout for that vk_key. Values are all characters one can type using that key +// (in connection with every combination of modifiers) and whether these "characters" are +// dead keys. +void QWindowsKeyMapper::updatePossibleKeyCodes(unsigned char *kbdBuffer, quint32 scancode, + quint32 vk_key) +{ + if (!vk_key || (keyLayout[vk_key].exists && !keyLayout[vk_key].dirty)) + return; + + // Copy keyboard state, so we can modify and query output for each possible permutation + unsigned char buffer[256]; + memcpy(buffer, kbdBuffer, sizeof(buffer)); + // Always 0, as Windows doesn't treat these as modifiers; + buffer[VK_LWIN ] = 0; + buffer[VK_RWIN ] = 0; + buffer[VK_CAPITAL ] = 0; + buffer[VK_NUMLOCK ] = 0; + buffer[VK_SCROLL ] = 0; + // Always 0, since we'll only change the other versions + buffer[VK_RSHIFT ] = 0; + buffer[VK_RCONTROL] = 0; + buffer[VK_LMENU ] = 0; // Use right Alt, since left Ctrl + right Alt is considered AltGraph + + // keyLayout contains the actual characters which can be written using the vk_key together with the + // different modifiers. '2' together with shift will for example cause the character + // to be @ for a US key layout (thus keyLayout[vk_key].qtKey[1] will be @). In addition to that + // it stores whether the resulting key is a dead key as these keys have to be handled later. + bool isDeadKey = false; + keyLayout[vk_key].deadkeys = 0; + keyLayout[vk_key].dirty = false; + keyLayout[vk_key].exists = true; + setKbdState(buffer, false, false, false); + keyLayout[vk_key].qtKey[0] = toKeyOrUnicode(vk_key, scancode, buffer, &isDeadKey); + keyLayout[vk_key].deadkeys |= isDeadKey ? 0x01 : 0; + setKbdState(buffer, true, false, false); + keyLayout[vk_key].qtKey[1] = toKeyOrUnicode(vk_key, scancode, buffer, &isDeadKey); + keyLayout[vk_key].deadkeys |= isDeadKey ? 0x02 : 0; + setKbdState(buffer, false, true, false); + keyLayout[vk_key].qtKey[2] = toKeyOrUnicode(vk_key, scancode, buffer, &isDeadKey); + keyLayout[vk_key].deadkeys |= isDeadKey ? 0x04 : 0; + setKbdState(buffer, true, true, false); + keyLayout[vk_key].qtKey[3] = toKeyOrUnicode(vk_key, scancode, buffer, &isDeadKey); + keyLayout[vk_key].deadkeys |= isDeadKey ? 0x08 : 0; + setKbdState(buffer, false, false, true); + keyLayout[vk_key].qtKey[4] = toKeyOrUnicode(vk_key, scancode, buffer, &isDeadKey); + keyLayout[vk_key].deadkeys |= isDeadKey ? 0x10 : 0; + setKbdState(buffer, true, false, true); + keyLayout[vk_key].qtKey[5] = toKeyOrUnicode(vk_key, scancode, buffer, &isDeadKey); + keyLayout[vk_key].deadkeys |= isDeadKey ? 0x20 : 0; + setKbdState(buffer, false, true, true); + keyLayout[vk_key].qtKey[6] = toKeyOrUnicode(vk_key, scancode, buffer, &isDeadKey); + keyLayout[vk_key].deadkeys |= isDeadKey ? 0x40 : 0; + setKbdState(buffer, true, true, true); + keyLayout[vk_key].qtKey[7] = toKeyOrUnicode(vk_key, scancode, buffer, &isDeadKey); + keyLayout[vk_key].deadkeys |= isDeadKey ? 0x80 : 0; + // Add a fall back key for layouts which don't do composition and show non-latin1 characters + int fallbackKey = winceKeyBend(vk_key); + if (!fallbackKey || fallbackKey == Qt::Key_unknown) { + fallbackKey = 0; + if (vk_key != keyLayout[vk_key].qtKey[0] && vk_key < 0x5B && vk_key > 0x2F) + fallbackKey = vk_key; + } + keyLayout[vk_key].qtKey[8] = fallbackKey; + + // If one of the values inserted into the keyLayout above, can be considered a dead key, we have + // to run the workaround below. + if (keyLayout[vk_key].deadkeys) { + // Push a Space, then the original key through the low-level ToAscii functions. + // We do this because these functions (ToAscii / ToUnicode) will alter the internal state of + // the keyboard driver By doing the following, we set the keyboard driver state back to what + // it was before we wrecked it with the code above. + // We need to push the space with an empty keystate map, since the driver checks the map for + // transitions in modifiers, so this helps us capture all possible deadkeys. + unsigned char emptyBuffer[256]; + memset(emptyBuffer, 0, sizeof(emptyBuffer)); + ::ToAscii(VK_SPACE, 0, emptyBuffer, reinterpret_cast(&buffer), 0); + ::ToAscii(vk_key, scancode, kbdBuffer, reinterpret_cast(&buffer), 0); + } + if (QWindowsContext::verbose > 1 && lcQpaEvents().isDebugEnabled()) { + QString message; + QDebug debug(&message); + debug <<__FUNCTION__ << " for virtual key = 0x" << hex << vk_key << dec<< '\n'; + for (size_t i = 0; i < NumMods; ++i) { + const quint32 qtKey = keyLayout[vk_key].qtKey[i]; + debug << " [" << i << "] (" << qtKey << ',' + << hex << showbase << qtKey << noshowbase << dec + << ",'" << char(qtKey ? qtKey : 0x03) << "')"; + if (keyLayout[vk_key].deadkeys & (1<flags() & Qt::WindowMinimizeButtonHint)?enabled:disabled); + bool maximized = IsZoomed(topLevelHwnd); + + EnableMenuItem(menu, SC_MAXIMIZE, ! (topLevel->flags() & Qt::WindowMaximizeButtonHint) || maximized?disabled:enabled); + EnableMenuItem(menu, SC_RESTORE, maximized?enabled:disabled); + + // We should _not_ check with the setFixedSize(x,y) case here, since Windows is not able to check + // this and our menu here would be out-of-sync with the menu produced by mouse-click on the + // System Menu, or right-click on the title bar. + EnableMenuItem(menu, SC_SIZE, (topLevel->flags() & Qt::MSWindowsFixedSizeDialogHint) || maximized?disabled:enabled); + EnableMenuItem(menu, SC_MOVE, maximized?disabled:enabled); + EnableMenuItem(menu, SC_CLOSE, enabled); + // Set bold on close menu item + MENUITEMINFO closeItem; + closeItem.cbSize = sizeof(MENUITEMINFO); + closeItem.fMask = MIIM_STATE; + closeItem.fState = MFS_DEFAULT; + SetMenuItemInfo(menu, SC_CLOSE, FALSE, &closeItem); + +#undef enabled +#undef disabled +#endif // !Q_OS_WINCE + const QPoint topLeft = topLevel->geometry().topLeft() * QWindowsScaling::factor(); + const int ret = TrackPopupMenuEx(menu, + TPM_LEFTALIGN | TPM_TOPALIGN | TPM_NONOTIFY | TPM_RETURNCMD, + topLeft.x(), topLeft.y(), topLevelHwnd, 0); + if (ret) + qWindowsWndProc(topLevelHwnd, WM_SYSCOMMAND, ret, 0); +} + +static inline void sendExtendedPressRelease(QWindow *w, int k, + Qt::KeyboardModifiers mods, + quint32 nativeScanCode, + quint32 nativeVirtualKey, + quint32 nativeModifiers, + const QString & text = QString(), + bool autorep = false, + ushort count = 1) +{ + QWindowSystemInterface::handleExtendedKeyEvent(w, QEvent::KeyPress, k, mods, nativeScanCode, nativeVirtualKey, nativeModifiers, text, autorep, count); + QWindowSystemInterface::handleExtendedKeyEvent(w, QEvent::KeyRelease, k, mods, nativeScanCode, nativeVirtualKey, nativeModifiers, text, autorep, count); +} + +/*! + \brief To be called from the window procedure. +*/ + +bool QWindowsKeyMapper::translateKeyEvent(QWindow *widget, HWND hwnd, + const MSG &msg, LRESULT *result) +{ + *result = 0; + + // Reset layout map when system keyboard layout is changed + if (msg.message == WM_INPUTLANGCHANGE) { + deleteLayouts(); + return true; + } + +#if defined(WM_APPCOMMAND) + if (msg.message == WM_APPCOMMAND) + return translateMultimediaKeyEventInternal(widget, msg); +#endif + + // WM_(IME_)CHAR messages already contain the character in question so there is + // no need to fiddle with our key map. In any other case add this key to the + // keymap if it is not present yet. + if (msg.message != WM_CHAR && msg.message != WM_IME_CHAR) + updateKeyMap(msg); + + MSG peekedMsg; + // consume dead chars?(for example, typing '`','a' resulting in a-accent). + if (PeekMessage(&peekedMsg, hwnd, 0, 0, PM_NOREMOVE) && peekedMsg.message == WM_DEADCHAR) + return true; + + return translateKeyEventInternal(widget, msg, false); +} + +bool QWindowsKeyMapper::translateMultimediaKeyEventInternal(QWindow *window, const MSG &msg) +{ +#if defined(WM_APPCOMMAND) + const int cmd = GET_APPCOMMAND_LPARAM(msg.lParam); + const int dwKeys = GET_KEYSTATE_LPARAM(msg.lParam); + int state = 0; + state |= (dwKeys & MK_SHIFT ? int(Qt::ShiftModifier) : 0); + state |= (dwKeys & MK_CONTROL ? int(Qt::ControlModifier) : 0); + + QWindow *receiver = m_keyGrabber ? m_keyGrabber : window; + + if (cmd < 0 || cmd > 52) + return false; + + const int qtKey = CmdTbl[cmd]; + sendExtendedPressRelease(receiver, qtKey, Qt::KeyboardModifier(state), 0, 0, 0); + return true; +#else + Q_UNREACHABLE(); + return false; +#endif +} + +bool QWindowsKeyMapper::translateKeyEventInternal(QWindow *window, const MSG &msg, bool /* grab */) +{ + const int msgType = msg.message; + + const quint32 scancode = (msg.lParam >> 16) & scancodeBitmask; + const quint32 vk_key = msg.wParam; + quint32 nModifiers = 0; + + QWindow *receiver = m_keyGrabber ? m_keyGrabber : window; + + // Map native modifiers to some bit representation + nModifiers |= (GetKeyState(VK_LSHIFT ) & 0x80 ? ShiftLeft : 0); + nModifiers |= (GetKeyState(VK_RSHIFT ) & 0x80 ? ShiftRight : 0); + nModifiers |= (GetKeyState(VK_LCONTROL) & 0x80 ? ControlLeft : 0); + nModifiers |= (GetKeyState(VK_RCONTROL) & 0x80 ? ControlRight : 0); + nModifiers |= (GetKeyState(VK_LMENU ) & 0x80 ? AltLeft : 0); + nModifiers |= (GetKeyState(VK_RMENU ) & 0x80 ? AltRight : 0); + nModifiers |= (GetKeyState(VK_LWIN ) & 0x80 ? MetaLeft : 0); + nModifiers |= (GetKeyState(VK_RWIN ) & 0x80 ? MetaRight : 0); + // Add Lock keys to the same bits + nModifiers |= (GetKeyState(VK_CAPITAL ) & 0x01 ? CapsLock : 0); + nModifiers |= (GetKeyState(VK_NUMLOCK ) & 0x01 ? NumLock : 0); + nModifiers |= (GetKeyState(VK_SCROLL ) & 0x01 ? ScrollLock : 0); + + if (msg.lParam & ExtendedKey) + nModifiers |= msg.lParam & ExtendedKey; + + // Get the modifier states (may be altered later, depending on key code) + int state = 0; + state |= (nModifiers & ShiftAny ? int(Qt::ShiftModifier) : 0); + state |= (nModifiers & ControlAny ? int(Qt::ControlModifier) : 0); + state |= (nModifiers & AltAny ? int(Qt::AltModifier) : 0); + state |= (nModifiers & MetaAny ? int(Qt::MetaModifier) : 0); + + // A multi-character key or a Input method character + // not found by our look-ahead + if (msgType == WM_CHAR || msgType == WM_IME_CHAR) { + sendExtendedPressRelease(receiver, 0, Qt::KeyboardModifier(state), scancode, vk_key, nModifiers, messageKeyText(msg), false); + return true; + } + + bool result = false; + // handle Directionality changes (BiDi) with RTL extensions + if (m_useRTLExtensions) { + static int dirStatus = 0; + if (!dirStatus && state == Qt::ControlModifier + && msg.wParam == VK_CONTROL + && msgType == WM_KEYDOWN) { + if (GetKeyState(VK_LCONTROL) < 0) + dirStatus = VK_LCONTROL; + else if (GetKeyState(VK_RCONTROL) < 0) + dirStatus = VK_RCONTROL; + } else if (dirStatus) { + if (msgType == WM_KEYDOWN) { + if (msg.wParam == VK_SHIFT) { + if (dirStatus == VK_LCONTROL && GetKeyState(VK_LSHIFT) < 0) + dirStatus = VK_LSHIFT; + else if (dirStatus == VK_RCONTROL && GetKeyState(VK_RSHIFT) < 0) + dirStatus = VK_RSHIFT; + } else { + dirStatus = 0; + } + } else if (msgType == WM_KEYUP) { + if (dirStatus == VK_LSHIFT + && ((msg.wParam == VK_SHIFT && GetKeyState(VK_LCONTROL)) + || (msg.wParam == VK_CONTROL && GetKeyState(VK_LSHIFT)))) { + sendExtendedPressRelease(receiver, Qt::Key_Direction_L, 0, scancode, msg.wParam, nModifiers, QString(), false); + result = true; + dirStatus = 0; + } else if (dirStatus == VK_RSHIFT + && ( (msg.wParam == VK_SHIFT && GetKeyState(VK_RCONTROL)) + || (msg.wParam == VK_CONTROL && GetKeyState(VK_RSHIFT)))) { + sendExtendedPressRelease(receiver, Qt::Key_Direction_R, 0, scancode, msg.wParam, nModifiers, QString(), false); + result = true; + dirStatus = 0; + } else { + dirStatus = 0; + } + } else { + dirStatus = 0; + } + } + } // RTL + + // IME will process these keys, so simply return + if (msg.wParam == VK_PROCESSKEY) + return true; + + // Ignore invalid virtual keycodes (see bugs 127424, QTBUG-3630) + if (msg.wParam == 0 || msg.wParam == 0xFF) + return true; + + // Translate VK_* (native) -> Key_* (Qt) keys + int modifiersIndex = 0; + modifiersIndex |= (nModifiers & ShiftAny ? 0x1 : 0); + modifiersIndex |= (nModifiers & ControlAny ? 0x2 : 0); + modifiersIndex |= (nModifiers & AltAny ? 0x4 : 0); + + int code = keyLayout[vk_key].qtKey[modifiersIndex]; + + // Invert state logic: + // If the key actually pressed is a modifier key, then we remove its modifier key from the + // state, since a modifier-key can't have itself as a modifier + if (code == Qt::Key_Control) + state = state ^ Qt::ControlModifier; + else if (code == Qt::Key_Shift) + state = state ^ Qt::ShiftModifier; + else if (code == Qt::Key_Alt) + state = state ^ Qt::AltModifier; + + // If the bit 24 of lParm is set you received a enter, + // otherwise a Return. (This is the extended key bit) + if ((code == Qt::Key_Return) && (msg.lParam & 0x1000000)) + code = Qt::Key_Enter; + + // All cursor keys without extended bit + if (!(msg.lParam & 0x1000000)) { + switch (code) { + case Qt::Key_Left: + case Qt::Key_Right: + case Qt::Key_Up: + case Qt::Key_Down: + case Qt::Key_PageUp: + case Qt::Key_PageDown: + case Qt::Key_Home: + case Qt::Key_End: + case Qt::Key_Insert: + case Qt::Key_Delete: + case Qt::Key_Asterisk: + case Qt::Key_Plus: + case Qt::Key_Minus: + case Qt::Key_Period: + case Qt::Key_Comma: + case Qt::Key_0: + case Qt::Key_1: + case Qt::Key_2: + case Qt::Key_3: + case Qt::Key_4: + case Qt::Key_5: + case Qt::Key_6: + case Qt::Key_7: + case Qt::Key_8: + case Qt::Key_9: + state |= ((msg.wParam >= '0' && msg.wParam <= '9') + || (msg.wParam >= VK_OEM_PLUS && msg.wParam <= VK_OEM_3)) + ? 0 : int(Qt::KeypadModifier); + default: + if ((uint)msg.lParam == 0x004c0001 || (uint)msg.lParam == 0xc04c0001) + state |= Qt::KeypadModifier; + break; + } + } + // Other keys with with extended bit + else { + switch (code) { + case Qt::Key_Enter: + case Qt::Key_Slash: + case Qt::Key_NumLock: + state |= Qt::KeypadModifier; + default: + break; + } + } + + // KEYDOWN --------------------------------------------------------------------------------- + if (msgType == WM_KEYDOWN || msgType == WM_IME_KEYDOWN || msgType == WM_SYSKEYDOWN) { + // Get the last record of this key press, so we can validate the current state + // The record is not removed from the list + KeyRecord *rec = key_recorder.findKey(msg.wParam, false); + + // If rec's state doesn't match the current state, something has changed behind our back + // (Consumed by modal widget is one possibility) So, remove the record from the list + // This will stop the auto-repeat of the key, should a modifier change, for example + if (rec && rec->state != state) { + key_recorder.findKey(msg.wParam, true); + rec = 0; + } + + // Find unicode character from Windows Message Queue + MSG wm_char; + UINT charType = (msgType == WM_KEYDOWN + ? WM_CHAR + : msgType == WM_IME_KEYDOWN ? WM_IME_CHAR : WM_SYSCHAR); + + QChar uch; + if (PeekMessage(&wm_char, 0, charType, charType, PM_REMOVE)) { + // Found a ?_CHAR + uch = QChar((ushort)wm_char.wParam); + if (msgType == WM_SYSKEYDOWN && uch.isLetter() && (msg.lParam & KF_ALTDOWN)) + uch = uch.toLower(); // (See doc of WM_SYSCHAR) Alt-letter + if (!code && !uch.row()) + code = asciiToKeycode(uch.cell(), state); + } + + // Special handling for the WM_IME_KEYDOWN message. Microsoft IME (Korean) will not + // generate a WM_IME_CHAR message corresponding to this message. We might get wrong + // results, if we map this virtual key-code directly (for eg '?' US layouts). So try + // to find the correct key using the current message parameters & keyboard state. + if (uch.isNull() && msgType == WM_IME_KEYDOWN) { + BYTE keyState[256]; + wchar_t newKey[3] = {0}; + GetKeyboardState(keyState); + int val = ToUnicode(vk_key, scancode, keyState, newKey, 2, 0); + if (val == 1) { + uch = QChar(newKey[0]); + } else { + // If we are still not able to find a unicode key, pass the WM_IME_KEYDOWN + // message to DefWindowProc() for generating a proper WM_KEYDOWN. + return false; + } + } + + // If no ?_CHAR was found in the queue; deduct character from the ?_KEYDOWN parameters + if (uch.isNull()) { + if (msg.wParam == VK_DELETE) { + uch = QChar(QLatin1Char(0x7f)); // Windows doesn't know this one. + } else { + if (msgType != WM_SYSKEYDOWN || !code) { + UINT map = MapVirtualKey(msg.wParam, 2); + // If the high bit of the return value is set, it's a deadkey + if (!(map & 0x80000000)) + uch = QChar((ushort)map); + } + } + if (!code && !uch.row()) + code = asciiToKeycode(uch.cell(), state); + } + + // Special handling of global Windows hotkeys + if (state == Qt::AltModifier) { + switch (code) { + case Qt::Key_Escape: + case Qt::Key_Tab: + case Qt::Key_Enter: + case Qt::Key_F4: + return false; // Send the event on to Windows + case Qt::Key_Space: + // do not pass this key to windows, we will process it ourselves + showSystemMenu(receiver); + return true; + default: + break; + } + } + + // Map SHIFT + Tab to SHIFT + BackTab, QShortcutMap knows about this translation + if (code == Qt::Key_Tab && (state & Qt::ShiftModifier) == Qt::ShiftModifier) + code = Qt::Key_Backtab; + + // If we have a record, it means that the key is already pressed, the state is the same + // so, we have an auto-repeating key + if (rec) { + if (code < Qt::Key_Shift || code > Qt::Key_ScrollLock) { + QWindowSystemInterface::handleExtendedKeyEvent(receiver, QEvent::KeyRelease, code, + Qt::KeyboardModifier(state), scancode, msg.wParam, nModifiers, rec->text, true); + QWindowSystemInterface::handleExtendedKeyEvent(receiver, QEvent::KeyPress, code, + Qt::KeyboardModifier(state), scancode, msg.wParam, nModifiers, rec->text, true); + result = true; + } + } + // No record of the key being previous pressed, so we now send a QEvent::KeyPress event, + // and store the key data into our records. + else { + const QString text = uch.isNull() ? QString() : QString(uch); + const char a = uch.row() ? 0 : uch.cell(); + const Qt::KeyboardModifiers modifiers(state); +#ifndef QT_NO_SHORTCUT + // Is Qt interested in the context menu key? + if (modifiers == Qt::SHIFT && code == Qt::Key_F10 + && !QGuiApplicationPrivate::instance()->shortcutMap.hasShortcutForKeySequence(QKeySequence(Qt::SHIFT + Qt::Key_F10))) { + return false; + } +#endif // !QT_NO_SHORTCUT + key_recorder.storeKey(msg.wParam, a, state, text); + QWindowSystemInterface::handleExtendedKeyEvent(receiver, QEvent::KeyPress, code, + modifiers, scancode, msg.wParam, nModifiers, text, false); + result =true; + bool store = true; +#ifndef Q_OS_WINCE + // Alt+ go to the Win32 menu system if unhandled by Qt + if (msgType == WM_SYSKEYDOWN && !result && a) { + HWND parent = GetParent(QWindowsWindow::handleOf(receiver)); + while (parent) { + if (GetMenu(parent)) { + SendMessage(parent, WM_SYSCOMMAND, SC_KEYMENU, a); + store = false; + result = true; + break; + } + parent = GetParent(parent); + } + } +#endif // !Q_OS_WINCE + if (!store) + key_recorder.findKey(msg.wParam, true); + } + } + + // KEYUP ----------------------------------------------------------------------------------- + else { + // Try to locate the key in our records, and remove it if it exists. + // The key may not be in our records if, for example, the down event was handled by + // win32 natively, or our window gets focus while a key is already press, but now gets + // the key release event. + KeyRecord* rec = key_recorder.findKey(msg.wParam, true); + if (!rec && !(code == Qt::Key_Shift + || code == Qt::Key_Control + || code == Qt::Key_Meta + || code == Qt::Key_Alt)) { + // Someone ate the key down event + } else { + if (!code) + code = asciiToKeycode(rec->ascii ? rec->ascii : msg.wParam, state); + + // Map SHIFT + Tab to SHIFT + BackTab, QShortcutMap knows about this translation + if (code == Qt::Key_Tab && (state & Qt::ShiftModifier) == Qt::ShiftModifier) + code = Qt::Key_Backtab; + QWindowSystemInterface::handleExtendedKeyEvent(receiver, QEvent::KeyRelease, code, + Qt::KeyboardModifier(state), scancode, msg.wParam, nModifiers, + (rec ? rec->text : QString()), false); + result = true; +#ifndef Q_OS_WINCE + // don't pass Alt to Windows unless we are embedded in a non-Qt window + if (code == Qt::Key_Alt) { + const QWindowsContext *context = QWindowsContext::instance(); + HWND parent = GetParent(QWindowsWindow::handleOf(receiver)); + while (parent) { + if (!context->findPlatformWindow(parent) && GetMenu(parent)) { + result = false; + break; + } + parent = GetParent(parent); + } + } +#endif + } + } + return result; +} + +Qt::KeyboardModifiers QWindowsKeyMapper::queryKeyboardModifiers() +{ + Qt::KeyboardModifiers modifiers = Qt::NoModifier; + if (GetKeyState(VK_SHIFT) < 0) + modifiers |= Qt::ShiftModifier; + if (GetKeyState(VK_CONTROL) < 0) + modifiers |= Qt::ControlModifier; + if (GetKeyState(VK_MENU) < 0) + modifiers |= Qt::AltModifier; + return modifiers; +} + +QList QWindowsKeyMapper::possibleKeys(const QKeyEvent *e) const +{ + QList result; + + const KeyboardLayoutItem &kbItem = keyLayout[e->nativeVirtualKey()]; + if (!kbItem.exists) + return result; + + quint32 baseKey = kbItem.qtKey[0]; + Qt::KeyboardModifiers keyMods = e->modifiers(); + if (baseKey == Qt::Key_Return && (e->nativeModifiers() & ExtendedKey)) { + result << int(Qt::Key_Enter + keyMods); + return result; + } + result << int(baseKey + keyMods); // The base key is _always_ valid, of course + + for (size_t i = 1; i < NumMods; ++i) { + Qt::KeyboardModifiers neededMods = ModsTbl[i]; + quint32 key = kbItem.qtKey[i]; + if (key && key != baseKey && ((keyMods & neededMods) == neededMods)) + result << int(key + (keyMods & ~neededMods)); + } + + return result; +} + +QT_END_NAMESPACE diff --git a/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp b/Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp similarity index 91% rename from Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp rename to Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp index 1971baf88..16fda2677 100644 --- a/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp +++ b/Telegram/_qt_5_4_0_patch/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp @@ -1,40 +1,32 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the plugins of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:LGPL21$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information ** use the contact form at http://qt.digia.com/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception +** rights. These rights are described in the Digia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** ** $QT_END_LICENSE$ ** ****************************************************************************/ @@ -44,19 +36,16 @@ #include "qwindowscontext.h" #include "qwindowsdrag.h" #include "qwindowsscreen.h" +#include "qwindowsscaling.h" #ifdef QT_NO_CURSOR # include "qwindowscursor.h" #endif -#if defined(QT_OPENGL_ES_2) || defined(QT_OPENGL_DYNAMIC) -# include "qwindowseglcontext.h" -# include -#endif - #include #include #include #include +#include #include #include #include @@ -110,6 +99,8 @@ static QByteArray debugWinExStyle(DWORD exStyle) rc += " WS_EX_CONTEXTHELP"; if (exStyle & WS_EX_LAYERED) rc += " WS_EX_LAYERED"; + if (exStyle & WS_EX_DLGMODALFRAME) + rc += " WS_EX_DLGMODALFRAME"; return rc; } @@ -183,6 +174,15 @@ QDebug operator<<(QDebug d, const NCCALCSIZE_PARAMS &p) static inline QRect frameGeometry(HWND hwnd, bool topLevel) { RECT rect = { 0, 0, 0, 0 }; +#ifndef Q_OS_WINCE + if (topLevel) { + WINDOWPLACEMENT windowPlacement; + windowPlacement.length = sizeof(WINDOWPLACEMENT); + GetWindowPlacement(hwnd, &windowPlacement); + if (windowPlacement.showCmd == SW_SHOWMINIMIZED) + return qrectFromRECT(windowPlacement.rcNormalPosition); + } +#endif // !Q_OS_WINCE GetWindowRect(hwnd, &rect); // Screen coordinates. const HWND parent = GetParent(hwnd); if (parent && !topLevel) { @@ -513,6 +513,10 @@ void WindowCreationData::fromWindow(const QWindow *w, const Qt::WindowFlags flag } if (flags & Qt::WindowSystemMenuHint) style |= WS_SYSMENU; + else if (dialog) { + style |= WS_SYSMENU | WS_BORDER; // QTBUG-2027, dialogs without system menu. + exStyle |= WS_EX_DLGMODALFRAME; + } if (flags & Qt::WindowMinimizeButtonHint) style |= WS_MINIMIZEBOX; if (shouldShowMaximizeButton(w, flags)) @@ -566,7 +570,9 @@ QWindowsWindowData const QString windowClassName = QWindowsContext::instance()->registerWindowClass(w, isGL); - QRect rect = QPlatformWindow::initialGeometry(w, data.geometry, defaultWindowWidth, defaultWindowHeight); + const QRect geometryDip = QWindowsScaling::mapFromNative(data.geometry); + QRect fixedGeometryDip = QPlatformWindow::initialGeometry(w, geometryDip, defaultWindowWidth, defaultWindowHeight); + const QRect rect = fixedGeometryDip != geometryDip ? QWindowsScaling::mapToNative(fixedGeometryDip) : data.geometry; if (title.isEmpty() && (result.flags & Qt::WindowTitleHint)) title = topLevel ? qAppName() : w->objectName(); @@ -646,7 +652,7 @@ void WindowCreationData::initialize(HWND hwnd, bool frameChange, qreal opacityLe } else if (flags & Qt::WindowStaysOnBottomHint) { SetWindowPos(hwnd, HWND_BOTTOM, 0, 0, 0, 0, swpFlags); } else if (frameChange) { // Force WM_NCCALCSIZE with wParam=1 in case of custom margins. - SetWindowPos(hwnd, 0, 0, 0, 0, 0, swpFlags); + SetWindowPos(hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, swpFlags); } if (flags & (Qt::CustomizeWindowHint|Qt::WindowTitleHint)) { HMENU systemMenu = GetSystemMenu(hwnd, FALSE); @@ -673,11 +679,9 @@ void WindowCreationData::initialize(HWND hwnd, bool frameChange, qreal opacityLe \ingroup qt-lighthouse-win */ -#define QWINDOWSIZE_MAX ((1<<24)-1) - QWindowsGeometryHint::QWindowsGeometryHint(const QWindow *w, const QMargins &cm) : - minimumSize(w->minimumSize()), - maximumSize(w->maximumSize()), + minimumSize(QWindowsScaling::mapToNativeConstrained(w->minimumSize())), + maximumSize(QWindowsScaling::mapToNativeConstrained(w->maximumSize())), customMargins(cm) { } @@ -758,9 +762,8 @@ void QWindowsGeometryHint::applyToMinMaxInfo(DWORD style, DWORD exStyle, MINMAXI const int maximumHeight = qMax(maximumSize.height(), minimumSize.height()); if (maximumWidth < QWINDOWSIZE_MAX) mmi->ptMaxTrackSize.x = maximumWidth + frameWidth; - // windows with title bar have an implicit size limit of 112 pixels if (maximumHeight < QWINDOWSIZE_MAX) - mmi->ptMaxTrackSize.y = qMax(maximumHeight + frameHeight, 112); + mmi->ptMaxTrackSize.y = maximumHeight + frameHeight; qCDebug(lcQpaWindows).nospace() << '<' << __FUNCTION__ << " frame=" << margins << ' ' << frameWidth << ',' << frameHeight << " out " << *mmi; @@ -861,15 +864,13 @@ QWindowsWindow::QWindowsWindow(QWindow *aWindow, const QWindowsWindowData &data) m_opacity(1.0), m_dropTarget(0), m_savedStyle(0), - m_format(aWindow->format()), -#if defined(QT_OPENGL_ES_2) || defined(QT_OPENGL_DYNAMIC) - m_eglSurface(0), -#endif + m_format(aWindow->requestedFormat()), #ifdef Q_OS_WINCE m_previouslyHidden(false), #endif m_iconSmall(0), - m_iconBig(0) + m_iconBig(0), + m_surface(0) { // Clear the creation context as the window can be found in QWindowsContext's map. QWindowsContext::instance()->setWindowCreationContext(QSharedPointer()); @@ -877,13 +878,14 @@ QWindowsWindow::QWindowsWindow(QWindow *aWindow, const QWindowsWindowData &data) const Qt::WindowType type = aWindow->type(); if (type == Qt::Desktop) return; // No further handling for Qt::Desktop +#ifndef QT_NO_OPENGL if (aWindow->surfaceType() == QWindow::OpenGLSurface) { - setFlag(OpenGLSurface); -#if defined(QT_OPENGL_ES_2) || defined(QT_OPENGL_DYNAMIC) - if (QOpenGLContext::openGLModuleType() != QOpenGLContext::LibGL) + if (QOpenGLContext::openGLModuleType() == QOpenGLContext::LibGL) + setFlag(OpenGLSurface); + else setFlag(OpenGL_ES2); -#endif } +#endif // QT_NO_OPENGL updateDropSite(); #ifndef Q_OS_WINCE @@ -921,7 +923,8 @@ void QWindowsWindow::fireExpose(const QRegion ®ion, bool force) clearFlag(Exposed); else setFlag(Exposed); - QWindowSystemInterface::handleExposeEvent(window(), region); + QWindowSystemInterface::handleExposeEvent(window(), + QWindowsScaling::mapFromNative(region)); } static inline QWindow *findTransientChild(const QWindow *parent) @@ -947,11 +950,10 @@ void QWindowsWindow::destroyWindow() if (hasMouseCapture()) setMouseGrabEnabled(false); setDropSiteEnabled(false); -#if defined(QT_OPENGL_ES_2) || defined(QT_OPENGL_DYNAMIC) - if (m_eglSurface) { - qCDebug(lcQpaGl) << __FUNCTION__ << "Freeing EGL surface " << m_eglSurface << window(); - eglDestroySurface(m_staticEglContext->display(), m_eglSurface); - m_eglSurface = 0; +#ifndef QT_NO_OPENGL + if (m_surface) { + m_data.staticOpenGLContext->destroyWindowSurface(m_surface); + m_surface = 0; } #endif #ifdef Q_OS_WINCE @@ -1098,7 +1100,7 @@ bool QWindowsWindow::isEmbedded(const QPlatformWindow *parentWindow) const return m_data.embedded; } -QPoint QWindowsWindow::mapToGlobal(const QPoint &pos) const +QPoint QWindowsWindow::mapToGlobalDp(const QPoint &pos) const { if (m_data.hwnd) return QWindowsGeometryHint::mapToGlobal(m_data.hwnd, pos); @@ -1106,7 +1108,7 @@ QPoint QWindowsWindow::mapToGlobal(const QPoint &pos) const return pos; } -QPoint QWindowsWindow::mapFromGlobal(const QPoint &pos) const +QPoint QWindowsWindow::mapFromGlobalDp(const QPoint &pos) const { if (m_data.hwnd) return QWindowsGeometryHint::mapFromGlobal(m_data.hwnd, pos); @@ -1160,6 +1162,13 @@ void QWindowsWindow::clearTransientParent() const #endif // !Q_OS_WINCE } +static inline bool testShowWithoutActivating(const QWindow *window) +{ + // QWidget-attribute Qt::WA_ShowWithoutActivating . + const QVariant showWithoutActivating = window->property("_q_showWithoutActivating"); + return showWithoutActivating.isValid() && showWithoutActivating.toBool(); +} + // partially from QWidgetPrivate::show_sys() void QWindowsWindow::show_sys() const { @@ -1191,7 +1200,7 @@ void QWindowsWindow::show_sys() const } // Qt::WindowMaximized } // !Qt::WindowMinimized } - if (type == Qt::Popup || type == Qt::ToolTip || type == Qt::Tool) + if (type == Qt::Popup || type == Qt::ToolTip || type == Qt::Tool || testShowWithoutActivating(w)) sm = SW_SHOWNOACTIVATE; if (w->windowState() & Qt::WindowMaximized) @@ -1291,22 +1300,22 @@ static QRect normalFrameGeometry(HWND hwnd) return QRect(); } -QRect QWindowsWindow::normalGeometry() const +QRect QWindowsWindow::normalGeometryDp() const { // Check for fake 'fullscreen' mode. const bool fakeFullScreen = m_savedFrameGeometry.isValid() && window()->windowState() == Qt::WindowFullScreen; const QRect frame = fakeFullScreen ? m_savedFrameGeometry : normalFrameGeometry(m_data.hwnd); - const QMargins margins = fakeFullScreen ? QWindowsGeometryHint::frame(m_savedStyle, 0) : frameMargins(); + const QMargins margins = fakeFullScreen ? QWindowsGeometryHint::frame(m_savedStyle, 0) : frameMarginsDp(); return frame.isValid() ? frame.marginsRemoved(margins) : frame; } -void QWindowsWindow::setGeometry(const QRect &rectIn) +void QWindowsWindow::setGeometryDp(const QRect &rectIn) { QRect rect = rectIn; // This means it is a call from QWindow::setFramePosition() and // the coordinates include the frame (size is still the contents rectangle). if (QWindowsGeometryHint::positionIncludesFrame(window())) { - const QMargins margins = frameMargins(); + const QMargins margins = frameMarginsDp(); rect.moveTopLeft(rect.topLeft() + QPoint(margins.left(), margins.top())); } const QSize oldSize = m_data.geometry.size(); @@ -1388,13 +1397,19 @@ void QWindowsWindow::handleGeometryChange() return; const QRect previousGeometry = m_data.geometry; m_data.geometry = geometry_sys(); - QPlatformWindow::setGeometry(m_data.geometry); - QWindowSystemInterface::handleGeometryChange(window(), m_data.geometry); + const QRect geometryDip = QWindowsScaling::mapFromNative(m_data.geometry); + QPlatformWindow::setGeometry(geometryDip); + QWindowSystemInterface::handleGeometryChange(window(), geometryDip); // QTBUG-32121: OpenGL/normal windows (with exception of ANGLE) do not receive // expose events when shrinking, synthesize. if (!testFlag(OpenGL_ES2) && isExposed() && !(m_data.geometry.width() > previousGeometry.width() || m_data.geometry.height() > previousGeometry.height())) { - fireExpose(QRegion(m_data.geometry), true); + fireExpose(QRect(QPoint(0, 0), m_data.geometry.size()), true); + } + if (previousGeometry.topLeft() != m_data.geometry.topLeft()) { + QPlatformScreen *newScreen = screenForGeometry(m_data.geometry); + if (newScreen != screen()) + QWindowSystemInterface::handleWindowScreenChanged(window(), newScreen->screen()); } if (testFlag(SynchronousGeometryChangeEvent)) QWindowSystemInterface::flushWindowSystemEvents(); @@ -1404,7 +1419,7 @@ void QWindowsWindow::handleGeometryChange() void QWindowsWindow::setGeometry_sys(const QRect &rect) const { - const QMargins margins = frameMargins(); + const QMargins margins = frameMarginsDp(); const QRect frameGeometry = rect + margins; qCDebug(lcQpaWindows) << '>' << __FUNCTION__ << this << window() @@ -1412,22 +1427,37 @@ void QWindowsWindow::setGeometry_sys(const QRect &rect) const << margins << " to " <