();

                } else {
                    qCritical() << tr("[ImportExportWorker::loadFromXML] Expecting a <%1> element here not <%2>").arg(GuiConst::STATE_PACKET).arg(stream->name().toString());
                }
            }
        } else {
            qCritical() << tr("[ImportExportWorker::loadFromXML] The first element is not %1 but %2").arg(GuiConst::STATE_PACKET_LIST).arg(stream->name().toString());
        }
    } else {
        qCritical() << tr("[ImportExportWorker::loadFromXML] Cannot read the first element: %1 | %2").arg(stream->tokenString()).arg(stream->tokenType());
    }
}

void ImportExportWorker::loadFromXMLFile(QIODevice *file)
{
    QXmlStreamReader stream(file);
    if (stream.readNext() != QXmlStreamReader::StartDocument) {
        qCritical() << tr("not XML document starter .. skipping");
        return;
    }
    loadFromXML(&stream);
}

void ImportExportWorker::toJSon(QJsonDocument *jdoc)
{
    QSharedPointer<Packet> pac = nextPacket();
    QJsonArray packetList;
    while (pac != nullptr ) {
        QJsonObject jsonobj;
        jsonobj[GuiConst::STATE_TIMESTAMP] = QString::number(pac->getTimestamp().toMSecsSinceEpoch());
        if (pac->getMicrosec() != 0)
            jsonobj[GuiConst::STATE_MICROSEC] = QString::number(pac->getMicrosec());
        if (pac->getDirection() != Packet::NODIRECTION)
            jsonobj[GuiConst::STATE_DIRECTION] = QString::number(pac->getDirection());
        if (!pac->getComment().isEmpty())
            jsonobj[GuiConst::STATE_COMMENT] = pac->getComment();
        if (!pac->getSourceString().isEmpty())
            jsonobj[GuiConst::STATE_SOURCE_STRING] = pac->getSourceString();
        if (pac->getForeground().isValid())
            jsonobj[GuiConst::STATE_FOREGROUNG_COLOR] = BaseStateAbstract::colorToString(pac->getForeground());
        if (pac->getBackground().isValid())
            jsonobj[GuiConst::STATE_BACKGROUNG_COLOR] = BaseStateAbstract::colorToString(pac->getBackground());

        jsonobj[GuiConst::STATE_DATA] = QString::fromUtf8(pac->getData().toBase64());
        if (pac->hasBeenModified())
            jsonobj[GuiConst::STATE_ORIGINAL_DATA] = QString::fromUtf8(pac->getOriginalData().toBase64());

        jsonobj[GuiConst::STATE_SOURCEID] = QString::number(pac->getSourceid());
        QHash<QString, QString> fields = pac->getAdditionalFields();
        if (fields.size() > 0) {
            QJsonObject fieldsobj;
            QHashIterator<QString, QString> i(fields);
             while (i.hasNext()) {
                 i.next();
                 fieldsobj[i.key()] = i.value();
             }

            jsonobj[GuiConst::STATE_ADDITIONAL_FIELDS_LIST] = fieldsobj;
        }

        packetList.append(jsonobj);
        pac = nextPacket();

    }

    jdoc->setArray(packetList);
}

void ImportExportWorker::toJSonFile(QIODevice *file)
{
    QJsonDocument jdoc;
    toJSon(&jdoc);
    file->write(jdoc.toJson(exportFormattedJson ? QJsonDocument::Indented : QJsonDocument::Compact));
}

void ImportExportWorker::loadFromJson(QJsonDocument *jdoc)
{
    if (jdoc->isArray()) {
        QJsonArray packetList = jdoc->array();
        for (int i = 0; i < packetList.size(); i ++ ) {
            QJsonValue val1 = packetList.at(i);
            if (!val1.isObject()) {
                qCritical() << tr("[ImportExportWorker::loadFromJson] One value of the packet list array is not a JSON object: %1").arg(i);
                continue;
            }
            QJsonObject jsonpac = packetList.at(i).toObject();

            QSharedPointer<Packet> pac = QShar


; SPDX-License-Identifier: GPL-2.0-only
;
;  Port on Texas Instruments TMS320C6x architecture
;
;  Copyright (C) 2004, 2009, 2010, 2011 Texas Instruments Incorporated
;  Author: Aurelien Jacquiot (aurelien.jacquiot@jaluna.com)
;
#include <linux/linkage.h>
#include <linux/of_fdt.h>
#include <asm/asm-offsets.h>

	__HEAD
ENTRY(_c_int00)
	;; Save magic and pointer
	MV	.S1	A4,A10
	MV	.S2	B4,B10
	MVKL	.S2	__bss_start,B5
	MVKH	.S2	__bss_start,B5
	MVKL	.S2	__bss_stop,B6
	MVKH	.S2	__bss_stop,B6
	SUB	.L2	B6,B5,B6 ; bss size

	;; Set the stack pointer
	MVKL	.S2	current_ksp,B0
	MVKH	.S2	current_ksp,B0
	LDW	.D2T2	*B0,B15

	;; clear bss
	SHR	.S2	B6,3,B0	  ; number of dwords to clear
	ZERO	.L2	B13
	ZERO	.L2	B12
bss_loop:
	BDEC	.S2	bss_loop,B0
	NOP	3
	CMPLT	.L2	B0,0,B1
 [!B1]	STDW	.D2T2


sToOutput()
  // helpers.
  // Below is an example of how a branch immediate instruction in memory at
  // address 0xb010200 would disassemble with different offsets.
  // Base address | Disassembly
  //          0x0 | 0xb010200:  b #+0xcc  (addr 0xb0102cc)
  //      0x10000 | 0xb000200:  b #+0xcc  (addr 0xb0002cc)
  //    0xb010200 |       0x0:  b #+0xcc  (addr 0xcc)
  void MapCodeAddress(int64_t base_address, const Instruction* instr_address);
  int64_t CodeRelativeAddress(const void* instr);

 private:
  void Format(
      const Instruction* instr, const char* mnemonic, const char* format);
  void Substitute(const Instruction* instr, const char* string);
  int SubstituteField(const Instruction* instr, const char* format);
  int SubstituteRegisterField(const Instruction* instr, const char* format);
  int SubstituteImmediateField(const Instruction* instr, const char* format);
  int SubstituteLiteralField(const Instruction* instr, const char* format);
  int SubstituteBitfieldImmediateField(
      const Instruction* instr, const char* format);
  int SubstituteShiftField(const Instruction* instr, const char* format);
  int SubstituteExtendField(const Instruction* instr, const char* format);
  int SubstituteConditionField(const Instruction* instr, const char* format);
  int SubstitutePCRelAddressField(const Instruction* instr, const char* format);
  int SubstituteBranchTargetField(const Instruction* instr, const char* format);
  int SubstituteLSRegOffsetField(const Instruction* instr, const char* format);
  int SubstitutePrefetchField(const Instruction* instr, const char* format);
  int SubstituteBarrierField(const Instruction* instr, const char* format);
  int SubstituteSysOpField(const Instruction* instr, const char* format);
  int SubstituteCrField(const Instruction* instr, const char* format);
  bool RdIsZROrSP(const Instruction* instr) const {
    return (instr->Rd() == kZeroRegCode);
  }

  bool RnIsZROrSP(const Instruction* instr) const {
    return (instr->Rn() == kZeroRegCode);
  }

  bool RmIsZROrSP(const Instruction* instr) const {
    return (instr->Rm() == kZeroRegCode);
  }

  bool RaIsZROrSP(const Instruction* instr) const {
    return (instr->Ra() == kZeroRegCode);
  }

  bool IsMovzMovnImm(unsigned reg_size, uint64_t value);

  int64_t code_address_offset() const { return code_address_offset_; }

 protected:
  void ResetOutput();
  void AppendToOutput(const char* string, ...) PRINTF_CHECK(2, 3);

  void set_code_address_offset(int64_t code_address_offset) {
    code_address_offset_ = code_address_offset;
  }

  char* buffer_;
  uint32_t buffer_pos_;
  uint32_t buffer_size_;
  bool own_buffer_;

  int64_t code_address_offset_;
};

class PrintDisassembler: public Disassembler {
 public:
  explicit PrintDisassembler(FILE* stream) : stream_(stream) { }

 protected:
  virtual void ProcessOutput(const Instruction* instr);

 private:
  FILE *stream_;
};
}  // namespace vixl

#endif  // VIXL_A64_DISASM_A64_H


0Style1Style2Style3")
		assertThat(buildResult.spanStyles).hasSize(2)

		// the order is first applied is in the second
		assertThat(buildResult.spanStyles[0].item).isEqualTo((spanStyle1))
		assertThat(buildResult.spanStyles[0].start).isEqualTo(("Style0".length))
		assertThat(buildResult.spanStyles[0].end).isEqualTo(("Style0Style1".length))

		assertThat(buildResult.spanStyles[1].item).isEqualTo((spanStyle2))
		assertThat(buildResult.spanStyles[1].start).isEqualTo(("Style0Style1".length))
		assertThat(buildResult.spanStyles[1].end).isEqualTo(("Style0Style1Style2".length))
	}

	@Test fun push_increments_the_style_index() {
		val style = SpanStyle(color = Color.Red)
		with(AnnotatedString.Builder()) {
			val styleIndex0 = pushStyle(style)
			val styleIndex1 = pushStyle(style)
			val styleIndex2 = pushStyle(style)

			assertThat(styleIndex0).isEqualTo(0)
			assertThat(styleIndex1).isEqualTo(1)
			assertThat(styleIndex2).isEqualTo(2)
		}
	}

	@Test fun push_reduces_the_style_index_after_pop() {
		val spanStyle = SpanStyle(color = Color.Red)

		with(AnnotatedString.Builder()) {
			val styleIndex0 = pushStyle(spanStyle)
			val styleIndex1 = pushStyle(spanStyle)

			assertThat(styleIndex0).isEqualTo(0)
			assertThat(styleIndex1).isEqualTo(1)

			// a pop should reduce the next index to one
			pop()

			val styleIndex = pushStyle(spanStyle)
			assertThat(styleIndex).isEqualTo(1)
		}
	}

	@Test fun pop_until_throws_exception_for_invalid_index() {
		val style = SpanStyle(color = Color.Red)
		with(AnnotatedString.Builder()) {
			val styleIndex = pushStyle(style)

			assertFailure {
				// should throw exception
				pop(styleIndex + 1)
			}.isInstanceOf<IllegalStateException>()
		}
	}

	@Test fun pop_until_index_pops_correctly() {
		val style = SpanStyle(color = Color.Red)
		with(AnnotatedString.Builder()) {
			pushStyle(style)
			// store the index of second push
			val styleIndex = pushStyle(style)
			pushStyle(style)
			// pop up to and including styleIndex
			pop(styleIndex)
			// push again to get a new index to compare
			val newStyleIndex = pushStyle(style)

			assertThat(newStyleIndex).isEqualTo(styleIndex)
		}
	}

	@Test fun withStyle_applies_style_to_block() {
		val style = SpanStyle(color = Color.Red)
		val buildResult = with(AnnotatedString.Builder()) {
			withStyle(style) {
				append("Style")
			}
			toAnnotatedString()
		}

		assertThat(buildResult.spanStyles).isEqualTo(
			listOf(Range(style, 0, buildResult.length)),
		)
	}

	@Test fun append_char_appends() {
		val buildResult = with(AnnotatedString.Builder("a")) {
			append('b')
			append('c')
			toAnnotatedString()
		}

		assertThat(buildResult).isEqualTo(AnnotatedString("abc"))
	}

	@Test fun builderLambda() {
		val text1 = "Hello"
		val text2 = "World"
		val spanStyle1 = SpanStyle(color = Color.Red)
		val spanStyle2 = SpanStyle(background = Color.Green)
		val spanStyle3 = SpanStyle(color = Color.Blue)

		val build


 = m_pData, index - (i = m_nHistoryElements), aword0, 0, i);
            index = i;
        }
    }

    public short[] m_pData;
    public int index;

    protected int m_nHistoryElements;
    protected int m_nWindowElements;
    protected int windowPlusHistory;
}
/*
 *  21.04.2004 Original verion. davagin@udm.ru.
 *-----------------------------------------------------------------------
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *----------------------------------------------------------------------
 */

package davaguine.jmac.tools;

/**
 * Author: Dmitry Vaguine
 * Date: 04.03.2004
 * Time: 14:51:31
 */
public class ScaledFirstOrderFilter {
    public ScaledFirstOrderFilter(int multiply, int shift) {
        this.multiply = multiply;
        this.shift = shift;
    }

    public void Flush() {
        m_nLastValue = 0;
    }

    public int Compress(int nInput) {
        int nRetVal = nInput - ((m_nLastValue * multiply) >> shift);
        m_nLastValue = nInput;
        return nRetVal;
    }

    public int Decompress(int nInput) {
        m_nLastValue = nInput + ((m_nLastValue * multiply) >> shift);
        return m_nLastValue;
    }

    protected int m_nLastValue;
    protected int multiply;
    protected int shift;
}
/*
 *  21.04.2004 Original verion. davagin@udm.ru.
 *-----------------------------------------------------------------------
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *----------------------------------------------------------------------
 */

package davaguine.jmac.tools;

import davaguine.jmac.info.SpecialFrame;
import davaguine.jmac.info.WaveFormat;

/**
 * Author: Dmitry Vaguine
 * Date: 04.03.2004
 * Time: 14:51:31
 */
public class Prepare {

    public void prepare(ByteArrayReader pRawData, int nBytes, final WaveFormat pWaveFormatEx, int[] pOutputX, int[] pOutputY, Crc32 pCRC, IntegerPointer pSpecialCodes, IntegerPointer pPeakLevel) {
        // initialize the pointers that got passed in
        pCRC.init();
        pSpecialCodes.value = 0;

        // variables
        int nTotalBlocks = nBytes / pWaveFormatEx.nBlockAlign;
        int R, L;

        // the prepare code

        if (pWaveFormatEx.wBitsPerSample == 8) {
            if (pWaveFormatEx.nChannels == 2) {
                for (int nBlockIndex = 0; nBlockIndex < nTotalBlocks; nBlockIndex++) {
                    short b1 = pRawData.readUnsignedByte();
                    shor


ation_maxLength_1,
      cname,
      max,
    );
  }

  NSString? stringByAddingPercentEncodingWithAllowedCharacters_(
    NSCharacterSet allowedCharacters,
  ) {
    final _ret = _lib._objc_msgSend_353(
      _id,
      _lib._sel_stringByAddingPercentEncodingWithAllowedCharacters_1,
      allowedCharacters._id,
    );
    return _ret.address == 0
        ? null
        : NSString._(_ret, _lib, retain: true, release: true);
  }

  NSString? get stringByRemovingPercentEncoding {
    final _ret = _lib._objc_msgSend_44(
      _id,
      _lib._sel_stringByRemovingPercentEncoding1,
    );
    return _ret.address == 0
        ? null
        : NSString._(_ret, _lib, retain: true, release: true);
  }

  NSString? stringByAddingPercentEscapesUsingEncoding_(int enc) {
    final _ret = _lib._objc_msgSend_354(
      _id,
      _lib._sel_stringByAddingPercentEscapesUsingEncoding_1,
      enc,
    );
    return _ret.address == 0
        ? null
        : NSString._(_ret, _lib, retain: true, release: true);
  }

  NSString? stringByReplacingPercentEscapesUsingEncoding_(int enc) {
    final _ret = _lib._objc_msgSend_354(
      _id,
      _lib._sel_stringByReplacingPercentEscapesUsingEncoding_1,
      enc,
    );
    return _ret.address == 0
        ? null
        : NSString._(_ret, _lib, retain: true, release: true);
  }

  NSArray linguisticTagsInRange_scheme_options_orthography_tokenRanges_(
    _NSRange range,
    NSString scheme,
    int options,
    NSOrthography? orthography,
    ffi.Pointer<ffi.Pointer<ObjCObject>> tokenRanges,
  ) {
    final _ret = _lib._objc_msgSend_357(
      _id,
      _lib._sel_linguisticTagsInRange_scheme_options_orthography_tokenRanges_1,
      range,
      scheme._id,
      options,
      orthography?._id ?? ffi.nullptr,
      tokenRanges,
    );
    return NSArray._(_ret, _lib, retain: true, release: true);
  }

  void enumerateLinguisticTagsInRange_scheme_options_orthography_usingBlock_(
    _NSRange range,
    NSString scheme,
    int options,
    NSOrthography? orthography,
    ObjCBlock_ffiVoid_NSString_NSRange_NSRange_bool block,
  ) {
    _lib._objc_msgSend_358(
      _id,
      _lib._sel_enumerateLinguisticTagsInRange_scheme_options_orthography_usingBlock_1,
      range,
      scheme._id,
      options,
      orthography?._id ?? ffi.nullptr,
      block._id,
    );
  }

  static NSString new1(PedometerBindings _lib) {
    final _ret = _lib._objc_msgSend_2(_lib._class_NSString1, _lib._sel_new1);
    return NSString._(_ret, _lib, retain: false, release: true);
  }

  static NSString allocWithZone_(
    PedometerBindings _lib,
    ffi.Pointer<_NSZone> zone,
  ) {
    final _ret = _lib._objc_msgSend_3(
      _lib._class_NSString1,
      _lib._sel_allocWithZone_1,
      zone,
    );
    return NSString._(_ret, _lib, retain: false, release: true);
  }

  static NSString alloc(PedometerBindings _lib) {
    final _ret = _lib._objc_msgSend_2(_lib._class_NSString1, _lib._sel_alloc1);
    return NSString._(_re


0xe1,0x7d,0x48,0x6f,0x31]
          vmovdqa32 zmm22, zmmword ptr [rcx]

// CHECK: vmovdqa32 zmm22, zmmword ptr [rax + 8*r14 + 291]
// CHECK:  encoding: [0x62,0xa1,0x7d,0x48,0x6f,0xb4,0xf0,0x23,0x01,0x00,0x00]
          vmovdqa32 zmm22, zmmword ptr [rax + 8*r14 + 291]

// CHECK: vmovdqa32 zmm22, zmmword ptr [rdx + 8128]
// CHECK:  encoding: [0x62,0xe1,0x7d,0x48,0x6f,0x72,0x7f]
          vmovdqa32 zmm22, zmmword ptr [rdx + 8128]

// CHECK: vmovdqa32 zmm22, zmmword ptr [rdx + 8192]
// CHECK:  encoding: [0x62,0xe1,0x7d,0x48,0x6f,0xb2,0x00,0x20,0x00,0x00]
          vmovdqa32 zmm22, zmmword ptr [rdx + 8192]

// CHECK: vmovdqa32 zmm22, zmmword ptr [rdx - 8192]
// CHECK:  encoding: [0x62,0xe1,0x7d,0x48,0x6f,0x72,0x80]
          vmovdqa32 zmm22, zmmword ptr [rdx - 8192]

// CHECK: vmovdqa32 zmm22, zmmword ptr [rdx - 8256]
// CHECK:  encoding: [0x62,0xe1,0x7d,0x48,0x6f,0xb2,0xc0,0xdf,0xff,0xff]
          vmovdqa32 zmm22, zmmword ptr [rdx - 8256]

// CHECK: vmovdqa64 zmm22, zmm12
// CHECK:  encoding: [0x62,0xc1,0xfd,0x48,0x6f,0xf4]
          vmovdqa64 zmm22, zmm12

// CHECK: vmovdqa64 zmm22 {k5}, zmm12
// CHECK:  encoding: [0x62,0xc1,0xfd,0x4d,0x6f,0xf4]
          vmovdqa64 zmm22 {k5}, zmm12

// CHECK: vmovdqa64 zmm22 {k5} {z}, zmm12
// CHECK:  encoding: [0x62,0xc1,0xfd,0xcd,0x6f,0xf4]
          vmovdqa64 zmm22 {k5} {z}, zmm12

// CHECK: vmovdqa64 zmm22, zmmword ptr [rcx]
// CHECK:  encoding: [0x62,0xe1,0xfd,0x48,0x6f,0x31]
          vmovdqa64 zmm22, zmmword ptr [rcx]

// CHECK: vmovdqa64 zmm22, zmmword ptr [rax + 8*r14 + 291]
// CHECK:  encoding: [0x62,0xa1,0xfd,0x48,0x6f,0xb4,0xf0,0x23,0x01,0x00,0x00]
          vmovdqa64 zmm22, zmmword ptr [rax + 8*r14 + 291]

// CHECK: vmovdqa64 zmm22, zmmword ptr [rdx + 8128]
// CHECK:  encoding: [0x62,0xe1,0xfd,0x48,0x6f,0x72,0x7f]
          vmovdqa64 zmm22, zmmword ptr [rdx + 8128]

// CHECK


77 126.45,292.89 126.65,292.99 126.87,293.05 127.09,293.08' fill='#FFFFFF' fill-opacity='1' stroke='none' data-id='NC State' tooltip_fill='white'/>
   <text id='svg_1ffa449d_b707_428d_a359_07ab966d9fdb_e298' x='128.06' y='290.77' font-size='5.76pt' font-family='IBM Plex Sans' data-id='NC State' tooltip_fill='white'>NC State</text>
   <polygon id='svg_1ffa449d_b707_428d_a359_07ab966d9fdb_e299' points='171.69,535.42 196.52,535.42 196.46,535.42 196.68,535.41 196.90,535.37 197.11,535.29 197.30,535.18 197.48,535.03 197.62,534.87 197.74,534.68 197.83,534.48 197.88,534.26 197.90,534.04 197.90,534.04 197.90,526.84 197.90,526.84 197.88,526.61 197.83,526.40 197.74,526.19 197.62,526.01 197.48,525.84 197.30,525.70 197.11,525.59 196.90,525.51 196.68,525.46 196.52,525.45 171.69,525.45 171.86,525.46 171.64,525.46 171.41,525.48 171.20,525.54 171.00,525.64 170.82,525.77 170.66,525.92 170.52,526.10 170.42,526.29 170.35,526.51 170.31,526.73 170.31,526.84 170.31,534.04 170.31,533.93 170.31,534.15 170.35,534.37 170.42,534.58 170.52,534.78 170.66,534.95 170.82,535.11 171.00,535.23 171.20,535.33 171.41,535.39 171.64,535.42' fill='#FFFFFF' fill-opacity='1' stroke='none' data-id='UConn' tooltip_fill='white'/>
   <text id='svg_1ffa449d_b707_428d_a359_07ab966d9fdb_e300' x='172.61' y='533.12' font-size='5.76pt' font-family='IBM Plex Sans' data-id='UConn' tooltip_fill='white'>UConn</text>
   <polygon id='svg_1ffa449d_b707_428d_a359_07ab966d9fdb_e301' points='38.05,128.63 69.07,128.63 69.02,128.63 69.24,128.62 69.46,128.58 69.66,128.50 69.86,128.39 70.03,128.24 70.18,128.08 70.30,127.89 70.38,127.69 70.44,127.47 70.45,127.25 70.45,127.25 70.45,120.05 70.45,120.05 70.44,119.82 70.38,119.61 70.30,119.40 70.18,119.22 70.03,119.05 69.86,118.91 69.66,118.80 69.46,118.72 69.24,118.67 69.07,118.66 38.05,118.66 38.21,118.67 37.99,118.67 37.77,118.69 37.56,118.75 37.35,118.85 37.17,118.98 37.01,119.13 36.88,119.31 36.77,119.50 36.70,119.72 36.67,119.94 36.66,120.05 36.66,127.25 36.67,127.14 36.67,127.36 36.70,127.58 36.77


 configuration object for conversions that are done via xsl-fo
	 */
	public static FOSettings createFOSettings() {
		return new FOSettings();
	}

	/**
	 *  Convert the document via xsl-fo
	 */
	public static void toFO(FOSettings settings, OutputStream outputStream, int flags) throws Docx4JException {

		Exporter<FOSettings> exporter = getFOExporter(flags);
		exporter.export(settings, outputStream);
	}

	/**
	 *  Convenience method to convert the document to PDF
	 */
	public static void toPDF(WordprocessingMLPackage wmlPackage, OutputStream outputStream) throws Docx4JException {

		StartEvent startEvent = new StartEvent( wmlPackage, WellKnownProcessSteps.PDF );
		startEvent.publish();

		if (pdfViaDocuments4jRemote()) {

			Exporter<Documents4jConversionSettings> exporter = documents4jRemoteExporterGetInstance();
			Documents4jConversionSettings settings = new Documents4jConversionSettings();
			settings.setOpcPackage(wmlPackage);
			exporter.export(settings, outputStream);

		} else if (pdfViaDocuments4jLocal()) {

			Exporter<Documents4jConversionSettings> exporter = documents4jLocalExporterGetInstance();
			Documents4jConversionSettings settings = new Documents4jConversionSettings();
			settings.setOpcPackage(wmlPackage);
			exporter.export(settings, outputStream);

		} else if (pdfViaFO()) {
			FOSettings settings = createFOSettings();
			settings.setOpcPackage(wmlPackage);
			settings.setApacheFopMime("application/pdf");

			try {

				FopReflective.invokeFORendererApacheFOP(settings);
				toFO(settings, outputStream, FLAG_NONE);

			} catch (Exception e) {
				log.error(e.getMessage(), e);
				throw new Docx4JException(e.getMessage(), e);
			} finally {
				new EventFinished(startEvent).publish();
			}

		} else if (pdfViaMicrosoftGraph()) {

			log.error("Microsoft Graph can't be invoked via this interface.  Use it directly; see https://github.com/plutext/java-docx-to-pdf-using-Microsoft-Graph   ");

		} else if (pdfViaLegacyConverter()) {

			// Configure this property to point to your own Converter instance.
			// Since this converter is no longer available, this will only suit existing users
			String URL = Docx4jProperties.getProperty("com.plutext.converter.URL", "http://localhost:9016/v1/00000000-0000-0000-0000-000000000000/convert");

			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			save(wmlPackage, baos);

			try {
				// Converter converter = new ConverterHttp(URL);
				Class<?> clazz = Class.forName("org.docx4j.services.client.ConverterHttp");
				Constructor constructor =
						clazz.getConstructor(new Class[]{String.class});
				Object converter = constructor.newInstance(URL);
				Method method = converter.getClass().getMethod("convert", byte[].class, OutputStream.class);
				//converter.convert(baos.toByteArray(),  outputStream);
				method.invoke(converter, baos.toByteArray(),  outputStream);
				baos.close();
			} catch (Exception e) {
				throw new Docx4JException(e.getMessage(), e);
			} finally {
				new EventFinished(startE


u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}/** layui-v2.5.5 MIT License By https://www.layui.com */
 html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}/** layui-v2.5.5 MIT License By https://www.layui.com */
 .layui-layer-imgbar,.layui-layer-imgtit a,.layui-layer-tab .layui-layer-title span,.layui-layer-title{text-overflow:ellipsis;white-space:nowrap}html #layuicss-layer{display:none;position:absolute;width:1989px}.layui-layer,.layui-layer-shade{position:fixed;_position:absolute;pointer-events:auto}.layui-layer-shade{top:0;left:0;width:100%;height:100%;_height:expression(document.body.offsetHeight+"px")}.layui-layer{-webkit-overflow-scrolling:touch;top:150px;left:0;margin:0;padding:0;background-


表示不同意砸烂“工总”。

   12日  广西军区从三月十二日起，派出军管小组，对柳州铁路局实行军管。

   同日  区党委“群众接待站造反兵团”、“红色监察”和“广西红总”、“南宁八·三一”等十一个组织发起，一百多个组织近四万余人参加，在区体育场召开批判韦国清、乔晓光的大会。廖炜雄主持会议。

   13日  “广西工总”的二十三个分部一百多名负责人在南宁文化宫开会，准备成立“新工总”，并散发“工总砸不烂，越砸越坚强”的传单。会议决定：①不撤销联络站；②筹备成立“新工总”；③准备材料上京“告状”。

   同日  “八?一八”红卫兵(简称小八)同“广西一司”就砸烂“工总”问题，在朝阳广场举行辩论会。“小八”认为“工总”应该砸烂，砸得好，“广西一司”则反对。

   同日  周恩来打电话给韦国清，指示：广西地处援越抗美前线，要实行全面军管，要韦国清站出来当军管会主任。

   14日  韦国清乘飞机由南宁赴广州军区。十七日，接周恩来指示，从广州乘飞机去北京。

   同日  南宁市中、小学校师生七万多人，在朝阳广场召开“复课闹革命誓师大会”。

   18日  按中央指示，广州军区副政委陈发洪率领工作组到广西军区筹备成立广西军管会。

   19日  桂林市大中学校红卫兵总部、《红卫兵》编辑部就南宁文化大革命局势发表“严正声明”，最先提出“打倒韦国清，解放全广西”的口号。

   20日  广西军区支左办公室设机关、学校、工厂、分区接待组。二十三日又增设


(
    private val resources: Resources,
    private val userClock: UserClock,
    @Named("full_date") private val dateFormatter: DateTimeFormatter,
    private val bloodSugarUnitPreference: Preference<BloodSugarUnitPreference>
) : TeleconsultationMessageBuilder {

  companion object {
    private const val LINE_BREAK = "\n"
    private val SECTION_BREAKER = "-".repeat(44)
  }

  /**
   * We are not translating the message because we don't know the preferred language
   * for the recipient.
   */
  override fun message(patientTeleconsultationInfo: PatientTeleconsultationInfo): String {
    val message = StringBuilder("🔔 *${patientTeleconsultationInfo.facility.name}* teleconsult request:")
        .appendLine("")
        .appendLine("")
        .appendLine("1⃣ Review Patient:")
        .appendLine("")

    addDiagnosisSectionToMessage(patientTeleconsultationInfo, message)
    addBpPassportForTeleconsultSectionToMessage(patientTeleconsultationInfo, message)
    addBloodPressuresSectionToMessage(patientTeleconsultationInfo, message)
    addBloodSugarsSectionToMessage(patientTeleconsultationInfo, message)
    addPrescriptionsSectionToMessage(patientTeleconsultationInfo, message)

    addCallForTeleconsultSectionToMessage(patientTeleconsultationInfo, message)
    addLogTeleconsultSectionToMessage(patientTeleconsultationInfo, message)
    addCallDoctorSectionToMessage(patientTeleconsultationInfo, message)

    sectionBreaker(message)

    return message.toString()
  }

  private fun addDiagnosisSectionToMessage(
      patientTeleconsultationInfo: PatientTeleconsultationInfo,
      message: StringBuilder
  ) {
    val hyperTensionTitle = resources.getString(R.string.patientsummary_contact_doctor_diagnosis_hypertension)
    val diabetesTitle = resources.getString(R.string.patientsummary_contact_doctor_diagnosis_diabetes)

    val diagnosedWithHypertension = patientTeleconsultationInfo.medicalHistory.diagnosedWithHypertension
    val diagnosedWithDiabetes = patientTeleconsultationInfo.medicalHistory.diagnosedWithDiabetes

    if (diagnosedWithHypertension.isAnswered || diagnosedWithDiabetes.isAnswered) {
      message.appendLine(resources.getString(R.string.patientsummary_contact_doctor_diagnosis))
    }

    if (diagnosedWithHypertension.isAnswered) {
      message.appendLine("$hyperTensionTitle ${textForDiagnosisAnswer(diagnosedWithHypertension)}")
    }

    if (diagnosedWithDiabetes.isAnswered) {
      message.appendLine("$diabetesTitle ${textForDiagnosisAnswer(diagnosedWithDiabetes)}")
    }

    message.appendLine("")
  }

  private fun textForDiagnosisAnswer(answer: Answer): String {
    return when (answer) {
      Answer.Yes -> resources.getString(R.string.patientsummary_contact_doctor_diagnosis_answer_yes)
      Answer.No -> resources.getString(R.string.patientsummary_contact_doctor_diagnosis_answer_no)
      else -> ""
    }
  }

  private fun addBpPassportForTeleconsultSectionToMessage(
      patientTeleconsultationInfo: PatientTeleconsultationInfo,
      message: StringBuilder
  ) {
    if (patientTeleconsultationInfo.bpPassport.isNullOrBlank().not()) {

      message.appendLine("*BP Passport*: ${patientTeleconsultationInfo.bpPassport}")
          .appendLine("")
    }
  }

  private fun addCallDoctorSectionToMessage(
      patientTeleconsultationInfo: PatientTeleconsultationInfo,
      message: StringBuilder
  ) {
    sectionBreaker(message)

    message
        .appendLine("*Call doctor*: ${patientTeleconsultationInfo.doctorPhoneNumber}")
        .appendLine("")
  }

  private fun addLogTeleconsultSectionToMessage(
      pati


a2_RcppExport_registerCCallable() {
    R_RegisterCCallable("dada2", "_dada2_RcppExport_validate", (DL_FUNC)_dada2_RcppExport_validate);
    return R_NilValue;
}

static const R_CallMethodDef CallEntries[] = {
    {"_dada2_dada_uniques", (DL_FUNC) &_dada2_dada_uniques, 28},
    {"_dada2_C_is_bimera", (DL_FUNC) &_dada2_C_is_bimera, 8},
    {"_dada2_C_table_bimera2", (DL_FUNC) &_dada2_C_table_bimera2, 10},
    {"_dada2_C_nwalign", (DL_FUNC) &_dada2_C_nwalign, 8},
    {"_dada2_C_eval_pair", (DL_FUNC) &_dada2_C_eval_pair, 2},
    {"_dada2_C_pair_consensus", (DL_FUNC) &_dada2_C_pair_consensus, 4},
    {"_dada2_C_isACGT", (DL_FUNC) &_dada2_C_isACGT, 1},
    {"_dada2_kmer_dist", (DL_FUNC) &_dada2_kmer_dist, 3},
    {"_dada2_kord_dist", (DL_FUNC) &_dada2_kord_dist, 4},
    {"_dada2_kmer_matches", (DL_FUNC) &_dada2_kmer_matches, 3},
    {"_dada2_kdist_matches", (DL_FUNC) &_dada2_kdist_matches, 3},
    {"_dada2_C_matchRef", (DL_FUNC) &_dada2_C_matchRef, 4},
    {"_dada2_C_matrixEE", (DL_FUNC) &_dada2_C_matrixEE, 1},
    {"_dada2_C_nwvec", (DL_FUNC) &_dada2_C_nwvec, 7},
    {"_dada2_C_assign_taxonomy2", (DL_FUNC) &_dada2_C_assign_taxonomy2, 7},
    {"_dada2_RcppExport_registerCCallable", (DL_FUNC) &_dada2_RcppExport_registerCCallable, 0},
    {NULL, NULL, 0}
};

RcppExport void R_init_dada2(DllInfo *dll) {
    R_registerRoutines(dll, NULL, CallEntries, NULL, NULL);
    R_useDynamicSymbols(dll, FALSE);
}
#include "ui/mainwindow.h"
#include <QApplication>
#include <QTranslator>

#include "spdlog/spdlog.h"

// cv::Mat can't be passed through a signal without this declaration
Q_DECLARE_METATYPE(cv::Mat)

std::shared_ptr<spdlog::logger> logger;

void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &qMsg) {
    if (!logger) {
        return;
    }

    const char *msg = qMsg.toUtf8().constData();

    switch (type) {
    case QtDebugMsg:
        logger->debug(msg);
        break;
    case QtInfoMsg:
        logger->info(msg);
        break;
    case QtWarningMsg:
        logger->warn(msg);
        break;
    case QtCriticalMsg:
        logger->error(msg);
        break;
    case QtFatalMsg:
        logger->critical(msg);
        QApplication::exit(1);
        break;
    }
}

void initLogger() {
#ifdef Q_OS_UNIX
    // On UNIX platforms, put the logs in ~/.openskystacker
    QString qLogDir = QDir::homePath() + "/.openskystacker";
    QDir dir(qLogDir);
    if (!dir.exists()) {
        dir.mkpath(".");
    }
    std::string logDir = qLogDir.toUtf8().constData();
#else
    // on Windows, put the logs beside the application


import sympy as sp

# 定义符号变量
x, y, theta, delta, v, a = sp.symbols('x y theta delta v a')
u1, u2 = sp.symbols('u1 u2')
L, k = sp.symbols('L k')
dt = sp.symbols('dt')

# 定义中间状态符号变量
x_mid, y_mid, theta_mid, delta_mid, v_mid, a_mid = sp.symbols('x_mid y_mid theta_mid delta_mid v_mid a_mid')

# 定义状态向量和控制向量
state = sp.Matrix([x, y, theta, delta, v, a])
control = sp.Matrix([u1, u2])
mid_state = sp.Matrix([x_mid, y_mid, theta_mid, delta_mid, v_mid, a_mid])

# 定义状态方程
f = sp.Matrix([
    v * sp.cos(theta),                 # x_dot
    v * sp.sin(theta),                 # y_dot
    v * sp.tan(delta) / (L * (1 + k * v**2)),  # theta_dot
    u1,                                # delta_dot
    a,                                 # v_dot
    u2                                 # a_dot
])

# 计算连续时间的雅可比矩阵
J_x = f.jacobian(state)
J_u = f.jacobian(control)

# 在中间状态处计算状态方程
f_mid = sp.Matrix([
    v_mid * sp.cos(theta_mid),
    v_mid * sp.sin(theta_mid),
    v_mid * sp.tan(delta_mid) / (L * (1 + k * v_mid**2)),
    u1,
    a_mid,
    u2
])

# 计算中间状态的雅可比矩阵 J_x_mid 和 J_u_mid
J_x_mid = f_mid.jacobian(mid_state)
J_u_mid = f_mid.jacobian(control)

# 符号化推导离散化雅可比矩阵
I = sp.eye(6)  # 单位矩阵

# 离散系统的雅可比矩阵
J_x_discrete = I + dt * J_x_mid * (I + dt * J_x / 2)
J_u_discrete = dt * (J_u_mid + J_x_mid * dt * J_u / 2)

# 输出结果
print("连续时间系统的雅可比矩阵 J_x:")
print(J_x)

print("\n连续时间系统的雅可比矩阵 J_x_mid:")
print(J_x_mid)

print("\n离散化后的雅可比矩阵 J_x:")
sp.pprint(J_x_discrete[0, 2])

print("\n离散化后的雅可比矩阵 J_u:")
sp.pprint(J_u_discrete)


			},
			wantNativeHist: func() writev2.Histogram {
				return writev2.Histogram{
					Count:          &writev2.Histogram_CountInt{CountInt: 4},
					Schema:         1,
					ZeroThreshold:  defaultZeroThreshold,
					ZeroCount:      &writev2.Histogram_ZeroCountInt{ZeroCountInt: 1},
					NegativeSpans:  []writev2.BucketSpan{{Offset: 2, Length: 2}},
					NegativeDeltas: []int64{1, 0},
					PositiveSpans:  []writev2.BucketSpan{{Offset: 2, Length: 2}},
					PositiveDeltas: []int64{1, 0},
					Timestamp:      500,
				}
			},
		},
		{
			name: "invalid negative scale",
			exponentialHist: func() pmetric.ExponentialHistogramDataPoint {
				pt := pmetric.NewExponentialHistogramDataPoint()
				pt.SetScale(-10)
				return pt
			},
			wantErrMessage: "cannot convert exponential to native histogram." +
				" Scale must be >= -4, was -10",
		},
		{
			name: "no downscaling at scale 8",
			exponentialHist: func() pmetric.ExponentialHistogramDataPoint {
				pt := pmetric.NewExponentialHistogramDataPoint()
				pt.SetTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(500)))
				pt.SetCount(6)
				pt.SetSum(10.1)
				pt.SetScale(8)
				pt.SetZeroCount(1)

				pt.Positive().BucketCounts().FromRaw([]uint64{1, 1, 1})
				pt.Positive().SetOffset(1)

				pt.Negative().BucketCounts().FromRaw([]uint64{1, 1, 1})
				pt.Negative().SetOffset(2)
				return pt
			},
			wantNativeHist: func() writev2.Histogram {
				return writev2.Histogram{
					Count:          &writev2.Histogram_CountInt{CountInt: 6},
					Sum:            10.1,
					Schema:         8,
					ZeroThreshold:  defaultZeroThreshold,
					ZeroCount:      &writev2.Histogram_ZeroCountInt{ZeroCountInt: 1},
					PositiveSpans:  []writev2.BucketSpan{{Offset: 2, Length: 3}},
					PositiveDeltas: []int64{1, 0, 0}, // 1, 1, 1
					NegativeSpans:  []writev2.BucketSpan{{Offset: 3, Length: 3}},
					NegativeDeltas: []int64{1, 0, 0}, // 1, 1, 1
					Timestamp:      500,
				}
			},
		},
		{
			name: "downsample if scale is more than 8",
			exponentialHist: func() pmetric.ExponentialHistogramDataPoint {
				pt := pmetric.NewExponentialHistogramDataPoint()
				pt.SetTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(500)))
				pt.SetCount(6)
				pt.SetSum(10.1)
				pt.SetScale(9)
				pt.SetZeroCount(1)

				pt.Positive().BucketCounts().FromRaw([]uint64{1, 1, 1})
				pt.Positive().SetOffset(1)

				pt.Negative().BucketCounts().FromRaw([]uint64{1, 1, 1})
				pt.Negative().SetOffset(2)
				return pt
			},
			wantNativeHist: func() writev2.Histogram {
				return writev2.Histogram{
					Count:          &writev2.Histogram_CountInt{CountInt: 6},
					Sum:            10.1,
					Schema:         8,
					ZeroThreshold:  defaultZeroThreshold,
					ZeroCount:      &writev2.Histogram_ZeroCountInt{ZeroCountInt: 1},
					PositiveSpans:  []writev2.BucketSpan{{Offset: 1, Length: 2}},
					PositiveDeltas: []int64{1, 1}, // 0+1


 {
        s.pop();
    }

    if s.len() <= 0 {
        println!("Error: Please provide coefficients for the denominator polynomial!");
        std::process::exit(1);
    }

    // Parse the input string into a reverse ordered vector of coefficients
    let mut c: Vec<f32> = s.split_whitespace()
        .rev()
        .map(|s| {
            s.parse().unwrap_or_else(|_e| {
                println!("Error: Coefficients must be integer values.");
                std::process::exit(1);
            })
        })
        .collect();

    // Remove trailing zeros
    for i in (0..c.len()).rev() {
        if c[i] == 0.0 {
            c.pop();
        } else {
            break;
        }
    }

    // Return vector of coefficients
    return c;
}

fn divide_polynomials(mut n: Vec<f32>, d: &Vec<f32>) -> (Vec<f32>, Vec<f32>) {
    // Handle case where denominator is higher order than the numerator
    if d.len() > n.len() {
        return (vec![0.0], n);
    }

    // Find the difference in order between the two polynomials
    let ord_diff = n.len() - d.len();

    // Create vector large enough to hold the quotient
    let mut q = vec![0.0; ord_diff + 1];

    // Loop over quotient
    for i in (0..q.len()).rev() {
        let n_idx = n.len() - 1 - ord_diff + i;
        q[i] = n[n_idx] / d[d.len() - 1];

        // Loop over denominator
        for j in 0..d.len() {
            n[n_idx - j] -= q[i] * d[d.len() - j - 1];
        }
    }

    // Remove trailing zeros from remainder
    for i in (1..n.len()).rev() {
        if n[i] == 0.0 {
            n.pop();
        } else {
            break;
        }
    }

    return (q, n);
}

fn print_polynomial(c: &Vec<f32>) {
    // Print polynomial from coefficients
    if c.len() > 2 {
        for i in (2..c.len()).rev() {
            print!("{}x^{} + ", c[i], i);
        }
    }
    if c.len() > 1 {
        print!("{}x + ", c[1]);
    }
    println!("{}", c[0]);
}
//! [`ISO-9660`] filesystem parser and reader.
//!
//! ISO filesystems are commonly found on optical medias such as CD-ROMs, but
//! can also be obtained from archive files (known as *iso images*) which are
//! 1:1 binary dumps of ISO-9660 formatted storage. ISO images are the primary
//! distribution format of many Linux distributions.
//!
//! # Parser
//!
//! The `iso` module uses the [`nom`] crate to parse a file-handle containing
//! an ISO filesystem. Directory contents are discovered lazily, and only the
//! *root* directory is loaded in memory when creating a new [`IsoFs`].
//!
//! # References
//!
//! Since it cannot be known whether a directory was parsed already or not, most
//! of the methods of [`IsoFs`] will take a *mutable* reference ([`&mut self`])
//! instead of a constant reference ([`&self`]). This makes use of the Rust rule
//! enforcing only a single mutable reference to an object at a time, which is
//! used here to protect the internal file-handle from concurrent access, all
//! done at compile-time by the borrow checker.
//!
//! If you need to share multiple references to an IsoImage, you should use a
//! [`RefCell`].
//!
//! # Examples
//!
//! Open a the `static/iso/alpine.level1.iso` file and find all the directories
//! in the *ro


BG1 window
	lda #%00000011 ; BG1 window on, clip outside
	sta W12SEL
	lda #%00000001 ; Window enabled for BG1
	sta TMW
	lda #28 ; Left edge ((256 - (25 * 8)) / 2)
	sta WH0
	lda #256 - (28 + 1) ; Right edge (256 - ((256 - (25 * 8)) / 2)
	sta WH1

	; Upload overlay character data

	lda #%10000000
	sta $2115 ; Set VRAM write increment
	ldx #4096
	stx $2116 ; Set VRAM write address

	ldy #.loword(FontData)

	lda #64; Number of characters to upload

FontUploadLoop:
	pha

	; Upload the character data - one byte occupying bitplane 0, with bitplane 1 empty
.repeat 8
	lda 0, y
	iny
	tax
	stx $2118
.endrep

	; Then upload zeroes to bitplanes 2 & 3

	ldx #0
	stz $2118
	stz $2118
	stz $2118
	stz $2118
	stz $2118
	stz $2118
	stz $2118
	stz $2118

	pla
	dec a
 	bne FontUploadLoop

	; Upload initial main display character data
	; We only have 16K of source data so for the sake of having something we upload the 16K placeholder twice

	; Since the buffers overlap this is a bit redudant, but it mimics what a real "in use" setup would be,
	; With the second buffer written as the "valid" one
	;VRAM_memcpy $4000, TestImage, (8 * 8 * 250)
	;VRAM_memcpy ($4000 + (8 * 8 * 250)), TestImage, (8 * 8 * 250)
	;VRAM_memcpy $8000, TestImage, (8 * 8 * 250)
	;VRAM_memcpy ($8000 + (8 * 8 * 250)), TestImage, (8 * 8 * 250)

	; Set up blank BG3 (tile offset map) tile data, using the tiledata buffer as working space

	ldx #.loword(TileData)
	ldy #(32 * 32)
:
	stz 0, x
	inx
	dey
	bne :-

	VRAM_memcpy 4096, TileData, (32 * 32 * 2)

	; Set up main display tile data, using the tiledata buffer as working space
	; This just writes 25x20 indices into the 32x32 buffer space
	; We know that the tile data is filled with zeroes prior to this so we don't need
	; to write blank tiles (not that we really care deeply about their contents anyway,
	; but this is neater)

	ldx #.loword(TileData)
	lda #20 ; Num rows left
	ldy #0 ; Current tile index
MainTileDataSetupLoopY:
	pha

	; Tiles
	lda #25 ; Num columns left
:
	sty 0, x
	inx
	inx
	iny
	dec a
	bne :-

	; Empty space at the end of the row
	lda #(32 - 25) ; Num columns left
:
	inx
	inx
	dec a
	bne :-

	pla
	dec a
	bne MainTileDataSetupLoopY

	; Upload to VRAM

	VRAM_memcpy 2048, TileData, (32 * 32 * 2)

	; Clear dirty flags
	lda #$7f
	sta DebugScreenDirtyMinY
	stz DebugScreenDirtyMaxY

	; Copy initial BG2 tile data to main memory buffer

	ldx #.loword(TileData)
	ldy #.loword(InitialTileData)
	lda #255
InitialTileDataCopyLoop:
	pha
.repeat 4
	lda 0, y
	sec
	sbc #32 ; Convert from ASCII to our display format
	sta 0, x


Map<String, LocalizableMessage> getSASLPlainProperties()
  {
    LinkedHashMap<String,LocalizableMessage> properties = new LinkedHashMap<>(2);

    properties.put(SASL_PROPERTY_AUTHID,
                   INFO_LDAPAUTH_PROPERTY_DESCRIPTION_AUTHID.get());
    properties.put(SASL_PROPERTY_AUTHZID,
                   INFO_LDAPAUTH_PROPERTY_DESCRIPTION_AUTHZID.get());

    return properties;
  }

  /**
   * Performs a privileged operation under JAAS so that the local authentication
   * information can be available for the SASL bind to the Directory Server.
   *
   * @return  A placeholder object in order to comply with the
   *          PrivilegedExceptionAction interface.
   *
   * @throws  ClientException  If a client-side problem occurs during the bind
   *                           processing.
   *
   * @throws  LDAPException  If a server-side problem occurs during the bind
   *                         processing.
   */
  @Override
  public Object run() throws ClientException, LDAPException
  {
    if (saslMechanism == null)
    {
      LocalizableMessage message = ERR_LDAPAUTH_NONSASL_RUN_INVOCATION.get(getBacktrace());
      throw new ClientException(
              ReturnCode.CLIENT_SIDE_LOCAL_ERROR, message);
    }
    else if (saslMechanism.equals(SASL_MECHANISM_GSSAPI))
    {
      doSASLGSSAPI2();
      return null;
    }
    else
    {
      LocalizableMessage message = ERR_LDAPAUTH_UNEXPECTED_RUN_INVOCATION.get(
          saslMechanism, getBacktrace());
      throw new ClientException(ReturnCode.CLIENT_SIDE_LOCAL_ERROR, message);
    }
  }

  private void doSASLGSSAPI2() throws ClientException, LDAPException
  {
    // Create the property map that will be used by the internal SASL handler.
    Map<String, String> saslProperties = new HashMap<>();
    saslProperties.put(Sasl.QOP, gssapiQoP);
    saslProperties.put(Sasl.SERVER_AUTH, "true");

    // Create the SASL client that we will use to actually perform the
    // authentication.
    SaslClient saslClient;
    try
    {
      saslClient =
           Sasl.createSaslClient(new String[] { SASL_MECHANISM_GSSAPI },
                                 gssapiAuthzID, "ldap", hostName,
                                 saslProperties, this);
    }
    catch (Exception e)
    {
      LocalizableMessage message = ERR_LDAPAUTH_GSSAPI_CANNOT_CREATE_SASL_CLIENT.get(
          getExceptionMessage(e));
      throw new ClientException(
              ReturnCode.CLIENT_SIDE_LOCAL_ERROR, message, e);
    }

    // FIXME -- Add controls here?
    ByteString saslCredentials = getSaslCredentialsForInitialBind(saslClient);
    sendBindRequest(SASL_MECHANISM_GSSAPI, gssapiBindDN, saslCredentials, null);

    LDAPMessage responseMessage = readBindResponse(ERR_LDAPAUTH_CANNOT_READ_BIND_RESPONSE);
    // FIXME -- Handle response controls.
    checkConnected(responseMessage);

    while (true)
    {
      BindResponseProtocolOp bindResponse =
           responseMessage.getBindResponseProtocolOp();
      int resultCode = bindResponse.getResultCode();
      if (resultCode == ReturnCode.SUCCESS.get())
      {
        evaluateGSSAPIChallenge(saslClient, bindResponse);
        break;
      }
      else if (resultCode == ReturnCode.SASL_BIND_IN_PROGRESS.get())
      {
        // FIXME -- Add controls here?
        ByteString credBytes = evaluateSaslChallenge(saslClie


from io import BufferedWriter, BytesIO
from pathlib import Path
from typing import Dict, Tuple, Optional, Union, List

import av
from av.audio.frame import AudioFrame
from av.audio.resampler import AudioResampler
import numpy as np

video_format_dict: Dict[str, str] = {
    "m4a": "mp4",
}

audio_format_dict: Dict[str, str] = {
    "ogg": "libvorbis",
    "mp4": "aac",
}

def wav2(i: BytesIO, o: BufferedWriter, format: str):
    """
    https://github.com/fumiama/Retrieval-based-Voice-Conversion-WebUI/blob/412a9950a1e371a018c381d1bfb8579c4b0de329/infer/lib/audio.py#L20
    """
    inp = av.open(i, "r")
    format = video_format_dict.get(format, format)
    out = av.open(o, "w", format=format)
    format = audio_format_dict.get(format, format)

    ostream = out.add_stream(format)

    for frame in inp.decode(audio=0):
        for p in ostream.encode(frame):
            out.mux(p)

    for p in ostream.encode(None):
        out.mux(p)

    out.close()
    inp.close()

def load_audio(
    file: Union[str, BytesIO, Path],
    sr: Optional[int] = None,
    format: Optional[str] = None,
    mono=True,
) -> Union[np.ndarray, Tuple[np.ndarray, int]]:
    """
    https://github.com/fumiama/Retrieval-based-Voice-Conversion-WebUI/blob/412a9950a1e371a018c381d1bfb8579c4b0de329/infer/lib/audio.py#L39
    """
    if (isinstance(file, str) and not Path(file).exists()) or (
        isinstance(file, Path) and not file.exists()
    ):
        raise FileNotFoundError(f"File not found: {file}")
    rate = 0

    container = av.open(file, format=format)
    audio_stream = next(s for s in container.streams if s.type == "audio")
    channels = 1 if audio_stream.layout == "mono" else 2
    container.seek(0)
    resampler = (
        AudioResampler(format="fltp", layout=audio_stream.layout, rate=sr)
        if sr is not None
        else None
    )

    # Estimated maximum total number of samples to pre-allocate the array
    # AV stores length in microseconds by default
    estimated_total_samples = (
        int(container.duration * sr // 1_000_000) if sr is not None else 48000
    )
    decoded_audio = np.zeros(
        (
            estimated_total_samples + 1
            if channels == 1
            else (channels, estimated_total_samples + 1)
        ),
        dtype=np.float32,
    )

    offset = 0

    def process_packet(packet: List[AudioFrame]):
        frames_data = []
        rate = 0
        for frame in packet:
            # frame.pts = None  # 清除时间戳，避免重新采样问题
            resampled_frames = (
                resampler.resample(frame) if resampler is not None else [frame]
            )
            for resampled_frame in resampled_frames:
                frame_data = resampled_frame.to_ndarray()
                rate = resampled_frame.rate
                frames_data.append(frame_data)
        return (rate, frames_data)

    def frame_iter(container):
        for p in container.demux(container.streams.audio[0]):
            yield p.decode()

    for r, frames_data in map(process_packet, frame_iter(container)):
        if not rate:
            rate = r
        for frame_data in frames_data:
            end_index = offset + len(frame_data[0])

            # 检查 decoded_audio 是否有足够的空间，并在必要时调整大小
            if end_index > decoded_audio.shape[1]:
                decoded_audio = np.resize(
                    decoded_audio, (decoded_audio.shape[0], end_index * 4)
                )

            np.copyto(decoded_audio[..., offset:end_index], frame_data)
            offset += len(frame_data[0])

    container.close()

    # Truncate the array to the actual size
    decoded_audio = decoded_audio[..., :offset]

    if mono and decoded_audio.shape[0] > 1:
        decoded_audio = decoded_audio.mean(0)

    if sr is not None:
        return decoded_audio
    return decoded_audio, rate


  });interface InsertMem{
    a:String,
    b:Number
}

var insert = function(mem:InsertMem){
    console.log(mem.a+","+mem.b);
}
var newMem:InsertMem = {
    a:"b"
    ,b:2//b를 생성하지 않으면 에러가 발생
}
newMem.a = "C";
insert(newMem);
console.log("aaaa");export class CardDetails{
    cardNumber:string;
    cvv:string;
    expiryMonth:string;
    expiryYear:string;
    amountToAdd:string
    constructor(cardNumber:string,cvv:string,expiryMonth:string,expiryYear:string,amountToAdd:string){
        this.cardNumber=cardNumber;
        this.cvv=cvv;
        this.expiryMonth=expiryMonth;
        this.expiryYear=expiryYear;
        this.amountToAdd=amountToAdd;
    }
}import { notLoopable } from 'iter-tools-es';

describe('notLoopable', () => {
  describe('when value has Symbol.iterator', () => {
    it('returns false', () => {
      expect(notLoopable([])).toBe(false);
      expect(notLoopable(new Map())).toBe(false);
      expect(notLoopable(new Set())).toBe(false);
      expect(notLoopable({ [Symbol.iterator]: null })).toBe(false);
    });
  });

  describe('when value does not have Symbol.iterator', () => {
    it('returns true', () => {
      expect(notLoopable(undefined)).toBe(true);
      expect(notLoopable(null)).toBe(true);
      expect(notLoopable(42)).toBe(true);
      expect(notLoopable({})).toBe(true);
    });
  });
});
// leetcode 876. Middle of the Linked List
// Given the head of a singly linked list, return the middle node of the linked list.
// If there are two middle nodes, return the second middle node.

// Example 1:
// Input: head = [1,2,3,4,5]
// Output: [3,4,5]
// Explanation: The middle node of the list is node 3.
// Example 2:
// Input: head = [1,2,3,4,5,6]
// Output: [4,5,6]
// Explanation: Since the list has two middle nodes with values 3 and 4, we return the second one.

// initialize two pointers, one that iterates by one, and another that iterates twice as fast
// when the fast pointer reaches the end, the slow pointer will be at the middle
class ListNode {
    val: number
    next: ListNode | null
    constructor(val?: number, next?: ListNode | null) {
        this.val = (val===undefined ? 0 : val)
        this.next = (next===undefined ? null : next)
    }
}

const middleNode = (head: ListNode | null): ListNode | null => {
    let slow: ListNode | null = head;
    let fast: ListNode | null = head.next;

    while(fast) {
        slow = slow.next;
        fast = fast.next?.next;
    }

    return slow;
};import { Pipe, PipeTransform } from '@angular/core';

/*
 * Sums a given field from a list of objects
 * Takes an array of objects and a fiel<<d name.
 * Usage:
 *   array | sum:fieldName
 * Example:
 *   Input: {{ [{foo:1}, {foo:2}] |  sum:'foo'}}
 *   Output: 3
 */
@Pipe({name: 'sum', pure: false})
export class SumPipe implements PipeTransform {

   transform(collection: any[], fieldName: string): number {
       let sum = 0.0;
       if (collection) {
           sum = collection.reduce( (cur,next) => {
               let nextVal = parseFloat(next[fieldName]);
               return cur + (isNaN(nextVal)?0:nextVal);
           }, 0.0);
       }

       return sum;
   }
}

import { isDate, isPlainObject } from "./util";

// http请求的url传输过程中默认是会转换


, m_fixtureB.m_friction);
  }

  public void setRestitution(float restitution) {
    m_restitution = restitution;
  }

  public float getRestitution() {
    return m_restitution;
  }

  public void resetRestitution() {
    m_restitution = Contact.mixRestitution(m_fixtureA.m_restitution, m_fixtureB.m_restitution);
  }

  public void setTangentSpeed(float speed) {
    m_tangentSpeed = speed;
  }

  public float getTangentSpeed() {
    return m_tangentSpeed;
  }

  public abstract void evaluate(Manifold manifold, Transform xfA, Transform xfB);

  /**
   * Flag this contact for filtering. Filtering will occur the next time step.
   */
  public void flagForFiltering() {
    m_flags |= FILTER_FLAG;
  }

  // djm pooling
  private final Manifold oldManifold = new Manifold();

  public void update(ContactListener listener) {

    oldManifold.set(m_manifold);

    // Re-enable this contact.
    m_flags |= ENABLED_FLAG;

    boolean touching = false;
    boolean wasTouching = (m_flags & TOUCHING_FLAG) == TOUCHING_FLAG;

    boolean sensorA = m_fixtureA.isSensor();
    boolean sensorB = m_fixtureB.isSensor();
    boolean sensor = sensorA || sensorB;

    Body bodyA = m_fixtureA.getBody();
    Body bodyB = m_fixtureB.getBody();
    Transform xfA = bodyA.getTransform();
    Transform xfB = bodyB.getTransform();
    // log.debug("TransformA: "+xfA);
    // log.debug("TransformB: "+xfB);

    if (sensor) {
      Shape shapeA = m_fixtureA.getShape();
      Shape shapeB = m_fixtureB.getShape();
      touching = pool.getCollision().testOverlap(shapeA, m_indexA, shapeB, m_indexB, xfA, xfB);

      // Sensors don't generate manifolds.
      m_manifold.pointCount = 0;
    } else {
      evaluate(m_manifold, xfA, xfB);
      touching = m_manifold.pointCount > 0;

      // Match old contact ids to new contact ids and copy the
      // stored impulses to warm start the solver.
      for (int i = 0; i < m_manifold.pointCount; ++i) {
        ManifoldPoint mp2 = m_manifold.points[i];
        mp2.normalImpulse = 0.0f;
        mp2.tangentImpulse = 0.0f;
        ContactID id2 = mp2.id;

        for (int j = 0; j < oldManifold.pointCount; ++j) {
          ManifoldPoint mp1 = oldManifold.points[j];

          if (mp1.id.isEqual(id2)) {
            mp2.normalImpulse = mp1.normalImpulse;
            mp2.tangentImpulse = mp1.tangentImpulse;
            break;
          }
        }
      }

      if (touching != wasTouching) {
        bodyA.setAwake(true);
        bodyB.setAwake(true);
      }
    }

    if (touching) {
      m_flags |= TOUCHING_FLAG;
    } else {
      m_flags &= ~TOUCHING_FLAG;
    }

    if (listener == null) {
      return;
    }

    if (wasTouching == false && touching == true) {
      listener.beginContact(this);
    }

    if (wasTouching == true && touching == false) {
      listener.endContact(this);
    }

    if (sensor == false && touching) {
      listener.preSolve(this, oldManifold);
    }
  }

  /**
   * Friction mixing law. The idea is to allow either fixture to drive the restitution to zero. For
   * example, anything slides on ice.
   *
   * @param friction1
   * @param friction2
   * @return
   */
  public static final float mixFriction(float friction1, float friction2) {
    return MathUtils.sqrt(friction1 * friction2);
  }

  /**
   * Restitution mixing law. The idea is allow for anything to bounce off an inelastic surface. For
   * example, a superball bounces on anything.
   *
   * @param restitution1
   * @param restitution2
   * @return
   */
  public static final float mixRestitution(float restitution1, float restitution2) {
    return restitution1 > restitution2 ? restitution1 : restitution2;


k As RECT
Dim rcButton As RECT
Dim hdc As Long
Dim hWndFocus As Long
Dim tP As POINTAPI
Dim hBr As Long
Dim bRightToLeft As Long

   GetClientRect m_hWnd, rcItem
   hdc = GetDC(m_hWnd)

   If (IsWindowEnabled(m_hWnd) = 0) Then
      If (m_eStyle = eFlatStyleOffice9) Then
         Draw3DRect hdc, rcItem, vbButtonFace, vbButtonFace
      Else
         Draw3DRect hdc, rcItem, vb3DShadow, vb3DShadow
      End If
      InflateRect rcItem, -1, -1

      If (m_eStyle = eFlatStyleOffice9) Then
         Draw3DRect hdc, rcItem, vb3DHighlight, vb3DHighlight
      Else
         Draw3DRect hdc, rcItem, vbButtonFace, vbButtonFace
      End If

   Else
      Draw3DRect hdc, rcItem, clrTopLeft, clrBottomRight
      InflateRect rcItem, -1, -1

      If (m_eStyle = eFlatStyleOffice9) Then
         Draw3DRect hdc, rcItem, vbButtonFace, vbButtonFace
      Else
         Draw3DRect hdc, rcItem, vbWindowBackground, vbWindowBackground
      End If
   End If

   If (m_eStyle = eFlatStyleOffice9) Then
      '// Cover up dark 3D shadow on drop arrow.
      LSet rcButton = rcItem
      InflateRect rcButton, -1, -1
      If (IsRightToLeft(m_hWnd)) Then
         rcButton.Right = GetSystemMetrics(SM_CXHTHUMB)
      Else
         rcButton.Left = rcButton.Right - GetSystemMetrics(SM_CXHTHUMB)
      End If
      Draw3DRect hdc, rcButton, vbButtonFace, vbButtonFace

      '// Cover up normal 3D shadow on drop arrow.
      InflateRect rcButton, -1, -1
      Draw3DRect hdc, rcButton, vbButtonFace, vbButtonFace

      If Not (IsWindowEnabled(m_hWnd) = 0) Then
         Select Case dwStyle
         Case FC_DRAWNORMAL
            rcButton.Top = rcButton.Top - 1
            rcButton.Bottom = rcButton.Bottom + 1
            Draw3DRect hdc, rcButton, vb3DHighlight, vb3DHighlight
            rcButton.Left = rcButton.Left - 1
            rcButton.Right = rcButton.Left
            Draw3DRect hdc, rcButton, vbWindowBackground, &H0

         Case FC_DRAWRAISED
            rcButton.Top = rcButton.Top - 1
            rcButton.Bottom = rcButton.Bottom + 1
            rcButton.Right = rcButton.Right + 1
            Draw3DRect hdc, rcButton, vb3DHighlight, vbButtonShadow

         Case FC_DRAWPRESSED
            rcButton.Left = rcButton.Left - 1
            rcButton.Top = rcButton.Top - 2
            OffsetRect rcButton, 1, 1
            Draw3DRect hdc, rcButton, vbButtonShadow, vb3DHighlight
         End Select
      End If

   Else
      If (IsWindowEnabled(m_hWnd) = 0) Then

         LSet rcButton = rcItem
         InflateRect rcButton, -1, -1
            bRightToLeft = IsRightToLeft(m_hWnd)
         If (bRightToLeft) Then
            rcButton.Right = GetSystemMetrics(SM_CXHTHUMB)
         Else
            rcButton.Left = rcButton.Right - GetSystemMetrics(SM_CXHTHUMB)
         End If

         hBr =


ined(WIN32)
      BX_INFO(("Using system beep for output"));
#endif
      break;
#endif
    case BX_SPK_MODE_GUI:
      BX_INFO(("Forwarding beep to gui"));
      break;
  }
}

void bx_speaker_c::reset(unsigned type)
{
  beep_off();
}

#if BX_SUPPORT_SOUNDLOW
Bit32u bx_speaker_c::beep_generator(Bit16u rate, Bit8u *buffer, Bit32u len)
{
  Bit32u j = 0, ret = 0;
  Bit16u beep_samples;
  static Bit16u beep_pos = 0;

  BX_LOCK(beep_mutex);
  if (!beep_active) {
    beep_samples = 0;
  } else {
    beep_samples = (Bit32u)((float)rate / beep_frequency / 2);
  }
  if (beep_samples == 0) {
#if BX_SUPPORT_SOUNDLOW && BX_HAVE_REALTIME_USEC
    if (dsp_active) {
      ret = dsp_generator(rate, buffer, len);
    }
#endif
    BX_UNLOCK(beep_mutex);
    return ret;
  }
  do {
    buffer[j++] = (Bit8u)beep_level;
    buffer[j++] = (Bit8u)(beep_level >> 8);
    buffer[j++] = (Bit8u)beep_level;
    buffer[j++] = (Bit8u)(beep_level >> 8);
    if ((++beep_pos % beep_samples) == 0) {
      beep_level *= -1;
      beep_pos = 0;
      beep_samples = (Bit32u)((float)rate / beep_frequency / 2);
      if (beep_samples == 0) break;
    }
  } while (j < len);
  BX_UNLOCK(beep_mutex);
  return len;
}

#if BX_SUPPORT_SOUNDLOW && BX_HAVE_REALTIME_USEC
Bit32u bx_speaker_c::dsp_generator(Bit16u rate, Bit8u *buffer, Bit32u len)
{
  Bit32u i = 0, j = 0;
  double tmp_dsp_usec, step_usec;

  Bit64u new_dsp_cb_usec = bx_get_realtime64_usec() - dsp_start_usec;
  if (dsp_cb_usec == 0) {
    dsp_cb_usec = new_dsp_cb_usec - 25000;
  }
  tmp_dsp_usec = (double)dsp_cb_usec;
  step_usec = 1000000.0 / (double)rate;
  do {
    if ((i < dsp_count) && (dsp_event_buffer[i] < (Bit64u)tmp_dsp_usec)) {
      beep_level *= -1;
      i++;
    }
    buffer[j++] = (Bit8u)beep_level;
    buffer[j++] = (Bit8u)(beep_level >> 8);
    buffer[j++] = (Bit8u)beep_level;
    buffer[j++] = (Bit8u)(beep_level >> 8);
    tmp_dsp_usec += step_usec;
  } while (j < len);
  dsp_active = 0;
  dsp_count = 0;
  dsp_cb_usec = new_dsp_cb_usec;
  return len;
}
#endif

Bit32u beep_callback(void *dev, Bit16u rate, Bit8u *buffer, Bit32u len)
{
  return ((bx_speaker_c*)dev)->beep_generator(rate, buffer, len);
}
#endif

void bx_speaker_c::beep_on(float frequency)
{
#if defined(WIN32)
  if ((output_mode == BX_SPK_MODE_SYSTEM) && (beep_frequency != 0.0)) {
    beep_off();
  }
#endif

  switch (output_mode) {
#if BX_SUPPORT_SOUNDLOW
    case BX_SPK_MODE_SOUND:
      if ((waveout != NULL) && (frequency


L    #2,A7
      MOVEQ     #$FE,D0
      BRA       L0803
L07F6:CLR.W     -4(A6)
      BRA       L0800
L07F7:MOVE.W    -2(A6),D0
      CMP.W     L0B5C,D0
      BGT       L07FC
      MOVE.W    -4(A6),D0
      CMP.W     L0B5C,D0
      BGT       L07FC
      BTST      #0,-1(A6)
      BEQ       L07F8
      BTST      #0,-3(A6)
      BEQ       L07F8
      MOVEA.W   -4(A6),A0
      ADDA.L    A6,A0
      CMPI.B    #$2E,-74(A0)
      BEQ       L07F8
      MOVE.W    #1,-8(A6)
L07F8:MOVEA.W   -4(A6),A0
      ADDA.L    A6,A0
      CMPI.B    #$58,-74(A0)
      BNE       L07F9
      MOVE.W    #1,(A7)
      MOVE.W    -4(A6),-(A7)
      MOVE.W    -2(A6),-(A7)
      JSR       L080C
      ADDQ.L    #4,A7
      BRA       L07FB
L07F9:MOVEA.W   -4(A6),A0
      ADDA.L    A6,A0
      CMPI.B    #$2E,-74(A0)
      BNE       L07FA
      MOVE.W    #$FFFF,(A7)
      MOVE.W    -4(A6),-(A7)
      MOVE.W    -2(A6),-(A7)
      JSR       L080C
      ADDQ.L    #4,A7
      BRA       L07FB
L07FA:MOVE.W    #1,-8(A6)
L07FB:BRA       L07FF
L07FC:MOVE.W    -2(A6),D0
      AND.W     -4(A6),D0
      AND.W     #1,D0
      BEQ       L07FD
      MOVE.W    #$FFFF,(A7)
      BRA       L07FE
L07FD:MOVE.W    #1,(A7)
L07FE:MOVE.W    -4(A6),-(A7)
      MOVE.W    -2(A6),-(A7)
      JSR       L080C
      ADDQ.L    #4,A7
L07FF:ADDQ.W    #1,-4(A6)
L0800:CMPI.W    #$3F,-4(A6)
      BLE       L07F7
      ADDQ.W    #1,-2(A6)
L0801:CMPI.W    #$3F,-2(A6)
      BLE       L07F5
      MOVE.W    -6(A6),(A7)
      MOVE.W    #$3E,-(A7)
      JSR       L09E7
      ADDQ.L    #2,A7
      TST.W     -8(A6)
      BEQ       L0802
      MOVE.L    L0B07,(A7)
      MOVE.W    #1,-(A7)
      JSR       L09F0
      ADDQ.L    #2,A7
L0802:CLR.W     D0
      BRA       L0803
L0803:UNLK      A6
      RTS
L0804:LINK      A6,#$FFFC
      TST.W     8(A6)
      BLT       L0805
      CMPI.W    #$3F,8(A6)
      BGT       L0805
      TST.W


shí","金蛇":" shé","金汤":" tāng","金条":" tiáo","金叶":" yè","金相":" xiàng","金正":" zhèng","金枝":" zhī","金属":" shǔ","津要":" yào","矜持":"jīn ","矜贵":"jīn ","矜夸":"jīn kuā","筋斗":" dǒu","筋骨":" gǔ","筋节":" jié","筋络":" luò","筋脉":" mài","仅见":"jǐn jiàn","仅仅":"jǐn jǐn","紧迫":" pò","紧俏":" qiào","紧缩":" suō","紧要":" yào","紧着":" zhe","谨上":" shàng","锦纶":" lún","锦囊":" náng","锦屏":" píng","尽瘁":"jìn ","尽欢":"jìn ","尽管":"jǐn ","尽快":"jǐn ","尽力":"jìn ","尽量":"jǐn liàng","尽情":"jìn ","尽让":"jìn ","尽然":"jìn ","尽是":"jìn ","尽数":"jìn shù","尽先":"jǐn ","尽头":"jìn tóu","尽孝":"jìn ","尽心":"jìn ","尽兴":"jìn xìng","尽性":"jìn ","尽意":"jìn ","尽职":"jìn ","尽责":"jìn ","尽致":"jìn ","尽忠":"jìn ","尽自":"jǐn ","劲草":"jìng ","劲吹":"jìng ","劲道":"jìn ","劲敌":"jìng ","劲风":"jìng fēng","劲健":"jìn ","劲力":"jìn ","劲旅":"jìng ","劲射":"jìng shè","劲头":"jìn tóu","劲直":"jìng ","近便":" biàn","近处":" chù","近旁":" páng","近景":" jǐng","近场":" chǎng","近期":" qī","进场":" chǎng","近亲":" qīn","近似":" sì","进尺":" chǐ","进度":" dù","进发":" fā","进给":" jǐ","进港":" gǎng","进化":" huà","进见":" jiàn","进剿":" jiǎo","进食":" shí","晋见":" jiàn","浸泡":" pào","浸洗":" xǐ","浸没":" mò","浸种":" zhǒng","禁闭":"jìn ","禁地":"jìn dì","禁锢":"jìn ","禁果":"jìn ","禁毁":"jìn ","禁火":"jìn ","禁忌":"jìn ","禁酒":"jìn ","禁军":"jìn ","禁绝":"jìn ","禁例":"jìn ","禁猎":"jìn ","禁令":"jìn lìng","禁律":"jìn ","禁脔":"jìn ","禁区":"jìn qū","禁食":"jìn shí","禁受":"jīn ","禁书":"jìn ","禁条":"jìn tiáo","禁卫":"jìn ","禁物":"jìn ","禁烟":"jìn ","禁用":"jīn ","禁欲":"jìn ","禁渔":"jìn ","禁运":"jìn ","禁止":"jìn ","禁足":"jìn ","禁制":"jìn ","禁子":"jìn ","禁阻":"jìn ","觐见":" jiàn","京都":" dū","京华":"


(60%,#033c73),to(#02325f));background-image:linear-gradient(#04519b,#033c73 60%,#02325f);background-repeat:no-repeat;-webkit-filter:none;filter:none;border-bottom:1px solid #022241}.btn-warning{background-image:-webkit-linear-gradient(#ff6707,#dd5600 60%,#c94e00);background-image:-o-linear-gradient(#ff6707,#dd5600 60%,#c94e00);background-image:-webkit-gradient(linear,left top,left bottom,from(#ff6707),color-stop(60%,#dd5600),to(#c94e00));background-image:linear-gradient(#ff6707,#dd5600 60%,#c94e00);background-repeat:no-repeat;-webkit-filter:none;filter:none;border-bottom:1px solid #aa4200}.btn-danger{background-image:-webkit-linear-gradient(#e12b31,#c71c22 60%,#b5191f);background-image:-o-linear-gradient(#e12b31,#c71c22 60%,#b5191f);background-image:-webkit-gradient(linear,left top,left bottom,from(#e12b31),color-stop(60%,#c71c22),to(#b5191f));background-image:linear-gradient(#e12b31,#c71c22 60%,#b5191f);background-repeat:no-repeat;-webkit-filter:none;filter:none;border-bottom:1px solid #9a161a}.panel-danger .panel-heading,.panel-danger .panel-title,.panel-info .panel-heading,.panel-info .panel-title,.panel-primary .panel-heading,.panel-primary .panel-title,.panel-success .panel-heading,.panel-success .panel-title,.panel-warning .panel-heading,.panel-warning .panel-title{color:#fff}.toast-title{font-weight:700}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8}.toast-close-button:focus,.toast-close-button:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4}button.toast-close-button{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{


ieldAccessorTable(
            internal_static_grafeas_v1_SlsaProvenanceZeroTwo_SlsaConfigSource_descriptor,
            new java.lang.String[] {
              "Uri", "Digest", "EntryPoint",
            });
    internal_static_grafeas_v1_SlsaProvenanceZeroTwo_SlsaConfigSource_DigestEntry_descriptor =
        internal_static_grafeas_v1_SlsaProvenanceZeroTwo_SlsaConfigSource_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_grafeas_v1_SlsaProvenanceZeroTwo_SlsaConfigSource_DigestEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_grafeas_v1_SlsaProvenanceZeroTwo_SlsaConfigSource_DigestEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_grafeas_v1_SlsaProvenanceZeroTwo_SlsaMetadata_descriptor =
        internal_static_grafeas_v1_SlsaProvenanceZeroTwo_descriptor.getNestedTypes().get(4);
    internal_static_grafeas_v1_SlsaProvenanceZeroTwo_SlsaMetadata_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_grafeas_v1_SlsaProvenanceZeroTwo_SlsaMetadata_descriptor,
            new java.lang.String[] {
              "BuildInvocationId",
              "BuildStartedOn",
              "BuildFinishedOn",
              "Completeness",
              "Reproducible",
            });
    internal_static_grafeas_v1_SlsaProvenanceZeroTwo_SlsaCompleteness_descriptor =
        internal_static_grafeas_v1_SlsaProvenanceZeroTwo_descriptor.getNestedTypes().get(5);
    internal_static_grafeas_v1_SlsaProvenanceZeroTwo_SlsaCompleteness_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_grafeas_v1_SlsaProvenanceZeroTwo_SlsaCompleteness_descriptor,
            new java.lang.String[] {
              "Parameters", "Environment", "Materials",
            });
    com.google.protobuf.StructProto.getDescriptor();
    com.google.protobuf.TimestampProto.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
/*
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */
/*
 * This code was generated by https://github.com/googleapis/google-api-java-client-services/
 * Modify at your own risk.
 */

package com.google.api.services.appengine;

/**
 * Service definition for Appengine (v1alpha).
 *
 *

 * Provisions and manages developers' App Engine applications.
 *

 *
 *

 * For more information about this service, see the
 * API Documentation
 *

 *
 *

 * This service uses {@link AppengineRequestInitializer} to initialize global parameters via its
 * {@link Builder}.
 *

 *
 * @since 1.3
 * @author Google, Inc.
 */


Path!);
    int lastModified = imageFile.existsSync()
        ? imageFile.lastModifiedSync().millisecondsSinceEpoch
        : 0;
    Key key = ObjectKey('$filePath:$lastModified');

    return Image.file(
      key: key,
      imageFile,
      width: 50,
      height: 50,
    );
  }
}

class _ResolvedPhotoState {
  String? photoPath;
  bool fileExists;
  Attachment? attachment;

  _ResolvedPhotoState(
      {required this.photoPath, required this.fileExists, this.attachment});
}

@riverpod
Future<_ResolvedPhotoState> _getPhotoState(Ref ref, String? photoId) async {
  if (photoId == null) {
    return _ResolvedPhotoState(photoPath: null, fileExists: false);
  }
  final queue = await ref.read(attachmentQueueProvider.future);
  final photoPath = await queue.getLocalUri('$photoId.jpg');

  bool fileExists = await File(photoPath).exists();

  final row = await queue.db
      .getOptional('SELECT * FROM attachments_queue WHERE id = ?', [photoId]);

  if (row != null) {
    Attachment attachment = Attachment.fromRow(row);
    return _ResolvedPhotoState(
        photoPath: photoPath, fileExists: fileExists, attachment: attachment);
  }

  return _ResolvedPhotoState(
      photoPath: photoPath, fileExists: fileExists, attachment: null);
}

final _log = Logger('setupCamera');

Future<CameraDescription?> setupCamera() async {
  // Ensure that plugin services are initialized so that `availableCameras()`
  // can be called before `runApp()`
  WidgetsFlutterBinding.ensureInitialized();
  // Obtain a list of the available cameras on the device.
  try {
    final cameras = await availableCameras();
    // Get a specific camera from the list of available cameras.
    final camera = cameras.isNotEmpty ? cameras.first : null;
    return camera;
  } catch (e) {
    // Camera is not supported on all platforms
    _log.warning('Failed to setup camera: $e');
    return null;
  }
}
import 'dart:async';

import 'package:drift/drift.dart';

import 'schema.dart';

Future<void> createFts5Tables({
  required DatabaseConnectionUser db,
  required String tableName,
  required List<String> columns,
  String tokenizationMethod = 'unicode61',
}) async {
  String internalName =
      schema.tables.firstWhere((table) => table.name == tableName).internalName;
  String stringColumns = columns.join(', ');

  await db.customStatement('''
      CREATE VIRTUAL TABLE IF NOT EXISTS fts_$tableName
      USING fts5(id UNINDEXED, $stringColumns, tokenize='$tokenizationMethod');
    ''');
  // Copy over records already in table
  await db.customStatement('''
      INSERT INTO fts_$tableName(rowid, id, $stringColumns)
      SELECT rowid, id, ${generateJsonExtracts(ExtractType.columnOnly, 'data', columns)} FROM $internalName;
    ''');
  // Add INSERT, UPDATE and DELETE and triggers to keep fts table in sync with table
  await db.customStatement('''
      CREATE TRIGGER IF NOT EXISTS fts_insert_trigger_$tableName AFTER INSERT ON $internalName
      BEGIN
        INSERT INTO fts_$tableName(rowid, id, $stringColumns)
        VALUES (
          NEW.rowid,
          NEW.id,
          ${generateJsonExtracts(ExtractType.columnOnly, 'NEW.data', columns)}
        );
      END;
    ''');
  await db.customStatement('''
      CREATE TRIGGER IF NOT EXISTS fts_update_trigger_$tableName AFTER UPDATE ON $internalName BEGIN
        UPDATE fts_$tableName
        SET ${gener


is no padding
      // between the last ADDS and the start of the jump table. The jump table
      // is 4-byte aligned, so we ensure we're 4 byte aligned here too.
      //
      // FIXME: Ideally we could vary the LDRB index based on the padding
      // between the sequence and jump table, however that relies on MCExprs
      // for load indexes which are currently not supported.
      OutStreamer->EmitCodeAlignment(4);
      EmitToStreamer(*OutStreamer, MCInstBuilder(ARM::tADDhirr)
                                       .addReg(Idx)
                                       .addReg(Idx)
                                       .addReg(Base)
                                       // Add predicate operands.
                                       .addImm(ARMCC::AL)
                                       .addReg(0));

      unsigned Opc = Is8Bit ? ARM::tLDRBi : ARM::tLDRHi;
      EmitToStreamer(*OutStreamer, MCInstBuilder(Opc)
                                       .addReg(Idx)
                                       .addReg(Idx)
                                       .addImm(Is8Bit ? 4 : 2)
                                       // Add predicate operands.
                                       .addImm(ARMCC::AL)
                                       .addReg(0));
    } else {
      // TBB [base, idx] =
      //    LDRB idx, [base, idx] ; or LDRH if TBH
      //    LSLS idx, #1
      //    ADDS pc, pc, idx

      unsigned Opc = Is8Bit ? ARM::tLDRBr : ARM::tLDRHr;
      EmitToStreamer(*OutStreamer, MCInstBuilder(Opc)
                                       .addReg(Idx)
                                       .addReg(Base)
                                       .addReg(Idx)
                                       // Add predicate operands.
                                       .addImm(ARMCC::AL)
                                       .addReg(0));
    }

    EmitToStreamer(*OutStreamer, MCInstBuilder(ARM::tLSLri)
                                     .addReg(Idx)
                                     .addReg(ARM::CPSR)
                                     .addReg(Idx)
                                     .addImm(1)
                                     // Add predicate operands.
                                     .addImm(ARMCC::AL)
                                     .addReg(0));

    OutStreamer->EmitLabel(GetCPISymbol(MI->getOperand(3).getImm()));
    EmitToStreamer(*OutStreamer, MCInstBuilder(ARM::tADDhirr)
                                     .addReg(ARM::PC)
                                     .addReg(ARM::PC)
                                     .addReg(Idx)
                                     // Add predicate operands.
                                     .addImm(ARMCC::AL)
                                     .addReg(0));
    return;
  }
  case ARM::tBR_JTr:
  case ARM::BR_JTr: {
    // mov pc, target
    MCInst TmpInst;
    unsigned Opc = MI->getOpcode() == ARM::BR_JTr ?
      ARM::MOVr : ARM::tMOVr;
    TmpInst.setOpcode(Opc);
    TmpInst.addOperand(MCOperand::createReg(ARM::PC));
    TmpInst.addOperand(MCOperand::createReg(MI->getOperand(0).getReg()));
    // Add predicate operands.
    TmpInst.addOperand(MCOperand::createImm(ARMCC::AL));
    TmpInst.addOperand(MCOperand::createReg(0));
    // Add 's' bit operand (always reg0 for this)
    if (Opc == ARM::MOVr)
      TmpInst.addOperand(MCOperand::createReg(0));
    EmitToStreamer(*OutStreamer, TmpInst);
    return;


from datetime import date

birthday = date(1992, 10, 6)

print('Название месяца:', birthday.strftime('%B'))
print('Название дня недели:', birthday.strftime('%A'))
print('Год:', birthday.strftime('%Y'))
print('Месяц:', birthday.strftime('%m'))
print('День:', birthday.strftime('%d'))


WebGLLayer"}],"url":"#secondary-view"},
"secondary-view-secondary-views": {"dfnID":"secondary-view-secondary-views","dfnText":"secondary-views","external":false,"refSections":[{"refs":[{"id":"ref-for-secondary-view-secondary-views"},{"id":"ref-for-secondary-view-secondary-views\u2460"},{"id":"ref-for-secondary-view-secondary-views\u2461"}],"title":"7.2. Primary and Secondary Views"}],"url":"#secondary-view-secondary-views"},
"select-an-immersive-xr-device": {"dfnID":"select-an-immersive-xr-device","dfnText":"select an immersive XR device","external":false,"refSections":[{"refs":[{"id":"ref-for-select-an-immersive-xr-device"},{"id":"ref-for-select-an-immersive-xr-device\u2460"}],"title":"3.2. XRSystem"}],"url":"#select-an-immersive-xr-device"},
"sensitive-information": {"dfnID":"sensitive-information","dfnText":"sensitive information","external":false,"refSections":[{"refs":[{"id":"ref-for-sensitive-information"},{"id":"ref-for-sensitive-information\u2460"}],"title":"3.4. Feature Dependencies"},{"refs":[{"id":"ref-for-sensitive-information\u2461"}],"title":"13.2.4. Duration of consent"},{"refs":[{"id":"ref-for-sensitive-information\u2462"}],"title":"13.4.1. Throttling"},{"refs":[{"id":"ref-for-sensitive-information\u2463"}],"title":"13.5. Protected functionality"},{"refs":[{"id":"ref-for-sensitive-information\u2464"},{"id":"ref-for-sensitive-information\u2465"}],"title":"13.5.2. Poses"},{"refs":[{"id":"ref-for-sensitive-information\u2466"},{"id":"ref-for-sensitive-information\u2467"}],"title":"13.5.3. Reference spaces"},{"refs":[{"id":"ref-for-sensitive-information\u2468"}],"title":"13.8. Fingerprinting"}],"url":"#sensitive-information"},
"should-be-rendered": {"dfnID":"should-be-rendered","dfnText":"should be rendered","external":false,"refSections":[{"refs":[{"id":"ref-for-should-be-rendered"}],"title":"4.3. Animation Frames"}],"url":"#should-be-rendered"},
"should-not-initialize-device-tracking": {"dfnID":"should-not-initialize-device-tracking","dfnText":"SHOULD NOT initialize device tracking","external":false,"refSections":[{"refs":[{"id":"ref-for-should-not-initialize-device-tracking"}],"title":"3.2. XRSystem"}],"url":"#should-not-initialize-device-tracking"},
"shut-down-the-session": {"dfnID":"shut-down-the-session","dfnText":"shut down the session","external":false,"refSections":[{"refs":[{"id":"ref-for-shut-down-the-session"}],"title":"1.2. Application flow"},{"refs":[{"id":"ref-for-shut-down-the-session\u2460"}],"title":"3.2. XRSystem"},{"refs":[{"id":"ref-for-shut-down-the-session\u2461"}],"title":"4.1. XRSession"},{"refs":[{"id":"ref-for-shut-down-the-session\u2462"}],"title":"13.3. Mid-session consent"}],"url":"#shut-down-the-session"},
"throttling": {"dfnID":"throttling","dfnText":"Throttling","external":false,"r


JODON, Foster, Jr., 1878-1946, marriage to Cora BROOKS b. 07/16/1877 d. 11/05/1959 [Family]

JODON, Foster, Jr., 1878-1946, birth

JODON, Foster, Jr., 1878-1946, death

JODON, Isabel, 1917-2009, birth

JODON, Isabel, 1917-2009, marriage to Myron REITZ b. 03/09/1914 d. 03/26/1973 [Family]

REITZ, Brian, 1966-, birth

REITZ, Myron, 1914-1973, marriage to Isabel JODON b. 06/16/1917 d. 01/06/2009 [Family]

TIBBENS, Samuel, 1818-1897, death

   <!DOCTYPE HTML PUBLIC
  "-//W3C//DTD HTML 4.01//EN"
  "http://www.w3.org/TR/html4/strict.dtd">
<title>Reitz Family Geneology (Kenneth Robert Reitz) - Lewis JODON b. 07/05/1853 d. 06/29/1917</title> <link rel='stylesheet' type='text/css' media='all' href='gedscape.css'/>

Main Menu · Reitz Family Index · At A Glance · Reitz Births · Reitz Deaths · Marriages · Gallery

Lewis JODON b. 07/05/1853 d. 06/29/19171

Lewis JODON b. 07/05/1853 d. 06/29


     * to be stored in the given parameter.
     * The normal termination of the method is throwing OOM exception, which will be checked
     * by the {@link #checkOOME(OutOfMemoryError)}
     * Not throwing the OOM will be interpreted as test failure.
     * @param garbage a list to store generated garbage
     */
    protected abstract void eatMemory(List<Object> garbage);

    /**
     * Checks the OOME type is expected.
     * Method just exits if OOME is expected and throws an exeption if not.
     * @param oome thrown by {@link #eatMemory(List)}
     */
    protected abstract void checkOOME(OutOfMemoryError oome);
}
/*
 * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

package vm.mlvm.tools;

import java.io.IOException;
import java.io.Writer;
import java.util.Set;
import java.io.File;

import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.Filer;
import javax.annotation.processing.ProcessingEnvironment;
import javax.annotation.processing.RoundEnvironment;
import javax.annotation.processing.SupportedAnnotationTypes;
import javax.annotation.processing.SupportedSourceVersion;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.Element;
import javax.lang.model.element.TypeElement;
import javax.tools.FileObject;
import javax.tools.StandardLocation;

import nsk.share.jdi.sde.SmapGenerator;
import nsk.share.jdi.sde.SmapStratum;
import vm.mlvm.share.Stratum;
import vm.mlvm.tools.StratumAPTreeVisitor.StratumLineInfo;

import com.sun.source.tree.CompilationUnitTree;
import com.sun.source.util.TreePath;
import com.sun.source.util.Trees;

@SupportedAnnotationTypes("vm.mlvm.share.Stratum")
public class StratumAP extends AbstractProcessor {

    public static final String SMAP_EXT = ".smap";
    private boolean verbose = false;

    private Trees trees;
    @Override
    public synchronized void init(ProcessingEnvironment processingEnv) {
        super.init(processingEnv);
        trees = Trees.instance(processingEnv);
        verbose = Boolean.parseBoolean(processingEnv.getOptions().get("verbose"));
    }

    public SourceVersion getSupportedSourceVersion() {
        return SourceVersion.latest();
    }

    @Override
    public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
        if (roundEnv.processingOver()) {
            return true;
        }

        for (Element e : roundEnv.getElementsAnnotatedWith(Stratum.class)) {
            Stratum s = e.getAnnotation(Stratum.class);
            if (s == null) {
                continue;
            }

            TreePath tp = trees.getPath(e);

            StratumAPTreeVisitor visitor = new StratumAPTreeVisitor();
            visitor.scan(tp, trees);

            String stratumName = s.stratumName();
            String stratumSourceFileName = s.stratumSourceFileName();

            SmapStratum st =


en
    });
    let url = `${this.apiUrl}buy`;
    return this.http.post(url, body, {headers}).pipe(map( res =>{
      console.log(res);
      return res;
    }));
  }

  /**
   * Método para evaluar a un usuario, recibe como parámetro el token de sesión, el email del usuario conectado, el id de proyecto, el email del usuario a evaluar y la puntuación que se le va a dar.
   * Se manda al servidor por la ruta /addScore.
   * Si el return devuelve OK se habrá añadido la puntiación al usuario.
   * @param token
   * @param email
   * @param projectId
   * @param userEmail
   * @param score
   */
  evaluateUser( token: any, email: any, projectId: any, userEmail: any, score: any ){
    let data = {
      email: email,
      projectId: projectId,
      userEmail: userEmail,
      score: score
    };
    let body = JSON.stringify(data);
    let headers = new HttpHeaders({
      'Content-Type':'application/json',
      'token': token
    });
    let url = `${this.apiUrl}addScore`;
    return this.http.post(url, body, {headers}).pipe(map( res =>{
      console.log(res);
      return res;
    }));
  }

  /**
   * Método para obtener los archivos del chat, recibe como parámetro el id del chat.
   * Se manda al servidor por la ruta /getDeliveriesById.
   * La respuesta devolverá todos los archivos que sean de ese chat.
   * @param chatId
   */
  getDeliveries(chatId: any){
    let id = chatId;
    let data = {
      id: id
    };
    let headers = new HttpHeaders({
      'Content-Type':'application/json'
    });
    let body = JSON.stringify(data);
    let url = `${this.apiUrl}getDeliveriesById`;
    return this.http.post(url, body, {headers}).pipe(map( res =>{
      console.log(res);
      return res;
    }));
  }

  /**
   * Método para descargar archivos del chat, recibe como parámetro el archivo que se quiere descargar.
   * Se manda al servidor por la ruta /download.
   * Si es correcto se descargara el archivo correspondiente.
   * @param file
   */
  downloadReport(file){
    // Create url
    let url = `${this.apiUrl}download`;
    var body = { filename: file };

    return this.http.post(url, body, {
      responseType: "blob",
      headers: new HttpHeaders().append("Content-Type", "application/json")
    });
  }

  /**
   * Método para descargar archivos de un proyecto, recibe como parámetro el archivo que se quiere descargar.
   * Se manda al servidor por la ruta /downloadFile.
   * Si es correcto se descargara el archivo correspondiente.
   * @param file
   */
  downloadFile(file){
    // Create url
    let url = `${this.apiUrl}downloadFile`;
    var body = { filename: file };

    return this.http.post(url, body, {
      responseType: "blob",
      headers: new HttpHeaders().append("Content-Type", "application/json")
    });
  }

  //--- ADMIN ----

  /**
   * Método para recibir todos los usuarios de la base de datos, recibe como parámetros el token de sesión, el email del usuario, y el tipo de usuario.
   * Se manda al servidor por la ruta /getUsers.
   * Devuelve todos los usuarios de la base de datos


    assertEquals(seq, [1, 2, 3, 4]);
  } finally {
    time.restore();
  }
});

Deno.test("delay with abort", async () => {
  const time: FakeTime = new FakeTime();

  try {
    const seq = [];
    const abort = new AbortController();
    const { signal } = abort;
    const delayedPromise = time.delay(100, { signal });
    seq.push(1);
    await FakeTime.restoreFor(() => {
      setTimeout(() => {
        seq.push(2);
        abort.abort();
      }, 0);
    });
    await assertRejects(
      () => delayedPromise,
      DOMException,
      "Delay was aborted",
    );
    seq.push(3);
    assertEquals(seq, [1, 2, 3]);
  } finally {
    time.restore();
  }
});

Deno.test("runMicrotasks runs all microtasks before resolving", async () => {
  const time: FakeTime = new FakeTime();
  const start: number = Date.now();

  try {
    const seq = [];
    queueMicrotask(() => seq.push(2));
    queueMicrotask(() => seq.push(3));
    seq.push(1);
    await time.runMicrotasks();
    seq.push(4);
    assertEquals(seq, [1, 2, 3, 4]);
    assertEquals(Date.now(), start);
  } finally {
    time.restore();
  }
});

Deno.test("tickAsync runs all microtasks and runs timers if ticks past due", async () => {
  const time: FakeTime = new FakeTime();
  const start: number = Date.now();
  const cb = spy(fromNow());
  const expected: SpyCall[] = [];
  const seq: number[] = [];

  try {
    setTimeout(cb, 1000);
    queueMicrotask(() => seq.push(2));
    queueMicrotask(() => seq.push(3));
    seq.push(1);
    await time.tickAsync(250);
    seq.push(4);
    assertEquals(cb.calls, expected);
    await time.tickAsync(250);
    assertEquals(cb.calls, expected);
    queueMicrotask(() => seq.push(6));
    seq.push(5);
    await time.tickAsync(500);
    seq.push(7);
    expected.push({ args: [], returned: 1000 });
    assertEquals(cb.calls, expected);
    assertEquals(Date.now(), start + 1000);
    assertEquals(seq, [1, 2, 3, 4, 5, 6, 7]);
  } finally {
    time.restore();
  }
});

Deno.test("runNext runs next timer without running microtasks", async () => {
  const time: FakeTime = new FakeTime();
  const start: number = Date.now();
  const cb = spy(fromNow());
  const seq: number[] = [];

  try {
    setTimeout(cb, 1000);
    queueMicrotask(() => seq.push(3));
    queueMicrotask(() => seq.push(4));
    seq.push(1);
    time.next();
    seq.push(2);
    const expectedCalls = [{ args: [] as [], returned: 1000 }];
    assertEquals(cb.calls, expectedCalls);
    assertEquals(Date.now(), start + 1000);
    await time.runMicrotasks();

    queueMicrotask(() => seq.push(7));
    queueMicrotask(() => seq.push(8));
    seq.push(5);
    time.next();
    seq.push(6);
    await time.runMicrotasks();

    assertEquals(cb.calls, expectedCalls);
    assertEquals(Date.now(), start + 1000);
    assertEquals(seq, [1, 2, 3, 4, 5, 6, 7, 8]);
  } finally {
    time.restore();
  }
});

Deno.test("runNextAsync runs all microtasks and next timer", async () => {
  const time: FakeTime = new FakeTime()


buffer in the \p len parameter. If non-null
 * the number of bytes read from the buffer will be returned in \p n_read.
 *
 * @param buf Wire representation of the sbp_msg_ed25519_signature_dep_b_t
 * instance
 * @param len Length of \p buf
 * @param n_read If not null, on success will be set to the number of bytes read
 * from \p buf
 * @param msg Destination
 * @return SBP_OK on success, or other libsbp error code
 */
SBP_EXPORT s8 sbp_msg_ed25519_signature_dep_b_decode(
    const uint8_t *buf, uint8_t len, uint8_t *n_read,
    sbp_msg_ed25519_signature_dep_b_t *msg);
/**
 * Send an instance of sbp_msg_ed25519_signature_dep_b_t with the given write
 * function
 *
 * An equivalent of #sbp_message_send which operates specifically on
 * sbp_msg_ed25519_signature_dep_b_t
 *
 * The given message will be encoded to wire representation and passed in to the
 * given write function callback. The write callback will be called several
 * times for each invocation of this function.
 *
 * @param s SBP state
 * @param sender_id SBP sender id
 * @param msg Message to send
 * @param write Write function
 * @return SBP_OK on success, or other libsbp error code
 */
SBP_EXPORT s8 sbp_msg_ed25519_signature_dep_b_send(
    sbp_state_t *s, u16 sender_id, const sbp_msg_ed25519_signature_dep_b_t *msg,
    sbp_write_fn_t write);

/**
 * Compare two instances of sbp_msg_ed25519_signature_dep_b_t
 *
 * The two instances will be compared and a value returned consistent with the
 * return codes of comparison functions from the C standard library
 *
 * 0 will be returned if \p a and \p b are considered equal
 * A value less than 0 will be returned if \p a is considered to be less than \p
 * b A value greater than 0 will be returned if \p b is considered to be greater
 * than \p b
 *
 * @param a sbp_msg_ed25519_signature_dep_b_t instance
 * @param b sbp_msg_ed25519_signature_dep_b_t instance
 * @return 0, <0, >0
 */
SBP_EXPORT int sbp_msg_ed25519_signature_dep_b_cmp(
    const sbp_msg_ed25519_signature_dep_b_t *a,
    const sbp_msg_ed25519_signature_dep_b_t *b);

#ifdef __cplusplus
}

static inline bool operator==(const sbp_msg_ed25519_signature_dep_b_t &lhs,
                              const sbp_msg_ed25519_signature_dep_b_t &rhs) {
  return sbp_msg_ed25519_signature_dep_b_cmp(&lhs, &rhs) == 0;
}

static inline bool operator!=(const sbp_msg_ed25519_signature_dep_b_t &lhs,
                              const sbp_msg_ed25519_signature_dep_b_t &rhs) {
  return sbp_msg_ed25519_signature_dep_b_cmp(&lhs, &rhs) != 0;
}

static inline bool operator<(const sbp_msg_ed25519_signature_dep_b_t &lhs,
                             const sbp_msg_ed25519_signature_dep_b_t &rhs) {
  return sbp_msg_ed25519_signature_dep_b_cmp(&lhs, &rhs) < 0;
}

static inline bool operator<=(const sbp_msg_ed25519_signature_dep_b_t &lhs,
                              const sbp_msg_ed25519_signature_dep_b_t &rhs) {
  return sbp_msg_ed25519_signature_dep_b_cmp(&lhs, &rhs) <= 0;
}

static inline bool operator>(const sbp_msg_ed25519_signature_dep_b_t &lhs,
                             const sbp_msg_ed25519_signature_dep_b_t &rhs) {
  return sbp_msg_ed25519_signature_dep_b_cmp(&lhs, &rhs) > 0;
}

static inline bool operator>=(const sbp_msg_ed25519_signature_dep_b_t &lhs,
                              const sbp_msg_ed25519_signature_dep_b_t &rhs) {
  return sbp_msg_ed25519_signature_dep_b_cmp(&lhs, &rhs) >= 0;
}

#endif  // ifdef __cplusplus

#endif /* LIBSBP_SIGNING_MSG_ED25519_SIGNATURE_DEP_B_H */


second
      third
      forth

<!DOCTYPE html>
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-base-size">
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
<meta name="flags" content="" />
<meta name="assert" content="A flex container's block cross size of fit-content is treated as indefinite when setting fit-content on an item for flex base sizing">

Test passes if there is a filled green square.

<x-flexbox>

</x-flexbox>
<!DOCTYPE html PUBLIC "-//W3C//DTD//XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

        <title>CSS Test: A flex container with the 'align-items' property set to 'flex-end'</title>
        <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
        <link rel="match" href="reference/align-content-001-ref.html" />
        <meta name="flags" content="">
        <meta name="assert" content="This test checks that the flex container with 'align-items: flex-end' places each flex item's margin box flush with the cross-end edge of line." />

Test passes if there is no red visible on the page.

<!DOCTYPE html>
<link rel="author" title="Google LLC" href="http://www.google.com" />
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#cross-sizing" />
<title>css-flexbox: Tests that we size items in a wrapping


local ubus = require "ubus"
local iwinfo = require "iwinfo"

local function scrape()
  local metric_wifi_network_quality = metric("wifi_network_quality","gauge")
  local metric_wifi_network_bitrate = metric("wifi_network_bitrate","gauge")
  local metric_wifi_network_noise = metric("wifi_network_noise_dbm","gauge")
  local metric_wifi_network_signal = metric("wifi_network_signal_dbm","gauge")

  local u = ubus.connect()
  local status = u:call("network.wireless", "status", {})

  for dev, dev_table in pairs(status) do
    for _, intf in ipairs(dev_table['interfaces']) do
      local ifname = intf['ifname']
      if ifname ~= nil then
        local iw = iwinfo[iwinfo.type(ifname)]
        local labels = {
          channel = iw.channel(ifname),
          ssid =