"],
    download: {
      spn: { file: "afx_reverse_delay.spn" }
    },
    source_url: "https://github.com/igorpie/Spin-FV-1/blob/master/afx_reverse_delay.spn",
  },
  {
    name: "Aliaser",
    author: "Frank Thomson, OCT Distribution",
    categories: ["Aliaser"],
    controls: ["Sample rate", "-", "-"],
    download: {
      spn: { file: "aliaser.spn" }
    },
    source_url: "http://www.spinsemi.com/forum/viewtopic.php?f=4&t=262&p=1116&hilit=aliaser#top",
  },
  {
    name: "Bit crusher",
    author: "Frank Thomson",
    categories: ["Bitcrusher"],
    download: {
      spn: { file: "crusher.spn" }
    },
    source_url: "http://www.spinsemi.com/forum/viewtopic.php?f=4&t=343",
    commentary: [
      {
        written_by: "Mark S.",
        comments: { text: "Definitely does as advertised. I could see this having a special place on somebody's pedal board, but it's niche for sure." },
      },
    ],
  },
  {
    name: "Hall - modified",
    categories: ["Reverb"],
    download: {
      spn: { file: "hall_goldmine.spn" }
    },
    controls: [ "Damping", "Level", "Time" ],
    commentary: [
      {
        written_by: "potul",
        comments: { text: `I think it was posted by Ice-9 in this topic, but I couldn't find it. https://www.diystompboxes.com/smfforum/index.php?topic=104291` }
      },
      {
        written_by: "Mark S.",
        comments: { text: "This sounds good. Unless I did something wrong, though, its controls are very subtle. Admittedly I didn't spend much time with this, though.", },
      }
    ],
  },
  {
    name: "LFSR",
    author: "Frank Thomson, OCT Distribution",
    categories: ["Code snippet"],
    download: {
      spn: { file: "lfsr_random.spn" }
    },
    source_url: "http://www.spinsemi.com/forum/viewtopic.php?f=4&t=245&p=1301",
    application: "Code snippet",
  },
  {
    name: "Multi program pitch shifter",
    author: "patb",
    description: "Inspired by commercial pedals. It has 6 programs, selectable by pot0",
    categories: ["Pitch"],
    controls: ["Program select", "Cross fade", "Wet / dry mix"],
    download: {
      spn: { file: "multipitch.spn" }
    },
    commentary: [
      {
        written_by: "patb",
        comments: { text: `Its got 6 programs, selectable by pot0.
the first 4 are dual shifts, that is 3 note harmonies.
Crossfade the 2 shifts with pot1, and crossfade effect and dry with pot2.

Fifth program is a single manual shift, with +/- 1 octave by pot1.
This one is alot of fun with a microphone.

Sixth is a detune chorus, with shift set by pot1.
This one sounds very nice.  Laughing

;pot0 6 program select, select one of 4 dual pitch shifts, manual pitch shift or detune chorus
;pot1 dual shift crossfade or single pitch
;pot2 crossfade between dry and shifts
`}
      }
    ],
  },
  {
    name: "Reverse delay",
    author: "Knut Helle",
    categories: ["Delay"],
    controls: ["Length", "-", "-"],
    download: {
      spn: { file: "reverse_delay.spn" }
    },
  },
  {
    name: "S


n_restore.addEventListener('click', e => {
        (document.activeElement as HTMLButtonElement).blur();
        const window = remote.getCurrentWindow()
        if(window.isMaximized()){
            window.unmaximize()
        } else {
            window.maximize()
        }
    });

    titleBarButton_minimize.addEventListener('click', e => {
        (document.activeElement as HTMLButtonElement).blur();
        const window = remote.getCurrentWindow()
        window.minimize()
    });

    document.querySelectorAll("progress").forEach(bar => {
        const label = document.querySelector(`.label span[data-for=${bar.id}][data-type=progress]`) as HTMLLabelElement;
        setInterval(() => {
            if(Math.random() > 0.5)
            {
                bar.value++;
                if(bar.value >= bar.max)
                    bar.value = 0;
            }
            label.innerHTML = `${bar.value} / ${bar.max}`;
        }, 30);
    });

    document.querySelectorAll(".content-container").forEach(c => {
        c.classList.add("hidden");
    });
    document.querySelector(".content-container:first-child")!.classList.remove("hidden");

    btnOptions.addEventListener("click", () => showContainer("#options"));
    btnOptionsDone.addEventListener("click", () => showContainer("#overview"));
}/// <reference path="enginecore.d.ts" />
namespace Fisp {
    export class CustomMesh {
        mMesh: EngineCore.Mesh;
        mData: EngineCore.VertexData;

        constructor(name: string, engine: IEngine) {
            this.mMesh = engine.createMesh(name);
            this.mData = new EngineCore.VertexData();
        }

        setVertexData(pos: number[] | Float32Array, nor: number[] | Float32Array, clr: number[] | Float32Array, uv: number[] | Float32Array, uv2?: number[] | Float32Array, bone?: number[] | Float32Array, weight?: number[] | Float32Array) {
            if (null == pos)
                return;
            //this.mData.positions = pos;
            //this.mData.normals = nor || null;
            //this.mData.colors = clr || null;
            //this.mData.uvs = uv || null;
            //this.mData.uvs2 = uv2 || null;
            //this.mData.matricesIndices = bone || null;
            //this.mData.matricesWeights = weight || null;

            this.mMesh.setVerticesData(EngineCore.VertexBuffer.PositionKind, pos, true);
            if(nor)
                this.mMesh.setVerticesData(EngineCore.VertexBuffer.NormalKind, nor, true);
            if (clr)
                this.mMesh.setVerticesData(EngineCore.VertexBuffer.ColorKind, clr, true);
            if (uv)
                this.mMesh.setVerticesData(EngineCore.VertexBuffer.UVKind, uv, true);
            if (uv2)
                this.mMesh.setVerticesData(EngineCore.VertexBuffer.UV2Kind, uv2, true);
            if (bone)
                this.mMesh.setVerticesData(EngineCore.VertexBuffer.MatricesIndicesKind, bone, true);
            if (weight)
                this.mMesh.setVerticesData(EngineCore.VertexBuffer.MatricesWeightsKind, weight, true);
        }

        setIndexData(index: number[] | Int32Array) {
            //this.mData.indices = index;
            if (index)
                this.mMesh.setIndices(index);

        }

        updatePos(func: (posArray: number[])=>void) {
            this.mMesh.updateMeshPositions(func || this.updatePosFunc, true);
        }

        updatePosFunc(posArray: number[]) {


 esa letra en la palabra. Si falla, se resta
    *     uno al número de intentos
    *   - Si escribe una resolución y acierta, finaliza el juego, en caso contrario, se resta uno
    *     al número de intentos
    *   - Si el contador de intentos llega a 0, el jugador pierde
    * - La palabra debe ocultar de forma aleatoria letras, y nunca puede comenzar ocultando más del 60%
    * - Puedes utilizar las palabras que quieras y el número de intentos que consideres
    *
    */

    val juego = Ahorcado()
    juego.inicio()

}

class Ahorcado(
    var intentos: Int = 3
) {

    fun inicio() {

        val palabraClaro = getPalabra()
        var palabraOfuscada = ofuscarPalabra(palabraClaro)

        //var palabraClaro = palabra.toCharArray()
        val workingPalabraOfuscada = palabraOfuscada.toCharArray()

        while (intentos > 0) {
            println(palabraOfuscada)
            println("Tienes ${intentos} intentos. Puedes intentar averiguar una letra o poner la palabra ")

            print(">")
            val texto = readLine()!!
            if (texto.length == 1) {
                palabraClaro.forEachIndexed() { i, letra ->
                    if ((texto == letra.toString())
                        && (workingPalabraOfuscada[i] == '_')
                    ) {
                        workingPalabraOfuscada[i] = letra
                        palabraOfuscada = String(workingPalabraOfuscada)
                        intentos++
                    }
                }
                intentos--

            } else if (texto.length == palabraClaro.length) {
                if (palabraClaro == texto) {
                    palabraOfuscada = palabraClaro

                } else {
                    intentos--

                }

            } else {
                println("Entrada erronea")

            }

            if (palabraOfuscada == palabraClaro) {
                intentos = 0
            }
        }

        if (palabraClaro == palabraOfuscada) {
            println("¡¡¡ ENHORABUENA !!! has hacertado la palabra ${palabraClaro} ")
        } else {
            println("HAS FALLADO :(, la palabra era ${palabraClaro}")
        }

    }

    fun getPalabra(): String {
        val listaPalabras = listOf<String>(
            "volumen", "estallido", "alterar", "signos", "abollar", "muebles",
            "orilla", "ejemplo", "empatar", "claustrofobia", "tinto", "paella",
            "acercar", "diamante", "cuchara", "cucaracha", "fiscal", "trigal",
            "azulejo"
        )
        return listaPalabras[(0 until listaPalabras.count()).random()]

    }

    fun ofuscarPalabra(palabra: String): String {
        val palabraOfosucada = palabra.toCharArray()
        var numLetrasOfosucar = (palabra.length * .60).roundToInt() - 1
        while (numLetrasOfosucar >


 builds.OldestFailure()

		err := c.Client.KpackV1alpha2().Builds(image.Namespace).Delete(ctx, oldestFailedBuild.Name, metav1.DeleteOptions{})
		if err != nil {
			return fmt.Errorf("failed deleting failed build: %s", err)
		}
	}

	if builds.NumberSuccessfulBuilds() > *image.Spec.SuccessBuildHistoryLimit {
		oldestSuccess := builds.OldestSuccess()

		err := c.Client.KpackV1alpha2().Builds(image.Namespace).Delete(ctx, oldestSuccess.Name, metav1.DeleteOptions{})
		if err != nil {
			return fmt.Errorf("failed deleting successful build: %s", err)
		}
	}

	return nil
}

func (c *Reconciler) fetchAllBuilds(image *buildapi.Image) (buildList, error) {
	imageNameReq, err := labels.NewRequirement(buildapi.ImageLabel, selection.DoubleEquals, []string{image.Name})
	if err != nil {
		return buildList{}, fmt.Errorf("image name requirement: %s", err)
	}

	add := labels.NewSelector().Add(*imageNameReq)
	builds, err := c.BuildLister.Builds(image.Namespace).List(add)
	if err != nil {
		return buildList{}, fmt.Errorf("list builds: %s", err)
	}

	return newBuildList(builds)
}

func (c *Reconciler) fetchLastBuild(image *buildapi.Image) (*buildapi.Build, error) {
	builds, err := c.fetchAllBuilds(image)
	if err != nil {
		return nil, err
	}
	return builds.lastBuild, nil
}

func (c *Reconciler) updateStatus(ctx context.Context, desired *buildapi.Image) error {
	desired.Status.ObservedGeneration = desired.Generation
	original, err := c.ImageLister.Images(desired.Namespace).Get(desired.Name)
	if err != nil {
		return err
	}

	if equality.Semantic.DeepEqual(original.Status, desired.Status) {
		return nil
	}

	_, err = c.Client.KpackV1alpha2().Images(desired.Namespace).UpdateStatus(ctx, desired, metav1.UpdateOptions{})
	return err
}

func sourceResolversEqual(desiredSourceResolver *buildapi.SourceResolver, sourceResolver *buildapi.SourceResolver) bool {
	return equality.Semantic.DeepEqual(desiredSourceResolver.Spec, sourceResolver.Spec) &&
		equality.Semantic.DeepEqual(desiredSourceResolver.Labels, sourceResolver.Labels)
}

func buildCacheEqual(desiredBuildCache *corev1.PersistentVolumeClaim, buildCache *corev1.PersistentVolumeClaim) bool {
	return equality.Semantic.DeepEqual(desiredBuildCache.Spec.Resources, buildCache.Spec.Resources) &&
		equality.Semantic.DeepEqual(desiredBuildCache.Labels, buildCache.Labels)
}

func reconcilerKeyForBuilderKind(image *buildapi.Image) reconciler.Key {
	switch image.Spec.Builder.Kind {
	case buildapi.ClusterBuilderKind:
		return reconciler.Key{
			NamespacedName: types.NamespacedName{
				Name: image.Spec.Builder.Name,
			},
			GroupKind: schema.GroupKind{
				Group: "kpack.io",
				Kind:  buildapi.ClusterBuilderKind,
			},
		}
	case buildapi.BuilderKind:
		return reconciler.Key{
			NamespacedName: types.NamespacedName{
				Name:      image.Spec.Builder.Name,
				Namespace: image.Namespace,
			},
			GroupKind: schema.GroupKind{
				Group: "kpack.io",
				Kind:


using System;
using System.Collections.Generic;
using System.Drawing;
using DotFeather;
using MeltySynth;

class MidiExampleScene : Scene
{
    private AudioPlayer audioPlayer;
    private MidiAudioStream audioStream;

    public MidiExampleScene()
    {
        audioPlayer = new AudioPlayer();
        audioStream = new MidiAudioStream("TimGM6mb.sf2");

        // Load the MIDI file.
        var midiFile = new MidiFile(@"C:\Windows\Media\flourish.mid");

        // Play the MIDI file.
        audioStream.Play(midiFile, true);
    }

    public override void O


ł się z rogami innych prostokątów, aby nie pomylić naszego obiektu okna, co może wymagać od nas ponownego wykonania całej serii komponentów, jeśli zmieni się kolejność pętli.

Możemy zatem związać ten nowy prostokąt 0,05 cala wewnątrz obwodu. Będzie to wymagało umieszczenia 4 nowych wiązań.

Następnie możemy ponownie edytować nasze okno i dodać nowe komponenty. Widzimy, że znaleziono nowy przewód. Tym razem użyjemy go do dodania panelu z poliwęglanu o grubości {{Value|8 mm}} *(należy pamiętać, że we FreeCAD można bez problemu mieszać jednostki i zapisywać {{Value|8 mm}} jako grubość, nawet jeśli pracujemy w calach)*. Nadamy mu również przesunięcie o 0,05 cala, aby był nieco przesunięty względem ramy, tylko dla zachowania spójności, ponieważ wszystkie części naszego obiektu mają takie przesunięcie między sobą.

![](images/Arch_panel_tutorial_15.jpg )

Możemy teraz utworzyć kolejny komponent w oparciu o tę samą polilinię, aby umieścić kolejny panel na górze naszej ramy. Tym razem nadamy mu odsunięcie 6,05 cala. Nasz panel jest wreszcie gotowy:

![](images/Arch_panel_tutorial_16.jpg )

### 13. Przekształć okno w inny typ komponentu środowiska Architektura

W tej chwili nie jest to naprawdę konieczne, ale może stać się ważne później, gdy będziemy eksportować lub pracować w innych aplikacjach zorientowanych na konstrukcję, na przykład za pośrednictwem IFC, nie chcemy, aby nasz panel był identyfikowany jako okno.

Środowisko pracy Architektura FreeCAD zapewnia łatwy sposób radzenia sobie z tym, polegający na tym, że każdy typ obiektu może zawsze stać się innym, będąc podstawą innego typu. W tym przypadku zmieńmy nasze okno w obiekt Panel, po prostu wybierając okno i naciskając narzędzie **Panel**.

![](images/Arch_panel_tutorial_17.jpg )

Zauważ, że kolor wynikowego panelu zmienił się, ponieważ obsługa materiałów w FreeCAD i module Architektura jest nadal niekompletna. Kiedy zostanie ukończony, będzie to poprawnie obsługiwane.

### 14. Powielanie panelu

Nasz panel można następnie powielić i skopiować na kilka sposobów, na przykład za pomocą funkcji kopiuj / wklej. Ale bardziej interesującym sposobem jest użycie narzędzia Klon środowiska Rysunek roboczy *(obecnego również w środowisku pracy Architektury, podobnie jak wszystkie inne narzędzia Rysunku


509Certificate createSelfSignedCertificate(KeyPair keyPair) throws CertIOException, OperatorCreationException, CertificateException {

        long serial = System.currentTimeMillis();
        SubjectPublicKeyInfo keyInfo = SubjectPublicKeyInfo.getInstance(keyPair.getPublic().getEncoded());
        X500Name name = new X500Name(createX500NameString());
        X509v3CertificateBuilder certBuilder = new X509v3CertificateBuilder(name,
                                                                            BigInteger.valueOf(serial),
                                                                            new Date(System.currentTimeMillis() - 1000000000),
                                                                            new Date(System.currentTimeMillis() + 1000000000),
                                                                            name,
                                                                            keyInfo
                                                                            );
        certBuilder.addExtension(Extension.basicConstraints, true, new BasicConstraints(true));
        certBuilder.addExtension(Extension.keyUsage,         true, new KeyUsage(KeyUsage.digitalSignature | KeyUsage.keyEncipherment));
        certBuilder.addExtension(Extension.extendedKeyUsage, true, new ExtendedKeyUsage(KeyPurposeId.id_kp_clientAuth));

        JcaContentSignerBuilder csBuilder = new JcaContentSignerBuilder("SHA256withRSA");
        ContentSigner signer = csBuilder.build(keyPair.getPrivate());
        X509CertificateHolder certHolder = certBuilder.build(signer);

        return new JcaX509CertificateConverter().getCertificate(certHolder);
    }
}
/**
 * Copyright (C) 2004-2011 Jive Software. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.jivesoftware.sparkimpl.profile;

import org.jivesoftware.resource.Res;
import org.jivesoftware.spark.util.ResourceUtils;

import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class PersonalPanel extends JPanel {

    private static final long serialVersionUID = 8348926698365178921L;
    private final JTextField firstNameField;
    private final JTextField middleNameField;
    private final JTextField lastNameField;
    private final JTextField nicknameField;
    private final JTextField emailAddressField;
    private final JTextField jidField;
    private final JLabel jidLabel = new JLabel();

    public PersonalPanel() {
        setLayout(new GridBagLayout());

        // Handle First Name
        JLabel firstNameLabel = new JLabel();
        firstNameField = new JTextField();
        ResourceUtils.resLabel(firstNameLabel, firstNameField, Res.getString("label.first.name") + ":");

        add(firstNameLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
        add(firstNameFiel


sw      ra, 0(sp)		# salva ra
		mv 	t0, a0			# Inteiro de 32 bits a ser impresso em Hexa
		la 	t1, TabelaHexASCII	# endereco da tabela HEX->ASCII
		la 	t2, TempBuffer		# onde a string sera montada

		li 	t3,'0'			# Caractere '0'
		sb 	t3,0(t2)		# Escreve '0' no Buffer da String
		li 	t3,'x'			# Caractere 'x'
		sb 	t3,1(t2)		# Escreve 'x' no Buffer da String
		addi 	t2,t2,2			# novo endereco inicial da string

		li 	t3, 28			# contador de nibble   inicio = 28
loopprintHex:	blt 	t3, zero, fimloopprintHex	# terminou? t3<0?
		srl 	t4, t0, t3		# desloca o nibble para direita
		andi 	t4, t4, 0x000F		# mascara o nibble
		add 	t4, t1, t4		# endereco do ascii do nibble
		lb 	t4, 0(t4)		# le ascii do nibble
		sb 	t4, 0(t2)		# armazena o ascii do nibble no buffer da string
		addi 	t2, t2, 1		# incrementa o endereco do buffer
		addi 	t3, t3, -4		# decrementa o numero do nibble
		j 	loopprintHex

fimloopprintHex: sb 	zero,0(t2)		# grava \null na string
		la 	a0, TempBuffer		# Argumento do print String
    		jal	printString		# Chama o print string

		lw 	ra, 0(sp)		# recupera ra
		addi 	sp, sp, 4		# libera espaco
fimprintHex:	ret				# retorna

#####################################
#  PrintSring                       #
#  a0    =  endereco da string      #
#  a1    =  x                       #
#  a2    =  y                       #
#  a3    =  cor		    	    #
#####################################

printString:	addi	sp, sp, -8			# aloca espaco
    		sw	ra, 0(sp)			# salva ra
    		sw	s0, 4(sp)			# salva s0
    		mv	s0, a0              		# s0 = endereco do caractere na string

loopprintString:lb	a0, 0(s0)                 	# le em a0 o caracter a ser impresso

    		beq     a0, zero, fimloopprintString	# string ASCIIZ termina com NULL

    		jal     printChar       		# imprime char

		addi    a1, a1, 8                 	# incrementa a coluna
		li 	t6, 313
		blt	a1, t6, NaoPulaLinha	    	# se ainda tiver lugar na linha
    		addi    a2, a2, 8                 	# incrementa a linha
    		mv    	a1, zero			# volta a coluna zero

NaoPulaLinha:	addi    s0, s0, 1			# proximo caractere
    		j       loopprintString       		# volta ao loop

fimloopprintString:	lw      ra, 0(sp)    		# recupera ra
			lw 	s0, 0(sp)		# recupera s0 original
    			addi    sp, sp, 8		# libera espaco
fimprintString:	ret      	    			# retorna

#########################################################
#  PrintChar                                            #
#  a0 = char(ASCII)                                     #
#  a1 = x


 "RootBinaries"

    // Same (and a bit extended) list as the Go version
    private val targets = listOf(
        "su",
        "busybox",
        "supersu",
        "Superuser.apk",
        "KingoUser.apk",
        "SuperSu.apk",
        "magisk",
        "magiskhide",
        "magiskinit",
        "magiskpolicy"
    )

    override fun run(
        context: Context,
        manager: AbsAdbConnectionManager,
        outDir: File,
        progress: ((Long) -> Unit)?
    ) {
        if (!outDir.exists()) outDir.mkdirs()

        // Shell output bytes aren't meaningful progress here; keep null.
        val shell = Shell(manager, tag = "ShellQF", progress = null)

        val found = mutableListOf<String>()
        for (bin in targets) {
            val script = """
                # Expand PATH to include common root locations
                PATH="${'$'}PATH:/system/bin:/system/xbin:/sbin:/su/bin:/vendor/bin"
                # If command -v finds it, enumerate all matches along PATH; else try which -a
                if command -v $bin >/dev/null 2>&1; then
                  IFS=:; for d in ${'$'}PATH; do
                    [ -x "${'$'}d/$bin" ] && printf "%s\n" "${'$'}d/$bin"
                  done
                else
                  which -a $bin 2>/dev/null || true
                fi
            """.trimIndent()

            val out = shell.exec(script).trim()
            if (out.isNotEmpty() && !out.contains("not found", ignoreCase = true)) {
                out.lineSequence()
                    .map { it.trim() }
                    .filter { it.startsWith("/") }
                    .forEach { found.add(it) }
            }
        }

        val unique = found.distinct()
        Log.i(TAG, "Found ${unique.size} root-related binaries")
        val json = JSONArray()
        unique.forEach { json.put(it) }

        File(outDir, "root_binaries.json").writeText(json.toString(1))
    }
}
/*
 * Copyright (C) 2017 The ORT Project Authors (see <https://github.com/oss-review-toolkit/ort/blob/main/NOTICE>)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://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.
 *
 * SPDX-License-Identifier: Apache-2.0
 * License-Filename: LICENSE
 */

import dev.aga.gradle.versioncatalogs.Generator.generate
import dev.aga.gradle.versioncatalogs.GeneratorConfig

// Enable type-safe project accessors, see:
// https://docs.gradle.org/current/userguide/declaring_dependencies.html#sec:type-safe-project-accessors
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")

rootProject.name = "oss-review-toolkit"

include(":advisor")
include(":analyzer")
include(":cli")
include(":cli-helper")
include(":cli-test-launcher")
include(":clients:bazel-module-registry")
include(":clients:clearly-defined")
include(":clients:dos")
include(":clients:foojay")
include(":clients:fossid-webapp")
include(":clients:oss-index")
include(":clients:osv")
include(":clients:v


// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * net/sched/em_text.c	Textsearch ematch
 *
 * Authors:	Thomas Graf <tgraf@suug.ch>
 */

#include <linux/slab.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/skbuff.h>
#include <linux/textsearch.h>
#include <linux/tc_ematch/tc_em_text.h>
#include <net/pkt_cls.h>

struct text_match {
	u16			from_offset;
	u16			to_offset;
	u8			from_layer;
	u8			to_layer;
	struct ts_config	*config;
};

#define EM_TEXT_PRIV(m) ((struct text_match *) (m)->data)

static int em_text_match(struct sk_buff *skb, struct tcf_ematch *m,
			 struct tcf_pkt_info *info)
{
	struct text_match *tm = EM_TEXT_PRIV(m);
	int from, to;

	from = tcf_get_base_ptr(skb, tm->from_layer) - skb->data;
	from += tm->from_offset;

	to = tcf_get_base_ptr(skb, tm->to_layer) - skb->data;
	to += tm->to_offset;

	return skb_find_text(skb, from, to, tm->config) != UINT_MAX;
}

static int em_text_change(struct net *net, void *data, int len,
			  struct tcf_ematch *m)
{
	struct text_match *tm;
	struct tcf_em_text *conf = data;
	struct ts_config *ts_conf;
	int flags = 0;

	if (len < sizeof(*conf) || len < (sizeof(*conf) + conf->pattern_len))
		return -EINVAL;

	if (conf->from_layer > conf->to_layer)
		return -EINVAL;

	if (conf->from_layer == conf->to_layer &&
	    conf->from_offset > conf->to_offset)
		return -EINVAL;

retry:
	ts_conf = textsearch_prepare(conf->algo, (u8 *) conf + sizeof(*conf),
				     conf->pattern_len, GFP_KERNEL, flags);

	if (flags & TS_AUTOLOAD)
		rtnl_lock();

	if (IS_ERR(ts_conf)) {
		if (PTR_ERR(ts_conf) == -ENOENT && !(flags & TS_AUTOLOAD)) {
			rtnl_unlock();
			flags |= TS_AUTOLOAD;
			goto retry;
		} else
			return PTR_ERR(ts_conf);
	} else if (flags & TS_AUTOLOAD) {
		textsearch_destroy(ts_conf);
		return -EAGAIN;
	}

	tm = kmalloc(sizeof(*tm), GFP_KERNEL);
	if (tm == NULL) {
		textsearch_destroy(ts_conf);
		return -ENOBUFS;
	}

	tm->from_offset = conf->from_offset;
	tm->to_offset   = conf->to_offset;
	tm->from_layer  = conf->from_layer;
	tm->to_layer    = conf->to_layer;
	tm->config      = ts_conf;

	m->datalen = sizeof(*tm);
	m->data = (unsigned long) tm;

	return 0;
}

static void em_text_destroy(struct tcf_ematch *m)
{
	if (EM_TEXT_PRIV(m) && EM_TEXT_PRIV(m)->config) {
		textsearch_destroy(EM_TEXT_PRIV(m)->config);
		kfree(EM_TEXT_PRIV(m));
	}
}

static int em_text_dump(struct sk_buff *skb, struct tcf_ematch *m)
{
	struct text_match *tm = EM_TEXT_PRIV(m);
	struct tcf_em_text conf;

	strncpy(conf.algo, tm->config->ops->name, sizeof(conf.algo) - 1);
	conf.from_offset = tm->from_offset;
	conf.to_offset = tm->to_offset;
	conf.from_layer = tm->from_layer;
	conf.to_layer = tm->to_layer;
	conf.pattern_len = textsearch_get_pattern_len(tm->config);
	conf.pad = 0;

	if (nla_put_nohdr(skb, sizeof(conf), &conf) < 0)
		goto nla_put_failure;
	if (nla_append(skb, conf.pattern_len,
		       textsearch_get_pattern(tm->config)) < 0)
		goto nla_put_failure;
	return 0;

nla_put_failure:
	return -1;
}

static struct tcf_ematch_ops em_text_ops = {
	.kind	  = TCF_EM_TEXT,
	.change	  = em_text_change,
	.match	  = em_text_match,
	.destroy  = em_text_destroy,
	.dump	  = em_text_dump,
	.owner	  = THIS_MODULE,
	.link	  = LIST_HEAD_INIT(em_text_ops.link)
};

static int __init init_em_text(void)
{
	return tcf_em_register(&em_text_ops);
}

static void __exit exit_em_text(void)
{
	tcf_em_unregister(&em_text_ops);
}

MODULE_LICENSE("GPL");

module_init(init_em_text);
module_exit(exit_em_text);

MODULE_ALIAS_TCF_EMATCH(TCF_EM_TEXT);


0IHlvdSBzZW5kIGNhdXNlcyB5b3VyIHRyYW5zYWN0aW9uIHRvIGZhaWwuCiAgICAvLyBTdGF0ZSBjaGFuZ2VzIGFyZSB1bmRvbmUuCiAgICAvLyBHYXMgc3BlbnQgYXJlIG5vdCByZWZ1bmRlZC4KICAgIGZ1bmN0aW9uIGZvcmV2ZXIoKSBwdWJsaWMgewogICAgICAgIC8vIEhlcmUgd2UgcnVuIGEgbG9vcCB1bnRpbCBhbGwgb2YgdGhlIGdhcyBhcmUgc3BlbnQKICAgICAgICAvLyBhbmQgdGhlIHRyYW5zYWN0aW9uIGZhaWxzCiAgICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgICAgaSArPSAxOwogICAgICAgIH0KICAgIH0KfQo=",
    },
]

const html = `
How much ether do you need to pay for a transaction?

You pay gas spent * gas price amount of ether, where

gas is a unit of computation

gas spent is the total amount of gas used in a transaction

gas price is how much ether you are willing to pay per gas

Transactions with higher gas price have higher priority to be included in a block.

Unspent gas will be refunded.

Gas Limit

There are 2 upper bounds to the amount of gas you can spend

gas limit (max amount of gas you're willing to use for your transaction, set by you)

block gas limit (max amount of gas allowed in a block, set by the network)

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

contract Gas {
    uint public i = 0;

    // Using up all of the gas that you send causes your transaction to fail.
    // State changes are undone.
    // Gas spent are not refunded.
    function forever() public {
        // Here we run a loop until all of the gas are spent
        // and the transaction fails
        while (true) {
            i += 1;
        }
    }
}

`

export default html
import { serializeKeyEvents } from "@qawolf/browser";
import { logger } from "@qawolf/logger";
import {
  DocSelector,
  ElementEvent,
  KeyEvent,
  PasteEvent,
  Step
} from "@qawolf/types";
import { isKeyEvent, isPasteEvent, isSelectAllEvent } from "@qawolf/web";
import { removeShortcutKeyEvents } from "./removeShortcutKeyEvents";

const SEPARATE_KEYS = ["Enter", "Tab"];

type B


self.pooled_height, self.pooled_width, rois, top_data)

        top_data = torch.Tensor(top_data.get())                 # 转换成torch tensor
        return top_data

if __name__=='__main__':

    batch, channels, height, width = 1,1,40,40
    bottom_data = np.random.randn(batch, channels, height, width)			# 特征feature

    height_spatial_scale = 1.0													# 原始特征和feature的比例
    width_spatial_scale = 1.0
    rois = np.array([[0, 2, 2, 10, 10],
                    [1, 3, 15, 20, 20],
                    [2, 3, 15, 20, 20],
                    [3, 3, 15, 20, 20],
                    [4, 3, 15, 20, 20],
                    [5, 3, 15, 20, 20],
                    [6, 3, 15, 20, 20],
                    [7, 3, 15, 20, 20]], dtype=np.float32)				# rois
    rois = np.array([[0, 2, 2, 10, 10],
                    [0, 3, 15, 20, 20] ], dtype=np.float32)				# rois
    pooled_height = 2													# 池化之后的高度
    maxratio = (rois[:, 3] - rois[:, 1]) / (rois[:, 4] - rois[:, 2])
    maxratio = maxratio.max()
    pooled_width = math.ceil(pooled_height * maxratio)

    roi_pooling = ocr_roi_pooling(pooled_height, pooled_width, height_spatial_scale, width_spatial_scale)

    output = roi_pooling(bottom_data, rois)

    print(output.shape)


// ==========  This file is under  LGPL, the GNU Lesser General Public License
// ==========  Dialing Syntax Analysis (www.aot.ru)
// ==========  Copyright by Dmitry Pankratov, Igor Nozhov, Alexey Sokirko

#pragma once

#include "Group.h"
#include "SyntaxInit.h"

#define FROM_LEFT 0
#define FROM_RIGHT 1

class CFormatCaller;

typedef bool(CFormatCaller::*CFormatFunc)(CGroup& G);

struct CFormatCall
{
		CFormatFunc	m_format;
		std::string		m_name;
		int			m_direction;

        CFormatCall();
		CFormatCall(CFormatFunc _format, const std::string&  _name, int _dir);

		bool operator==(const CFormatCall& X) const
		{ return m_name == X.m_name;};

};

typedef std::map<int,CFormatCall> CFormatCallMap;
typedef std::pair<int, int> CIntPair;

class CFormatCaller : public CGroups
{
	bool	format_for_gra_fork(CGroup& G, int GroupType, Descriptors fl_start, Descriptors fl_end, bool bFirstWordIsMain);
public:
	CFormatCallMap FormatCalls;
	CIntVector	m_vectorRulesNumbers;

	CFormatCaller(const CSyntaxOpt* Opt) : CGroups(Opt) {};
	virtual ~CFormatCaller(){};

	const CAgramtab* GetGramTab() const {  return GetOpt()->GetGramTab(); };

	virtual void	AddSimpleSimilarRules( ) = 0;
	virtual void	AddAllRules( ) = 0;
    virtual void	BuildOborotGroups( ) = 0;

	bool	try_and_step_forward(CFormatCall* FormatCall, CGroup& G, int rule);
	int		main_analyse();
	bool	create_groups_from_termin(const SFoundTermin& FoundTermin);

	//  common formats from graphematics
	bool	format_for_web_addr(CGroup& G);
	bool	format_for_keyb(CGroup& G);
	bool	format_for_FAM1_FAM2(CGroup& G);
	bool	format_for_oborots(CGroup& G);
	const	CGroup* create_disrupt_conj_group(CGroup& G, const CGroup* pFirstGr, const CGroup* pSecondGr, bool pbSearchSubGroups);
	bool	create_repeating_disrupt_conj(CGroup& G, const SDoubleConj& pConj);
	bool	format_for_disrupt_conj(CGroup& G);

	bool is_syn_noun(const CSynPlmLine& L) const;
	bool is_morph_adj(const CSynPlmLine& L) const;
    bool is_morph_adv(const CSynPlmLine& L) const;
	bool is_morph_participle(const CSynPlmLine& L) const;
	bool is_morph_predk(const CSynPlmLine& L) const;
	bool is_verb_form(const CSynPlmLine& L) const;
	bool is_morph_pronoun(const CSynPlmLine& L) const;
	bool is_left_noun_modifier (const CSynPlmLine& L) const;
	bool is_numeral(const CSynPlmLine& L) const;
	bool is_infinitive(const CSynPlmLine& L) const;
	bool is_morph_pronoun_adjective(const CSynPlmLine& L) const;
	int	check_first_part_of_prep_noun (const CGroup& G, uint64_t& depend_cases, int PREP_NOUN_GROUP_TYPE) const;

	void	ChangeGroupType(CGroup& G, int NewGroupType);

protected:
	virtual int		GetRuleByGroupTypeForThesaurus(int GroupType) const = 0;
	int				FindEndOfExpression(int StartWordNo) const;

};

#define W1 sent[G.m_iFirstWord]
#define W2 sent[G.m_iFirstWord+1]
#define W3 sent[G.m_iFirstWord+2]
#define Wi sent[i]
#define Wk sent[k]
#define Wj sent[j]


rences() { DhtEnabled = false });

            var remoteAlbum = CreateRemoteAlbum();
            remoteAlbum.Release.DownloadUrl = "magnet:?xt=urn:btih:ZPBPA2P6ROZPKRHK44D5OW6NHXU5Z6KR";

            Assert.ThrowsAsync<ReleaseDownloadException>(async () => await Subject.Download(remoteAlbum, CreateIndexer()));
        }

        [Test]
        public void Download_should_accept_magnet_if_trackers_provided_and_dht_is_disabled()
        {
            Mocker.GetMock<IQBittorrentProxy>()
                  .Setup(s => s.GetConfig(It.IsAny<QBittorrentSettings>()))
                  .Returns(new QBittorrentPreferences { DhtEnabled = false });

            var remoteAlbum = CreateRemoteAlbum();
            remoteAlbum.Release.DownloadUrl = "magnet:?xt=urn:btih:ZPBPA2P6ROZPKRHK44D5OW6NHXU5Z6KR&tr=udp://abc";

            Assert.DoesNotThrowAsync(async () => await Subject.Download(remoteAlbum, CreateIndexer()));

            Mocker.GetMock<IQBittorrentProxy>()
                  .Verify(s => s.AddTorrentFromUrl(It.IsAny<string>(), It.IsAny<TorrentSeedConfiguration>(), It.IsAny<QBittorrentSettings>()), Times.Once());
        }

        [Test]
        public async Task Download_should_set_top_priority()
        {
            GivenHighPriority();
            GivenSuccessfulDownload();

            var remoteAlbum = CreateRemoteAlbum();

            var id = await Subject.Download(remoteAlbum, CreateIndexer());

            Mocker.GetMock<IQBittorrentProxy>()
                  .Verify(v => v.MoveTorrentToTopInQueue(It.IsAny<string>(), It.IsAny<QBittorrentSettings>()), Times.Once());
        }

        [Test]
        public async Task Download_should_not_fail_if_top_priority_not_available()
        {
            GivenHighPriority();
            GivenSuccessfulDownload();

            Mocker.GetMock<IQBittorrentProxy>()
                  .Setup(v => v.MoveTorrentToTopInQueue(It.IsAny<string>(), It.IsAny<QBittorrentSettings>()))
                  .Throws(new HttpException(new HttpResponse(new HttpRequest("http://me.local/"), new HttpHeader(), Array.Empty<byte>(), System.Net.HttpStatusCode.Forbidden)));

            var remoteAlbum = CreateRemoteAlbum();

            var id = await Subject.Download(remoteAlbum, CreateIndexer());

            id.Should().NotBeNullOrEmpty();

            ExceptionVerification.ExpectedWarns(1);
        }

        [Test]
        public void should_return_status_with_outputdirs()
        {
            var config = new QBittorrentPreferences
            {
                SavePath = @"C:\Downloads\Finished\QBittorrent".AsOsAgnostic()
            };

            Mocker.GetMock<IQBittorrentProxy>()
                .Setup(v => v.GetConfig(It.IsAny<QBittorrentSettings>()))
                .Returns(config);

            var result = Subject.GetStatus();

            result.IsLocalhost.Should().BeTrue();
            result.OutputRootFolders.Should().NotBeNull();
            result.OutputRootFolders.First().Should().Be(@"C:\Downloads\Finished\QBittorrent".AsOsAgnostic());
        }

        [Test]
        public void should_correct_category_output_path()
        {
            var config = new QBittorrentPreferences
            {
                SavePath = @"C:\Downloads\Finished\QBittorrent".AsOsAgnostic()
            };

            Mocker.GetMock<IQBittorrentProxy>()
                .Setup(v => v.GetConfig(It.IsAny<QBittorrentSettings>()))
                .Returns(config);

            Mocker.GetMock<IQBittorrentProxy>()
                .Setup(v => v.GetApiVersion(It.IsAny<QBittorrentSettings>()))
                .


"
            ),
            ApiResponse(
                responseCode = "409",
                description = "이미 사용권을 가지고 있는 보이스팩"
            ),
            ApiResponse(
                responseCode = "402",
                description = "크레딧 부족 (크레딧 연동 시)"
            ),
            ApiResponse(
                responseCode = "500",
                description = "서버 오류"
            )
        ]
    )
    @PostMapping("/usage-right")
    fun grantUsageRight(
        @Parameter(description = "사용자 ID") @RequestParam userId: Long,
        @Parameter(description = "보이스팩 ID") @RequestParam voicepackId: Long
    ): ResponseEntity<Any> {
        try {
            val usageRightDto = voicepackService.grantUsageRight(userId, voicepackId)
            return ResponseEntity.ok(usageRightDto)
        } catch (e: IllegalArgumentException) {
            logger.warn("보이스팩 사용권 획득 잘못된 요청: userId={}, voicepackId={}, error={}", userId, voicepackId, e.message)
            return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(mapOf("error" to e.message))
        } catch (e: IllegalStateException) {
            logger.warn("보이스팩 사용권 획득 충돌 또는 비즈니스 로직 오류: userId={}, voicepackId={}, error={}", userId, voicepackId, e.message)
            if (e.message?.contains("크레딧") == true || e.message?.contains("Credit") == true ) {
                 return ResponseEntity.status(HttpStatus.PAYMENT_REQUIRED).body(mapOf("error" to e.message))
            }
            return ResponseEntity.status(HttpStatus.CONFLICT).body(mapOf("error" to e.message))
        } catch (e: RuntimeException) {
             logger.error("보이스팩 사용권 획득 중 런타임 오류: userId={}, voicepackId={}, error={}", userId, voicepackId, e.message, e)
            if (e.message?.contains("크레딧") == true || e.message?.contains("Credit") == true) {
                return ResponseEntity.status(HttpStatus.PAYMENT_REQUIRED).body(mapOf("error" to e.message))
            }
            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(mapOf("error" to (e.message ?: "사용권 획득 처리 중 오류가 발생했습니다.")))
        } catch (e: Exception) {
            logger.error("보이스팩 사용권 획득 중 예상치 못한 오류: userId={}, voicepackId={}, error={}", userId, voicepackId, e.message, e)
            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(mapOf("error" to "사용권 획득 처리 중 예상치 못한 오류가 발생했습니다."))
        }
    }

    // 사용자가 사용권을 보유한 보이스팩 목록 조


 = await analysisServer.getFixes(path, offset);
      AssistsResult assists = await assistsFuture;

      _handleFixesResult(fixes, assists, editor, autoFix: autoFix);
    });
    job.schedule();
  }

  void _handleFixesResult(FixesResult result, AssistsResult assists,
      TextEditor editor, {bool autoFix: true}) {
    List<AnalysisErrorFixes> fixes = result.fixes;

    if (fixes.isEmpty && assists.assists.isEmpty) {
      atom.beep();
      return;
    }

    List<_Change> changes = new List.from(
        fixes.expand((fix) => fix.fixes.map(
          (SourceChange change) => new _Change(change, fix.error))));

    changes.addAll(
        assists.assists.map((SourceChange change) => new _Change(change)));

    if (autoFix && changes.length == 1 && assists.assists.isEmpty) {
      // Apply the fix.
      _applyChange(editor, changes.first.change);
    } else {
      int i = 0;
      var renderer = (_Change change) {
        // We need to create suggestions with unique text replacements.
        return new Suggestion(
          text: 'fix_${++i}',
          replacementPrefix: '',
          displayText: change.change.message,
          rightLabel: change.isAssist ? 'assist' : 'quick-fix',
          description: change.isAssist ? null : change.error.message,
          type: change.isAssist ? 'attribute' : 'function'
        );
      };

      // Show a selection dialog.
      chooseItemUsingCompletions(editor, changes, renderer).then((_Change choice) {
        editor.undo();
        _applyChange(editor, choice.change);
      });
    }
  }
}

class _Change {
  final SourceChange change;
  final AnalysisError error;

  _Change(this.change, [this.error]);

  bool get isAssist => error == null;

  String toString() {
    return error == null ? change.message : '${error.message}: ${change.message}';
  }
}

void _applyChange(TextEditor currentEditor, SourceChange change) {
  List<SourceFileEdit> sourceFileEdits = change.edits;
  List<LinkedEditGroup> linkedEditGroups = change.linkedEditGroups;

  Future.forEach(sourceFileEdits, (SourceFileEdit edit) {
    return atom.workspace.open(edit.file,
        options: {'searchAllPanes': true}).then((TextEditor editor) {
      applyEdits(editor, edit.edits);
      int index = sourceFileEdits.indexOf(edit);
      if (index >= 0 && index < linkedEditGroups.length) {
        selectEditGroup(editor, linkedEditGroups[index]);
      }
    });
  }).then((_) {
    String fileSummary = sourceFileEdits.map((edit) => edit.file).join('\n');
    if (sourceFileEdits.length == 1) fileSummary = null;
    atom.notifications.addSuccess(
        'Executed quick fix: ${toStartingLowerCase(change.message)}',
        detail: fileSummary);

    // atom.workspace.open(currentEditor.getPath(),
    //     options: {'searchAllPanes': true}).then((TextEditor editor) {
    //   if (change.selection != null) {
    //     editor.setCursorBufferPosition(
    //         editor.getBuffer().positionForCharacterIndex(change.selection.offset));
    //   } else if (linkedEditGroups.isNotEmpty) {
    //     selectEditGroups(currentEditor, linkedEditGroups);
    //   }
    // });
  }).catchError((e) {
    atom.notifications.addError('Error Performing Rename', detail: '${e}');
  });
}
import 'package:analysis_server_lib/analysis_server_lib.dart' show FindTopLevelDeclarationsResult, SearchResult, Location;
import 'package:atom/atom.dart';
import 'package:atom/no


是不是可以信任的？可不可以纵情的谈些什么？读他底来信是热情的，但似乎有点做作，当然，一封信是并不能判定一个人的，不过，为了避免不必要的纠纷，当然应该小心。

   〔“文学界”〕上海“文汇报”的副刊。〔萧岱〕一位上海的文艺工作者。胡风分子张中晓在这封信里诋毁党所发动的具有重大意义的“武训传”批判运动，并向胡风请示谁是他们的“友人”，谁是他们的“敌人”。〔元化〕即王元化，当时在上海新文艺出版社工作。

   四十四、一九五二年六月十六日阿垄给梅志信（自天津）

   近来比较忙。多了一些事务，参加了一些座谈会，例如武训座谈会。有时有些好笑，那些老爷，一个钟头以前唱赞美诗，一个钟头才过去又翻脸六亲不认，以至连自己底澡都得用旁人以无辜的忏悔来为他们洗。所以又笑不出来，太恶劣。洛兄寄了些材料来，看起来似乎上海是个混乱的中心。

   〔那些老爷〕这是胡风集团谩骂党和非党的革命干部的话。阿垄在这封信里利用曾有部分的革命干部错误地称赞过“武训传”这一情况来污蔑和反对党所发动的对于“武训传”的批判。〔洛兄〕指罗洛，胡风集团分子。

   四十五、一九五○年十一月十五日张中晓给胡风信（自上海）

   ……但报纸上，期刊上，都是机械论，譬如“学习”。我也曾想到过，上月二十一日我去信“学习”，提出了问题……

   照我底想法，总该在整个思想领域上发动……不然，假如借机械论独占下去，即是有伟大的作品出世，人们也是没有力量感受的，现在似乎是旧趣味加机械论最吃香的时候！无论任一领域！

   〔“学习”〕即“学习”杂志。〔在整个思想领域上发动〕即发动对整个革命思想领域的攻击。


(_self.noteSelectHandler.isTrackMuted[curTrackIndex]) {
          if (_self.noteSelectHandler.tracks[curTrackIndex].isMuted) {
            // Don't play muted tracks.
            continue;
          }
          playCurrentNote(curTrackIndex);
        }
        nextNote();
        if (_self.currentNoteIndex === 0 && singleLoopControl.checked) {
          singleLoopControl.checked = false;
          _self.isPlaying = false;
          updatePlayingDisplay();
        } else {
          window.setTimeout(function () {
            noteLoop();
          }, secondsPerBeat * 1000);
        }
      }
    }

    function nextNote() {
      _self.noteSelectHandler.setPlayingNoteDisplay(_self.currentNoteIndex);
      //   _self.currentNoteIndex = (_self.currentNoteIndex + 1) % NoteSelectHandler.DEFAULT_NOTE_INPUT_COUNT;
      _self.currentNoteIndex = (_self.currentNoteIndex + 1) % _self.noteSelectHandler.noteInputCount;
    }

    function playCurrentNote(curTrackIndex) {
      var curTrack = _self.noteSelectHandler.tracks[curTrackIndex];
      var curNote = curTrack.currentNotes[_self.currentNoteIndex];
      // delayAmountGain.value = curTrack.delayValues.amount;
      console.log("curTrack.vibratoValues", curTrack.vibratoValues); // , vibratoAmount, vibratoSpeed);

      console.log("curNote", curNote);
      if (!curNote || curNote.noteIndex < 1 || curNote.noteIndex >= Object.keys(noteValues).length) {
        console.info("Note at index " + _self.currentNoteIndex + " not set.");
        return;
      }
      const noteLengthFactor = curNote.lengthFactor;
      if (noteLengthFactor <= 0.0) {
        return;
      }
      const osc = _self.mainControls.context.createOscillator();
      const noteGain = _self.mainControls.context.createGain();
      noteGain.gain.setValueAtTime(0, 0);
      noteGain.gain.linearRampToValueAtTime(
        curTrack.envelope.sustainLevel,
        _self.mainControls.context.currentTime + curTrack.envelope.noteLength * curTrack.envelope.attackTime * noteLengthFactor
      );
      // console.log("this.envelopeHandler.envelope", this.envelopeHandler.envelope, "noteLengthFactor", noteLengthFactor);
      noteGain.gain.setValueAtTime(
        curTrack.envelope.sustainLevel,
        _self.mainControls.context.currentTime +
          (curTrack.envelope.noteLength - curTrack.envelope.noteLength * curTrack.envelope.releaseTime) * noteLengthFactor
      );
      noteGain.gain.linearRampToValueAtTime(
        0,
        _self.mainControls.context.currentTime + curTrack.envelope.noteLength * noteLengthFactor
      );

      var lfoGain = _self.mainControls.context.createGain();
      lfoGain.gain.setValueAtTime(curTrack.vibratoValues.amount, 0);
      lfoGain.connect(osc.frequency);

      var lfo = _self.mainControls.context.createOscillator();
      if (curTrack.vibratoValues.modulation === "gaussian") {
        // This changes the tremo frequency over time :)
        const tuneLength = curTrack.envelope.noteLength * noteLengthFactor;
        lfo.frequency.setValueAtTime(curTrack.vibratoValues.speed / 4, 0);
        lfo.frequency.setValueAtTime(curTrack.vibratoValues.speed / 2, tuneLength / 4);
        lfo.frequency.setValueAtTime(curTrack.vibratoValues.speed / 1, (tuneLength / 4) * 2);
        lfo.frequency.setValueAtTime(curTrack.vibratoValues.speed / 2, (tuneLength / 4) * 3);
        l


�出最具潜力的客户，如何利用这些数据提高销售业绩？ |
| 资讯获取 | 如何从一份新闻文章中提取出关键信息？ |
| 商品推荐 | 基于用户历史购买记录，如何向用户推荐相关商品？ |
| 内容生成 | 如何自动生成一篇与指定主题相关的文章？ |
| 数据处理 | 如何对大规模数据进行快速清洗和去重操作？ |
| 文本分类 | 如何使用机器学习算法将文本数据按照不同类别进行分类？ |
| 图像识别 | 如何使用深度学习技术实现图像分类与标注功能？ |
| 语音转写 | 如何将音频文件中的语音内容转换为文字格式？ |
| 自动翻译 | 如何将一种语言翻译成另一种语言并保持原意？ |
| 行为预测 | 如何根据用户历史行为和兴趣预测其未来可能的行为？ |
| 价值评估 | 如何对企业在市场上的价值进行准确评估？ |
| 计算机视觉 | 如何用计算机视觉实现人脸识别？ |
| 食品科技 | 怎样使用食品科技来延长食品的保质期？ |
| 自然语言处理 | 如何利用自然语言处理技术进行情感分析？ |
| 健康管理 | 如何通过数据分析提高健康管理水平？ |
| 智能家居 | 如何利用智能家居技术提高居家生活质量？ |
| 区块链应用 | 区块链技术在供应链领域有哪些应用场景？ |
| 量子计算 | 量子计算如何改变人工智能的发展方向？ |
| 无人驾驶 | 无人驾驶汽车如何通过深度学习技术提高行驶安全性？ |
| 虚拟现实 | 虚拟现实技术在游戏开发中的应用场景有哪些？ |
| 人工智能伦理 | 如何确保人工智能技术的合理、公正、透明和可解释性？ |
|商品推荐|给我推荐一些适合中年女性的护肤品品牌和产品？|
|科技新闻|最近有哪些关于人工智能在医疗领域的新闻报道？|
|动物知识|能否告诉我一些非洲动物的习性和栖息地？|
|旅游攻略|请为我介绍一下去马来西亚旅游应该注意什么事项？|
|电影


idget( "getter" );
	assert.equal( ret, "qux", "getter returns value" );

	elem.testWidget();
	assert.ok( true, "_init is optional" );

	TestWidget.prototype._init = function() {
		assert.ok( "_init", "_init now exists, so its called" );
	};
	elem.testWidget();
} );

QUnit.test( "$.widget.bridge() - widgetFullName", function( assert ) {
	assert.expect( 1 );

	var instance,
		elem = $( "<div>" );

	function TestWidget() {}
	TestWidget.prototype.widgetFullName = "custom-widget";
	$.widget.bridge( "testWidget", TestWidget );

	elem.testWidget();
	instance = elem.data( "custom-widget" );
	assert.equal( typeof instance, "object", "instance stored in .data(widgetFullName)" );
} );

} );
define( [
	"qunit",
	"jquery",
	"ui/widgets/autocomplete"
], function( QUnit, $ ) {

QUnit.module( "autocomplete: core" );

QUnit.test( "markup structure", function( assert ) {
	assert.expect( 2 );
	var element = $( "#autocomplete" ).autocomplete(),
		menu = element.autocomplete( "widget" );

	assert.hasClasses( element, "ui-autocomplete-input" );
	assert.hasClasses( menu, "ui-autocomplete ui-widget ui-widget-content" );
} );

QUnit.test( "prevent form submit on enter when menu is active", function( assert ) {
	assert.expect( 2 );
	var event,
		element = $( "#autocomplete" )
			.autocomplete( {
				source: [ "java", "javascript" ]
			} )
			.val( "ja" )
			.autocomplete( "search" ),
		menu = element.autocomplete( "widget" );

	event = $.Event( "keydown" );
	event.keyCode = $.ui.keyCode.DOWN;
	element.trigger( event );
	assert.equal( menu.find( ".ui-menu-item-wrapper.ui-state-active" ).length, 1,
		"menu item is active" );

	event = $.Event( "keydown" );
	event.keyCode = $.ui.keyCode.ENTER;
	element.trigger( event );
	assert.ok( event.isDefaultPrevented(), "default action is prevented" );
} );

QUnit.test( "allow form submit on enter when menu is not active", function( assert ) {
	assert.expect( 1 );
	var event,
		element = $( "#autocomplete" )
			.autocomplete( {
				autoFocus: false,
				source: [ "java", "javascript" ]
			} )
			.val( "ja" )
			.autocomplete( "search" );

	event = $.Event( "keydown" );
	event.keyCode = $.ui.keyCode.ENTER;
	element.trigger( event );
	assert.ok( !event.isDefaultPrevented(), "default action is prevented" );
} );

( function() {
	QUnit.test( "up arrow invokes search - input", function( assert ) {
		arrowsInvokeSearch( assert, "#autocomplete", true, true );
	} );

	QUnit.test( "down arrow invokes search - input", function( assert ) {
		arrowsInvokeSearch( assert, "#autocomplete", false, true );
	} );

	QUnit.test( "up arrow invokes search - textarea", function( assert ) {
		arrowsInvokeSearch( assert, "#autocomplete-textarea", true, false );
	} );

	QUnit.test( "down arrow invokes search - textarea", function( assert ) {
		arrowsInvokeSearch( assert, "#autocomplete-textarea", false, false );
	} );

	QUnit.test( "up arrow invokes search - contenteditable", function( assert ) {
		arrowsInvokeSearch( assert, "#autocomplete-contenteditable", true, false );
	} );

	QUnit.


.tokens.copyExpectedToken(tt.name);
        while (this.tokens.matches1(tt.dot)) {
          this.tokens.copyExpectedToken(tt.dot);
          this.tokens.copyExpectedToken(tt.name);
        }
        if (this.tokens.matches1(tt.parenL)) {
          this.tokens.copyExpectedToken(tt.parenL);
          this.rootTransformer.processBalancedCode();
          this.tokens.copyExpectedToken(tt.parenR);
        }
      }
    }
  }

  /**
   * Transform a declaration like `export var`, `export let`, or `export const`.
   */
  private processExportVar(): void {
    if (this.isSimpleExportVar()) {
      this.processSimpleExportVar();
    } else {
      this.processComplexExportVar();
    }
  }

  /**
   * Determine if the export is of the form:
   * export var/let/const [varName] = [expr];
   * In other words, determine if function name inference might apply.
   */
  private isSimpleExportVar(): boolean {
    let tokenIndex = this.tokens.currentIndex();
    // export
    tokenIndex++;
    // var/let/const
    tokenIndex++;
    if (!this.tokens.matches1AtIndex(tokenIndex, tt.name)) {
      return false;
    }
    tokenIndex++;
    while (tokenIndex < this.tokens.tokens.length && this.tokens.tokens[tokenIndex].isType) {
      tokenIndex++;
    }
    if (!this.tokens.matches1AtIndex(tokenIndex, tt.eq)) {
      return false;
    }
    return true;
  }

  /**
   * Transform an `export var` declaration initializing a single variable.
   *
   * For example, this:
   * export const f = () => {};
   * becomes this:
   * const f = () => {}; exports.f = f;
   *
   * The variable is unused (e.g. exports.f has the true value of the export).
   * We need to produce an assignment of this form so that the function will
   * have an inferred name of "f", which wouldn't happen in the more general
   * case below.
   */
  private processSimpleExportVar(): void {
    // export
    this.tokens.removeInitialToken();
    // var/let/const
    this.tokens.copyToken();
    const varName = this.tokens.identifierName();
    // x: number  ->  x
    while (!this.tokens.matches1(tt.eq)) {
      this.rootTransformer.processToken();
    }
    const endIndex = this.tokens.currentToken().rhsEndIndex;
    if (endIndex == null) {
      throw new Error("Expected = token with an end index.");
    }
    while (this.tokens.currentIndex() < endIndex) {
      this.rootTransformer.processToken();
    }
    this.tokens.appendCode(`; exports.${varName} = ${varName}`);
  }

  /**
   * Transform normal declaration exports, including handling destructuring.
   * For example, this:
   * export const {x: [a = 2, b], c} = d;
   * becomes this:
   * ({x: [exports.a = 2, exports.b], c: exports.c} = d;)
   */
  private processComplexExportVar(): void {
    this.tokens.removeInitialToken();
    this.tokens.removeToken();
    const needsParens = this.tokens.matches1(tt.braceL);
    if (needsParens) {
      this.tokens.appendCode("(");
    }

    let depth = 0;
    while (true) {
      if (
        this.tokens.matches1(tt.braceL) ||
        this.tokens.matches1(tt.dollarBraceL) ||
        this.tokens.matches1(tt.bracketL)
      ) {
        depth++;
        this.tokens.copyToken();
      } else if (this.tokens.matches1(tt.braceR) || this.tokens.matches1(tt.bracketR)) {
        depth--;
        this.tokens.copyToken();
      } else if (
        depth === 0 &&
        !this.


l.movhi	r31,0

	/* Clear status register, set supervisor mode */
	l.ori	r1,r0,OR1K_SPR_SYS_SR_SM_MASK
	l.mtspr	r0,r1,OR1K_SPR_SYS_SR_ADDR
	/* Clear timer mode register*/
	l.mtspr	r0,r0,OR1K_SPR_TICK_TTMR_ADDR
	/* Jump to program initialisation code */
	LOAD_SYMBOL_2_GPR(r4, _or1k_start)
	OR1K_DELAYED_NOP(OR1K_INST(l.jr r4))

	.org 0x200
	CALL_EXCEPTION_HANDLER(2)

	/* 0x300: Data Page Fault exception */
	.org 0x300
	CALL_EXCEPTION_HANDLER(3)

	/* 0x400: Insn Page Fault exception */
	.org 0x400
	CALL_EXCEPTION_HANDLER(4)

	/* 0x500: Timer exception */
	.org 0x500
	CALL_EXCEPTION_HANDLER(5)

	/* 0x600: Aligment exception */
	.org 0x600
	CALL_EXCEPTION_HANDLER(6)

	/* 0x700: Illegal insn exception */
	.org 0x700
	CALL_EXCEPTION_HANDLER(7)

	/* 0x800: External interrupt exception */
	.org 0x800
	CALL_EXCEPTION_HANDLER(8)

	/* 0x900: DTLB miss exception */
	.org 0x900
	CALL_EXCEPTION_HANDLER(9)

	/* 0xa00: ITLB miss exception */
	.org 0xa00
	CALL_EXCEPTION_HANDLER(10)

	/* 0xb00: Range exception */
	.org 0xb00
	CALL_EXCEPTION_HANDLER(11)

	/* 0xc00: Syscall exception */
	.org 0xc00
	CALL_EXCEPTION_HANDLER(12)

	/* 0xd00: Floating point exception */
	.org 0xd00
	CALL_EXCEPTION_HANDLER(13)

	/* 0xe00: Trap exception */
	.org 0xe00
	CALL_EXCEPTION_HANDLER(14)

	/* 0xf00: Reserved exceptions */
	.org 0xf00
	CALL_EXCEPTION_HANDLER(15)

	.org 0x1000
	CALL_EXCEPTION_HANDLER(16)

	.org 0x1100
	CALL_EXCEPTION_HANDLER(17)

	.org 0x1200
	CALL_EXCEPTION_HANDLER(18)

	.org 0x1300
	CALL_EXCEPTION_HANDLER(19)

	.org 0x1400
	CALL_EXCEPTION_HANDLER(20)

	.org 0x1500
	CALL_EXCEPTION_HANDLER(21)

	.org 0x1600
	CALL_EXCEPTION_HANDLER(22)

	.org 0x1700
	CALL_EXCEPTION_HANDLER(23)

	.org 0x1800
	CALL_EXCEPTION_HANDLER(24)

	.org 0x1900
	CALL_EXCEPTION_HANDLER(25)

	.org 0x1a00
	CALL_EXCEPTION_HANDLER(26)

	.org 0x1b00
	CALL_EXCEPTION_HANDLER(27)

	.org 0x1c00
	CALL_EXCEPTION_HANDLER(28)

	.org 0x1d00
	CALL_EXCEPTION_HANDLER(29)

	.org 0x1e00
	CALL_EXCEPTION_HANDLER(30)

	.org 0x1f00
	CALL_EXCEPTION_HANDLER(31)

	/* Pad to the end */
	.org 0x1ffc
	l.nop

/* -------------------------------------------------------------------------- */
/*!Main entry point

  This is the initialization code of the library. It performs these steps:

   * Call early board initialization:
     Before anything happened, the board support may do some very early
     initialization. This is at maximum some very basic stuff that would
     otherwise prevent the following code from functioning. Other initialization
     of peripherals etc. is done later (before calling main).
     See the description below and README.board for details.

   * Initialize the stacks:
     Two stacks are configured: The system stack is used by the software and
     the exception stack is used when an exception occurs. We added this as
     this should be flexible with respect to the usage of virtual memory.

   * Activate the caches:
     If available the caches are initiliazed and activated.

   * Clear BSS:
     The BSS are essentially the uninitialized C v


�ਟ ਦਾ ਟ\u{a41}ਕੜਾ"),
            keywords: &[
                "ਕ\u{a71}ਟ",
                "ਮੀਟ ਦਾ ਟ\u{a41}ਕੜਾ",
                "ਲ\u{a47}ਲ\u{a47} ਦਾ ਕ\u{a71}ਟ",
                "ਸਟੀਕ",
                "ਸ\u{a42}ਰ ਦਾ ਕ\u{a71}ਟ",
            ],
        },
        #[cfg(feature = "pa_Arab")]
        crate::Annotation {
            lang: "pa_Arab",
            tts: Some("گوشت دا ٹکڑا"),
            keywords: &[
                "د\u{64f}نبے دی چانپ",
                "سؤر دی چانپ",
                "سٹیک",
                "کاٹنا",
                "گوشت دا ٹکڑا",
            ],
        },
        #[cfg(feature = "pcm")]
        crate::Annotation {
            lang: "pcm",
            tts: Some("Pís Ọf Mit"),
            keywords: &[
                "Bíg Pís Ọf Kaú Mit",
                "Bíg Pís Ọf Mit Wit Bon",
                "Bíg Pís Ọf Píg Mit Wit Bon",
                "Bíg Pís Ọf Ship-Pikin Mit Wit Bon",
                "Pís Ọf Mit",
            ],
        },
        #[cfg(feature = "pl")]
        crate::Annotation {
            lang: "pl",
            tts: Some("kawałek mięsa"),
            keywords: &["kawałek mięsa"],
        },
        #[cfg(feature = "ps")]
        crate::Annotation {
            lang: "ps",
            tts: Some("د غوښې ټکړه"),
            keywords: &[
                "د غوښې ټکړه",
                "غوڅول، د غوښې ټکړه، د پيسه غوښه، د سور غوښه، تيکې",
            ],
        },
        #[cfg(feature = "pt")]
        crate::Annotation {
            lang: "pt",
            tts: Some("corte de carne"),
            keywords: &["bife", "corte de carne", "costeleta de porco"],
        },
        #[cfg(feature = "pt_PT")]
        crate::Annotation {
            lang: "pt_PT",
            tts: Some("naco de carne"),
            keywords: &[
                "bife",
                "costeleta",
                "costeleta de cordeiro",
                "costeleta de porco",
                "naco de carne",
            ],
        },
        #[cfg(feature = "qu")]
        crate::Annotation {
            lang: "qu",
            tts: Some("chuleta aychamanta"),
            keywords: &[
                "aycha",
                "chuleta",
                "chuleta aychamanta",
                "chuleta corderomanta",
                "chuleta khuchimanta",
            ],
        },
        #[cfg(feature = "ro")]
        crate::Annotation {
            lang: "ro",
            tts: Some("bucată de carne"),
            keywords: &["antricot", "bucată de carne", "cotlet", "friptură"],
        },
        #[cfg(feature = "root")]
        crate::Annotation {
            lang: "root",


cc, v[1:2], v[2:3]
// CHECK: [0x01,0x05,0xec,0x7d]

v_cmpx_ge_i64 vcc, v[254:255], v[2:3]
// CHECK: [0xfe,0x05,0xec,0x7d]

v_cmpx_ge_i64 vcc, s[2:3], v[2:3]
// CHECK: [0x02,0x04,0xec,0x7d]

v_cmpx_ge_i64 vcc, s[4:5], v[2:3]
// CHECK: [0x04,0x04,0xec,0x7d]

v_cmpx_ge_i64 vcc, s[100:101], v[2:3]
// CHECK: [0x64,0x04,0xec,0x7d]

v_cmpx_ge_i64 vcc, flat_scratch, v[2:3]
// CHECK: [0x66,0x04,0xec,0x7d]

v_cmpx_ge_i64 vcc, vcc, v[2:3]
// CHECK: [0x6a,0x04,0xec,0x7d]

v_cmpx_ge_i64 vcc, exec, v[2:3]
// CHECK: [0x7e,0x04,0xec,0x7d]

v_cmpx_ge_i64 vcc, 0, v[2:3]
// CHECK: [0x80,0x04,0xec,0x7d]

v_cmpx_ge_i64 vcc, -1, v[2:3]
// CHECK: [0xc1,0x04,0xec,0x7d]

v_cmpx_ge_i64 vcc, 0.5, v[2:3]
// CHECK: [0xf0,0x04,0xec,0x7d]

v_cmpx_ge_i64 vcc, -4.0, v[2:3]
// CHECK: [0xf7,0x04,0xec,0x7d]

v_cmpx_ge_i64 vcc, 0xaf123456, v[2:3]
// CHECK: [0xff,0x04,0xec,0x7d,0x56,0x34,0x12,0xaf]

v_cmpx_ge_i64 vcc, 0x3f717273, v[2:3]
// CHECK: [0xff,0x04,0xec,0x7d,0x73,0x72,0x71,0x3f]

v_cmpx_ge_i64 vcc, v[1:2], v[254:255]
// CHECK: [0x01,0xfd,0xed,0x7d]

v_cmpx_ge_i64_e64 s[10:11], v[1:2], v[2:3]
// CHECK: [0x0a,0x00,0xf6,0xd0,0x01,0x05,0x02,0x00]

v_cmpx_ge_i64_e64 s[12:13], v[1:2], v[2:3]
// CHECK: [0x0c,0x00,0xf6,0xd0,0x01,0x05,0x02,0x00]

v_cmpx_ge_i64_e64 s[100:101], v[1:2], v[2:3]
// CHECK: [0x64,0x00,0xf6,0xd0,0x01,0x05,0x02,0x00]

v_cmpx_ge_i64_e64 flat_scratch, v[1:2], v[2:3]
// CHECK: [0x66,0x00,0xf6,0xd0,0x01,0x


(description = "Agent Hash ID", required = true)
        @PathParam("agentId")
        agentId: String
    ): AgentResult<ThirdPartyAgent?>

    @Operation(summary = "根据环境名称获取Agent信息")
    @GET
    @Path("/projects/{projectId}/displayNames")
    fun getAgentByDisplayName(
        @Parameter(description = "项目ID", required = true)
        @PathParam("projectId")
        projectId: String,
        @Parameter(description = "Display Name", required = true)
        @QueryParam("displayName")
        displayName: String
    ): AgentResult<ThirdPartyAgent?>

    @Operation(summary = "根据环境ID获取Agent列表")
    @GET
    @Path("/projects/{projectId}/envs/{envId}")
    fun getAgentsByEnvId(
        @Parameter(description = "项目ID", required = true)
        @PathParam("projectId")
        projectId: String,
        @Parameter(description = "Environment Hash ID", required = true)
        @PathParam("envId")
        envId: String
    ): Result<List<EnvNodeAgent>>

    @Operation(summary = "根据环境名称获取Agent列表")
    @GET
    @Path("/projects/{projectId}/envNames/{envName}")
    fun getAgentsByEnvName(
        @Parameter(description = "项目ID", required = true)
        @PathParam("projectId")
        projectId: String,
        @Parameter(description = "Environment name", required = true)
        @PathParam("envName")
        envName: String
    ): Result<List<EnvNodeAgent>>

    @Operation(summary = "Agent是否能升级")
    @GET
    @Path("/projects/{projectId}/agents/{agentId}/upgrade")
    fun upgrade(
        @Parameter(description = "项目ID", required = true)
        @PathParam("projectId")
        projectId: String,
        @Parameter(description = "Agent Hash ID", required = true)
        @PathParam("agentId")
        agentId: String,
        @Parameter(description = "Agent secret key", required = true)
        @QueryParam("secretKey")
        secretKey: String,
        @Parameter(description = "agent.jar的MD5", required = true)
        @QueryParam("tag")
        tag: String
    ): AgentResult<Boolean>

    @Operation(summary = "Agent是否能升级")
    @GET
    @Path("/projects/{projectId}/agents/{agentId}/upgradeByVersion")
    fun upgradeByVersion(
        @Parameter(description = "项目ID", required = true)
        @PathParam("projectId")
        projectId: String,
        @Parameter(description = "Agent Hash ID", required = true)
        @PathParam("agentId")
        agentId: String,
        @Parameter(description = "Agent secret key", required = true)
        @QueryParam("secretKey")
        secretKey: String,
        @Parameter(description = "agent版本号", required = false)
        @QueryParam("version")
        version: String?,
        @Parameter(description = "masterAgent版本号", required = false)
        @QueryParam("masterVersion")
        masterVersion: String?
    ): AgentResult<Boolean>

    @Operation(summary = "Agent是否能升级new")
    @POST
    @Path("/projects/{projectId}/agents/{agentId}/upgradeByVersionNew")
    fun upgradeByVersionNew(
        @Parameter(description = "项目ID", required = true)
        @PathParam("projectId")
        projectId: String,
        @Parameter(description = "Agent Hash ID", required = true)
        @PathParam("agentId")
        agentId: String,
        @Parameter(description = "Agent secret key", required = true)
        @QueryParam("secretKey")
        secretKey: String,
        @Parameter(de


teger)
Dim cc As GCommonDialog
Dim sI As String
   Select Case Index
   Case 0 'new
      m_sFile = ""
      iceMain.NewIcon
      pShowDevice

   Case 2 'open
      Set cc = New GCommonDialog
      If cc.VBGetOpenFileName(m_sFile, , , , , , "Icon Files
       (*.ICO)|*.ICO|Resource Files (*.EXE;*.DLL)|*.EXE;*.DLL|All Files
       (*.*)|*.*", , , , "ICO", Me.hwnd) Then
         pLoadFile
      End If

   Case 3 'save
      If Not (m_sFile) = "" Then
         iceMain.SaveIcon m_sFile
         pAddToMRU m_sFile
      Else
         ' saveas
         mnuFile_Click 4
      End If

   Case 4 'saveas
      Set cc = New GCommonDialog
      If cc.VBGetSaveFileName(m_sFile, , , "Icon Files (*.ICO)|*.ICO|All Files
       (*.*)|*.*", , , , "ICO", Me.hwnd) Then
         iceMain.SaveIcon m_sFile
         pAddToMRU m_sFile
      End If

   Case 6 'properties
      ' todo
      MsgBox "Left as an exercise.", vbInformation

   Case 8 To 15
      m_sFile = m_cMRU.Item(Index - 7)
      pLoadFile

   Case 17 'exit
      Unload Me
   End Select

End Sub

Private Sub pLoadFile()
Dim sI As String
Dim bOk As Boolean

On Error GoTo ErrorHandler

   If iceMain.IsAnIconFile(m_sFile) Then
      bOk = iceMain.LoadIcon(m_sFile)
   Else
      ' This is not the way you would do this in a real
      ' app :)  See the vbAccelerator Icon Extractor project
      ' for details of how to do this properly:
      sI = InputBox$("Please enter the id or name of the resource you want to
       load", , "1")
      If Not sI = "" Then
         bOk = iceMain.LoadIconFromLibrary(m_sFile, sI)
      Else
         Exit Sub
      End If
   End If
   If bOk Then
      pAddToMRU m_sFile
   Else
      pRemoveFromMRU m_sFile
   End If
   pShowDevice
   Exit Sub

ErrorHandler:
   MsgBox "Unable to load the file '" & m_sFile & "'" & vbCrLf & vbCrLf &
    Err.Description, vbInformation
   If Not m_sFile = "" Then
      pRemoveFromMRU m_sFile
   End If
   Exit Sub
End Sub

Private Sub mnuHelp_Click(Index As Integer)
   Select Case Index
   Case 0
   Case 2
      frmAbout.Show vbModal, Me
   End Select
End Sub

Private Sub mnuImage_Click(Index As Integer)
Dim sFIle As String
Dim bS As Boolean
Dim cc As New GCommonDialog
   Select Case Index
   Case 0 ' fliphoriz
      iceMain.Mirror
   Case 1 ' flipvert
      iceMain.Flip
   Case 2 ' rotate 90
      iceMain.Rotate90
   Case 3 ' invert
      iceMain.Invert
   Case 5 ' load palette
      If cc.VBGetOpenFileName(sFIle, , , , , , "Palette Files (*.PAL)|*.PAL|All
       Files (*.*)|*.*", , , , "PAL", Me.hwnd) Then
         iceMain.DevicePalette(iceMain.DeviceImage).LoadFromJASCFile sFIle
      End If
   Case 6 ' save palette
      If cc.VBGetSaveFileName(sFIle, , , "Palette Files (*.PAL)|*.PAL|All FI


strictions, blocks should be aligned by 16 bytes
//   which means their size should be >= 16 bytes
pub fn generate_coding_blocks(coding: &mut [&mut [u8]], data: &[&[u8]]) -> Result<()> {
    if data.is_empty() {
        return Ok(());
    }
    let k = data.len() as i32;
    let m = coding.len() as i32;
    let block_len = data[0].len() as i32;
    let matrix: Vec<i32> = get_matrix(m, k, ERASURE_W);
    let mut data_arg = Vec::with_capacity(data.len());
    for block in data {
        if block_len != block.len() as i32 {
            error!(
                "data block size incorrect {} expected {}",
                block.len(),
                block_len
            );
            return Err(ErasureError::InvalidBlockSize);
        }
        data_arg.push(block.as_ptr());
    }
    let mut coding_arg = Vec::with_capacity(coding.len());
    for mut block in coding {
        if block_len != block.len() as i32 {
            error!(
                "coding block size incorrect {} expected {}",
                block.len(),
                block_len
            );
            return Err(ErasureError::InvalidBlockSize);
        }
        coding_arg.push(block.as_mut_ptr());
    }

    unsafe {
        jerasure_matrix_encode(
            k,
            m,
            ERASURE_W,
            matrix.as_ptr(),
            data_arg.as_ptr(),
            coding_arg.as_ptr(),
            block_len,
        );
    }
    Ok(())
}

// Recover data + coding blocks into data blocks
//   data: array of blocks to recover into
//   coding: arry of coding blocks
//   erasures: list of indices in data where blocks should be recovered
pub fn decode_blocks(
    data: &mut [&mut [u8]],
    coding: &mut [&mut [u8]],
    erasures: &[i32],
) -> Result<()> {
    if data.is_empty() {
        return Ok(());
    }
    let block_len = data[0].len();
    let matrix: Vec<i32> = get_matrix(coding.len() as i32, data.len() as i32, ERASURE_W);

    // generate coding pointers, blocks should be the same size
    let mut coding_arg: Vec<*mut u8> = Vec::new();
    for x in coding.iter_mut() {
        if x.len() != block_len {
            return Err(ErasureError::InvalidBlockSize);
        }
        coding_arg.push(x.as_mut_ptr());
    }

    // generate data pointers, blocks should be the same size
    let mut data_arg: Vec<*mut u8> = Vec::new();
    for x in data.iter_mut() {
        if x.len() != block_len {
            return Err(ErasureError::InvalidBlockSize);
        }
        data_arg.push(x.as_mut_ptr());
    }
    let ret = unsafe {
        jerasure_matrix_decode(
            data.len() as i32,
            coding.len() as i32,
            ERASURE_W,
            matrix.as_ptr(),
            0,
            erasures.as_ptr(),
            data_arg.as_ptr(),
            coding_arg.as_ptr(),
            data[0].len() as i32,
        )
    };
    trace!("jerasure_matrix_decode ret: {}", ret);
    for x in data[erasures[0] as usize][0..8].iter() {
        trace!("


return ret;
  }

  final public InitializerDeclaration InitializerDeclaration() {BlockStmt block;
        Position begin = INVALID;
        boolean isStatic = false;
    switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
    case STATIC:{
      jj_consume_token(STATIC);
isStatic = true; begin=tokenBegin();
      break;
      }
    default:
      jj_la1[54] = jj_gen;
      ;
    }
    block = Block();
begin = begin.orIfInvalid(block.getBegin());
return new InitializerDeclaration(range(begin, tokenEnd()), isStatic, block);
  }

/*
 * Type, name and expression syntax follows.
 */
  final public
Type Type() {Type ret;
    if (jj_2_11(2)) {
      ret = ReferenceType();
    } else {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BOOLEAN:
      case BYTE:
      case CHAR:
      case DOUBLE:
      case FLOAT:
      case INT:
      case LONG:
      case SHORT:{
        ret = PrimitiveType();
        break;
        }
      default:
        jj_la1[55] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
return ret;
  }

  final public ReferenceType ReferenceType() {Type type;
        ArrayBracketPair arrayBracketPair;
        List<ArrayBracketPair> arrayBracketPairs = null;
    switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
    case BOOLEAN:
    case BYTE:
    case CHAR:
    case DOUBLE:
    case FLOAT:
    case INT:
    case LONG:
    case SHORT:{
      type = PrimitiveType();
      label_22:
      while (true) {
        arrayBracketPair = ArrayBracketPair();
arrayBracketPairs=add(arrayBracketPairs, arrayBracketPair);
        if (jj_2_12(2)) {
          ;
        } else {
          break label_22;
        }
      }
      break;
      }
    case IDENTIFIER:{
      type = ClassOrInterfaceType();
      label_23:
      while (true) {
        if (jj_2_13(2)) {
          ;
        } else {
          break label_23;
        }
        arrayBracketPair = ArrayBracketPair();
arrayBracketPairs=add(arrayBracketPairs, arrayBracketPair);
      }
      break;
      }
    default:
      jj_la1[56] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
return (ReferenceType)wrapInArrayTypes(type, arrayBracketPairs);
  }

  final public ArrayBracketPair ArrayBracketPair() {List<AnnotationExpr> annotations = null;
    Position begin = INVALID;
    annotations = Annotations();
    jj_consume_token(LBRACKET);
begin = begin.orIfInvalid(tokenBegin());
    jj_consume_token(RBRACKET);
return new ArrayBracketPair(range(begin, tokenEnd()), annotations);
  }

  final public IntersectionType IntersectionType() {Position begin;
        ReferenceType elementType;
        List<ReferenceType> elements = null;
    elementType = ReferenceType();
begin=elementType.getBegin(); elements = add(elements, elementType);
    jj_consume_token(BIT_AND);
    label_24:
    while (true) {
      elementType = ReferenceType();
elements = add(elements, elementType);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BOOLEAN:
      case BYTE:
      case CHAR:
      case DOUBLE:
      case FLOAT:
      ca


ration((ob) => ob.add('5')), "object modified during iteration");
assert.throws(modifyDuringIteration((ob) => ob.put('a', '5')), "object modified during iteration");
assert.throws(modifyDuringIteration((ob) => ob.delete(1)), "object modified during iteration");
assert.throws(modifyDuringIteration((ob) => ob.erase(1)), "object modified during iteration");
assert.throws(modifyDuringIteration((ob) => ob.clear()), "object modified during iteration");

iterTest(new ObjectIter(ob, Values.ITER_KEYS), [0, 1, 2, 3, 'key_a', 'key_b']);
iterTest(new ObjectIter(ob, Values.ITER_ASSOCS),
    [[0, 1], [1, 2], [2, 3], [3, 4], ['key_a', 'a'], ['key_b', 'b']]);
iterTest(new ObjectIter(ob, Values.ITER_KEYS, false, true), ['key_a', 'key_b']);
iterTest(new ObjectIter(ob, Values.ITER_KEYS, true, false), [0, 1, 2, 3]);

// delete & erase
ob = new SuObject([1, 2, 3, 4]);
ob.put('a', 'a');
assert.equal(ob.get(1), 2);
assert.equal(ob.get('a'), 'a');
ob.delete(1);
assert.equal(ob.get(1), 3);
ob.delete('a');
assert.that(!ob["Member?"]('a'));

ob = new SuObject([1, 2, 3, 4]);
ob.put('a', 'a');
assert.equal(ob.get(1), 2);
assert.equal(ob.get('a'), 'a');
ob.erase(1);
assert.that(!ob["Member?"](1));
assert.equal(ob.get(2), 3);
ob.erase('a');
assert.that(!ob["Member?"]('a'));

// Unique!
cmp(new SuObject()["Unique!"](), new SuObject(), 0);
cmp(new SuObject([1, 2, 3])["Unique!"](), new SuObject([1, 2, 3]), 0);
cmp(new SuObject([1, 1, 2, 3, 1])["Unique!"](), new SuObject([1, 2, 3, 1]), 0);

// Reverse!
cmp(makeObj([])["Reverse!"](), makeObj([]), 0);
cmp(makeObj([1, 2, 3])["Reverse!"](), makeObj([3, 2, 1]), 0);
cmp(makeObj([1, 2, 3], ['a', 'a'])["Reverse!"](), makeObj([3, 2, 1], ['a', 'a']), 0);

// Add
ob = makeObj([0, 1, 2], [6, 6], ['a', 'a']);
assert.throws(() => ob.Add(makeObj([], ['invalid', 1])),
    "usage: object.Add(value, ... [ at: position ])");
assert.throws(() => ob.Add(makeObj([], ['at', 1], ['invalid', 1])),
    "usage: object.Add(value, ... [ at: position ])");
assert.throws(() => ob.Add(makeObj([1, 2], ['at', 'a'])),
    "can only Add multiple values to un-named or to numeric positions");
// ob.Add()
cmp(ob.Add(makeObj([])), ob, 0);
// ob.Add(3)
cmp(ob.Add(makeObj([3])), makeObj([0, 1, 2, 3], [6, 6], ['a', 'a']), 0);
// ob.Add(4, 5, at: 4.9) -> migrate
cmp(ob.Add(makeObj([4, 5], ['at', SuNum.fromNumber(4.9)])), makeObj([0, 1, 2, 3, 4, 5, 6], ['a', 'a']), 0);
// ob.Add('b', at: 'b')
cmp(ob.Add(makeObj(['b'], ['at', 'b'])), makeObj([0, 1, 2, 3, 4, 5, 6], ['a', 'a'], ['b', 'b']), 0);


/*
 *  Copyright (c) 2019 The WebRTC project authors. All Rights Reserved.
 *
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */

#ifndef MEDIA_BASE_DELAYABLE_H_
#define MEDIA_BASE_DELAYABLE_H_

#include <stdint.h>

#include "absl/types/optional.h"

namespace cricket {

// Delayable is used by user code through ApplyConstraints algorithm. Its
// methods must take precendence over similar functional in `syncable.h`.
class Delayable {
 public:
  virtual ~Delayable() {}
  // Set base minimum delay of the receive stream with specified ssrc.
  // Base minimum delay sets lower bound on minimum delay value which
  // determines minimum delay until audio playout.
  // Returns false if there is no stream with given ssrc.
  virtual bool SetBaseMinimumPlayoutDelayMs(uint32_t ssrc, int delay_ms) = 0;

  // Returns current value of base minimum delay in milliseconds.
  virtual absl::optional<int> GetBaseMinimumPlayoutDelayMs(
      uint32_t ssrc) const = 0;
};

}  // namespace cricket

#endif  // MEDIA_BASE_DELAYABLE_H_


O makeabuttonsensitive
	.db $9b
.ENDM

; Set the Interaction.textID variable. This text ID can later be shown with
; showloadedtext.
;
; param1[16]	Text ID
.MACRO settextid
	.db $9c
	.dw \1
.ENDM

; Show the text id corresponding to the Interaction.textID variable (set by "settextid").
.MACRO showloadedtext
	.db $9d
.ENDM

; Hold script execution until the A button is pressed while link is next to the
; interaction. Use to wait for npc dialog, etc.
; You must use either "initcollisions" or "makeabuttonsensitive" before you can use this.
.MACRO checkabutton
	.db $9e
.ENDM

; Shows a certain text id depending if the game is linked or unlinked
; param1: the text to show for unlinked games.
; param2: the text to show for linked games.
.MACRO showtextdifferentforlinked
	.db $9f
	.db (\1)>>8, (\1)&$ff, (\2)&$ff

	.if (\1)>>8 != (\2)>>8
		.PRINTT "SCRIPT ERROR: in 'showtextdifferentforlinked' opcode, the text indices were in different groups.\n"
		.FAIL
	.endif
.ENDM

; Holds execution until the given bit of address $cfc0 is set.
; param1:	Bit to check (0-7)
.MACRO checkcfc0bit
	.db $a0 | (\1)
.ENDM

; Xors the given bit in address $cfc0.
; param1:	Bit to xor (0-7)
.MACRO xorcfc0bit
	.db $a8 | (\1)
.ENDM

; Jumps to the specified address if the specified flag(s) in the room are set.
; When the script is loaded into wBigBuffer, this will only work if the
; destination to jump to is already loaded into the buffer.
;
; param1:	Value to AND with the room flags for the check
; param2[16]:	Destination address to jump to if the result is nonzero
.MACRO jumpifroomflagset
	.db $b0, \1
	.dw \2
.ENDM

; OR the room flags with the given value. Used to mark if an event has occured,
; and if so, you can skip it with the "jumpifroomflagset" opcode.
.MACRO orroomflag
	.db $b1, \1
.ENDM

; B2: no command

; Jumps to the specified address if a specified address ($c6xx) AND the given
; value is nonzero.
; When the script is loaded into wBigBuffer, this will only work if the
; destination to jump to is already loaded into the buffer.
;
; param1:	The low byte of the address to read (ie. if address is "$75",
;		corresponding to "<wNumSmallKeys", it will read from $c675.)
; param2:	Value to AND with the address for the check
; param3[16]:	Destination address to jump to if the result is nonzero
.MACRO jumpifc6xxset
	.db $b3
	.db \1, \2
	.dw \3
.ENDM

; Write the given value to an address at $c6xx.
; param1:	Low byte of the address to write to
; param2:	Value to write to the address
.MACRO writec6xx
	.db $b4
	.db \1, \2
.ENDM

; Jump to the specified address if the given global flag is set.
; A list of global flags can be found in "constants/common/globalFlags.s".
;
; param1:	The global flag to check
; param2[16]:	Destination address to jump to if the flag is set
.MACRO jumpifglobalflagset
	.db $b5, \1
	.dw \2
.ENDM

; Sets the specified global flag.
; A list of global flags can be found in "constants/


 = covid_period['date'].str.slice(0, 7)
        avg_covid_aqi = covid_period.groupby('year_month')['AQI'].mean()

        plt.figure(figsize=(12, 6))
        sns.lineplot(data=avg_covid_aqi)
        plt.xlabel('Year-Month')
        plt.ylabel('Average AQI')
        plt.title(f'{city} Average AQI During COVID Period (2019-2022)')
        plt.show()

    # Additional outputs for SMOTE and non-SMOTE methods
    for ratio, data_split in split_data.items():
        for name, model in models.items():
            y_pred = model.predict(scaler.transform(data_split['X_test']))
            y_pred_smote = model.predict(scaler.transform(data_split['X_test_smote']))

            print(f"\n{name} Results for test size {ratio}:")
            print(f"Non-SMOTE - MSE: {mean_squared_error(data_split['y_test'], y_pred):.2f}, MAE: {mean_absolute_error(data_split['y_test'], y_pred):.2f}, R-squared: {r2_score(data_split['y_test'], y_pred):.2f}")
            print(f"SMOTE - MSE: {mean_squared_error(data_split['y_test_smote'], y_pred_smote):.2f}, MAE: {mean_absolute_error(data_split['y_test_smote'], y_pred_smote):.2f}, R-squared: {r2_score(data_split['y_test_smote'], y_pred_smote):.2f}")


x2215;
  t.djecyrillic = 0x0452;
  t.dkshade = 0x2593;
  t.dlinebelow = 0x1e0f;
  t.dlsquare = 0x3397;
  t.dmacron = 0x0111;
  t.dmonospace = 0xff44;
  t.dnblock = 0x2584;
  t.dochadathai = 0x0e0e;
  t.dodekthai = 0x0e14;
  t.dohiragana = 0x3069;
  t.dokatakana = 0x30c9;
  t.dollar = 0x0024;
  t.dollarinferior = 0xf6e3;
  t.dollarmonospace = 0xff04;
  t.dollaroldstyle = 0xf724;
  t.dollarsmall = 0xfe69;
  t.dollarsuperior = 0xf6e4;
  t.dong = 0x20ab;
  t.dorusquare = 0x3326;
  t.dotaccent = 0x02d9;
  t.dotaccentcmb = 0x0307;
  t.dotbelowcmb = 0x0323;
  t.dotbelowcomb = 0x0323;
  t.dotkatakana = 0x30fb;
  t.dotlessi = 0x0131;
  t.dotlessj = 0xf6be;
  t.dotlessjstrokehook = 0x0284;
  t.dotmath = 0x22c5;
  t.dottedcircle = 0x25cc;
  t.doubleyodpatah = 0xfb1f;
  t.doubleyodpatahhebrew = 0xfb1f;
  t.downtackbelowcmb = 0x031e;
  t.downtackmod = 0x02d5;
  t.dparen = 0x249f;
  t.dsuperior = 0xf6eb;
  t.dtail = 0x0256;
  t.dtopbar = 0x018c;
  t.duhiragana = 0x3065;
  t.dukatakana = 0x30c5;
  t.dz = 0x01f3;
  t.dzaltone = 0x02a3;
  t.dzcaron = 0x01c6;
  t.dzcurl = 0x02a5;
  t.dzeabkhasiancyrillic = 0x04e1;
  t.dzecyrillic = 0x0455;
  t.dzhecyrillic = 0x045f;
  t.e = 0x0065;
  t.eacute = 0x00e9;
  t.earth = 0x2641;
  t.ebengali = 0x098f;
  t.ebopomofo = 0x311c;
  t.ebreve = 0x0115;
  t.ecandradeva = 0x090d;
  t.ecandragujarati = 0x0a8d;
  t.ecandravowelsigndeva = 0x0945;
  t.ecandravowelsigngujarati = 0x0ac5;
  t.ecaron = 0x011b;
  t.ecedillabreve = 0x1e1d;
  t.echarmenian = 0x0565;
  t.echyiwnarmenian = 0x0587;
  t.ecircle = 0x24d4;
  t.ecircumflex = 0x00ea;
  t.ecircumflexacute = 0x1ebf;
  t.ecircumflexbelow = 0x1e19;
  t.ecircumflexdotbelow = 0x1ec7;
  t.ecircumflexgrave = 0x1ec1;
  t.ecircumflexhookabove = 0x1ec3;
  t.ecircumflextilde = 0x1ec5;
  t.ecyrillic = 0x0454;
  t.edblgrave = 0x0205;
  t.edeva = 0x090f;
  t.edie


者腰帶",
[24110] = "生命紅寶石墜飾",
[24111] = "克爾肯的皮上衣",
[24112] = "克爾肯鞋",
[24113] = "科倫的親屬護腕",
[24114] = "鑲綴的恆金頸鍊",
[24116] = "夜之眼",
[24117] = "黎明之擁",
[24118] = "阿賈斯徽記",
[24119] = "阿賈斯指環",
[24120] = "阿賈斯徽印",
[24121] = "暮光貓頭鷹項鍊",
[24122] = "翠綠之火頭冠",
[24123] = "秘法之力頭環",
[24124] = "刻像 - 魔鋼野豬",
[24125] = "刻像 - 黎明石蟹",
[24126] = "刻像 - 生命紅寶石巨蛇",
[24127] = "刻像 - 泰拉寶石貓頭鷹",
[24128] = "刻像 - 夜眼石獵豹",
[24129] = "解救皮腰帶",
[24130] = "用舊的軟靴",
[24131] = "微鏽的護腕",
[24132] = "艦隊司令的一封信",
[24133] = "風化的鎖甲外套",
[24134] = "風化的皮外衣",
[24135] = "風化的布甲",
[24136] = "遠行者之弓",
[24138] = "銀弩",
[24139] = "微弱的秘法精華",
[24140] = "燻黑的骨灰甕",
[24141] = "戰舊護手",
[24142] = "戰舊手套",
[24143] = "初學者襯衫",
[24144] = "戰舊手甲",
[24145] = "初學者束褲",
[24146] = "初學者的靴子",
[24150] = "摩克納薩爾迷霧披風",
[24151] = "摩克納薩爾之戒",
[24152] = "燒焦的白骨碎片",
[24153] = "血咒靈魂",
[24154] = "巫魅指環",
[24155] = "厄索之爪",
[24156] = "裝滿的幻光容器",
[24157] = "幻光容器",
[24158] = "設計圖:暗影克銀指環",
[24159] = "設計圖:冰霜克銀指環",
[24160] = "設計圖:克銀煉獄指環",
[24161] = "設計圖:自然克銀指環",
[24162] = "設計圖


本主义中去。当然资本家上台是不可能的，但是许多制度许多思想停留在资产阶级法权当中。工厂办教育是这么回事，不是简单办几个学校的问题，你的工厂能否办学校，表示你有无决心向共产主义走的问题。很难设想全国都向共产主义走、唯有你这一个铁道部不走，那你岂不成了前进的拌脚石了吗？资本主义工厂与社会主义工厂其中有一个重大差别，一种是智力劳动与体力劳动分裂的；一种是智力劳动与体力劳动逐渐结合的，这是一个重要标志。因此，你们应该好好地看看中央的指示，掌握住中央指示的精神与实质，然后拿这个指示，一方面向资产阶级的思想进行斗争，另一方面也检查自己的思想，进行大鸣大放大辩论，进行批评与自我批评。

   如何贯彻执行中央指示，我看总起来有三条：

   一、思想上认清中央指示的精神实质。

   二、拿这个武器，向资产阶级的思想进行斗争，同时以批评与自我批评的精神检查自己。

   三、发动广大群众，依靠广大群众，大鸣大放大辩论，同群众共同商量，找出贯彻执行指示的方法。

   贯彻执行好中央的指示，要解决三个问题：

   首先党委的思想要搞通，提高思想认识，真正做到挂帅，亲自动手去抓，如能够这样，铁路办学校是不难的，比学校办工厂还容易。北戴河会议之后，绝大多数同志都了解了这一条，你们及时地召开了这个会议就是证明，说明部的领导注意了这个问题。各个地方也注意了这个问题，写了许多材料，已看到铁路上有些很好的现象。现在发展到大、中、小学66万人是不得了的事情，而且有许多地方努力研究半工半读的方法这很好，我看了吉林站的经验就感到很好，我看那地方的党委很好，通过群众想了许多办法，试验半工半读的方法，不但是注意了，而且是积极地想办法去实现它。希


gure(EntityTypeBuilder<Blog> builder)
        {

            builder.HasKey(x => x.Id); // Primary Key

            builder.Property(t => t.Id)  //Pk 1-1 arttırma işlemi
              .UseIdentityColumn();

            builder.Property(x => x.BlogTitle)
            .HasMaxLength(100)
            .IsRequired();

            builder.Property(x => x.BlogContent)
            .IsRequired();
        }
    }
}


.proto.MuqadasPotionInfoOuterClass.MuqadasPotionInfo.getDefaultInstance();
        }
      }
      /**
       * .MuqadasPotionInfo muqadas_potion_info = 1350;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.MuqadasPotionInfoOuterClass.MuqadasPotionInfo, emu.grasscutter.net.proto.MuqadasPotionInfoOuterClass.MuqadasPotionInfo.Builder, emu.grasscutter.net.proto.MuqadasPotionInfoOuterClass.MuqadasPotionInfoOrBuilder>
          getMuqadasPotionInfoFieldBuilder() {
        if (muqadasPotionInfoBuilder_ == null) {
          if (!(iKJIPGGMNBKCase_ == 1350)) {
            iKJIPGGMNBK_ = emu.grasscutter.net.proto.MuqadasPotionInfoOuterClass.MuqadasPotionInfo.getDefaultInstance();
          }
          muqadasPotionInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              emu.grasscutter.net.proto.MuqadasPotionInfoOuterClass.MuqadasPotionInfo, emu.grasscutter.net.proto.MuqadasPotionInfoOuterClass.MuqadasPotionInfo.Builder, emu.grasscutter.net.proto.MuqadasPotionInfoOuterClass.MuqadasPotionInfoOrBuilder>(
                  (emu.grasscutter.net.proto.MuqadasPotionInfoOuterClass.MuqadasPotionInfo) iKJIPGGMNBK_,
                  getParentForChildren(),
                  isClean());
          iKJIPGGMNBK_ = null;
        }
        iKJIPGGMNBKCase_ = 1350;
        onChanged();;
        return muqadasPotionInfoBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.TreasureSeelieInfoOuterClass.TreasureSeelieInfo, emu.grasscutter.net.proto.TreasureSeelieInfoOuterClass.TreasureSeelieInfo.Builder, emu.grasscutter.net.proto.TreasureSeelieInfoOuterClass.TreasureSeelieInfoOrBuilder> treasureSeelieInfoBuilder_;
      /**
       * .TreasureSeelieInfo treasure_seelie_info = 1142;
       * @return Whether the treasureSeelieInfo field is set.
       */
      @java.lang.Override
      public boolean hasTreasureSeelieInfo() {
        return iKJIPGGMNBKCase_ == 1142;
      }
      /**
       * .TreasureSeelieInfo treasure_seelie_info = 1142;
       * @return The treasureSeelieInfo.
       */
      @java.lang.Override
      public emu.grasscutter.net.proto.TreasureSeelieInfoOuterClass.TreasureSeelieInfo getTreasureSeelieInfo() {
        if (treasureSeelieInfoBuilder_ == null) {
          if (iKJIPGGMNBKCase_ == 1142) {
            return (emu.grasscutter.net.proto.TreasureSeelieInfoOuterClass.TreasureSeelieInfo) iKJIPGGMNBK_;
          }
          return emu.grasscutter.net.proto.TreasureSeelieInfoOuterClass.TreasureSeelieInfo.getDefaultInstance();
        } else {
          if (iKJIPGGMNBKCase_ == 1142) {
            return treasureSeelieInfoBuilder_.getMessage();
          }
          return emu.grasscutter.net.proto.TreasureSeelieInfoOuterClass.TreasureSeelieInfo.getDefaultInstance();
        }
      }
      /**
       * .TreasureSeelieInfo treasure_seelie_info = 1142;
       */
      public Builder setTreasureSeel


.MessageLevel Enumeration</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Logger.MessageLevel enumeration" /><meta name="System.Keywords" content="AsterNET.Logger.MessageLevel enumeration" /><meta name="System.Keywords" content="Info enumeration member" /><meta name="System.Keywords" content="Warning enumeration member" /><meta name="System.Keywords" content="Error enumeration member" /><meta name="System.Keywords" content="Debug enumeration member" /><meta name="Microsoft.Help.F1" content="AsterNET.Logger.MessageLevel" /><meta name="Microsoft.Help.F1" content="AsterNET.Logger.MessageLevel.Info" /><meta name="Microsoft.Help.F1" content="AsterNET.Logger.MessageLevel.Warning" /><meta name="Microsoft.Help.F1" content="AsterNET.Logger.MessageLevel.Error" /><meta name="Microsoft.Help.F1" content="AsterNET.Logger.MessageLevel.Debug" /><meta name="Microsoft.Help.Id" content="T:AsterNET.Logger.MessageLevel" /><meta name="Description" content="summaryT:AsterNET.Logger.MessageLevel" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="AsterNET" /><meta name="file" content="T_AsterNET_Logger_MessageLevel" /><meta name="guid" content="T_AsterNET_Logger_MessageLevel" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><input type="hidden" id="userDataCache" class="userDataStyle" />
AsterNet Class Library (Sandcastle documentation)<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form>

AsterNet Class Library (Sandcastle documentation)

AsterNET

Common Class

Logger Class

<a data-tochassubtree="false" href="T_AsterNET_Logger_MessageLevel.htm" title="Logger.MessageLevel Enumeration" tocid="T_Aste


43M18 6C19.1 6 20 5.1 20 4S19.1 2 18 2 16 2.9 16 4 16.9 6 18 6M22 9.43C22 8.62 21.5 7.9 20.78 7.58C19.93 7.21 19 7 18 7S16.07 7.21 15.22 7.58C14.5 7.9 14 8.62 14 9.43V10H22V9.43M19 17V15H5V17L2 14L5 11V13H19V11L22 14L19 17M10 19V18H7.5C7.22 18 7 18.22 7 18.5V21.5C7 21.78 7.22 22 7.5 22H9.5C9.78 22 10 21.78 10 21.5V20C10 19.72 9.78 19.5 9.5 19.5H8V19H10M9 20.5V21H8V20.5H9M17.5 19H16.5V22H15.5V19H14.5V18H17.5V19M12.5 19V19.5H13.5V20.5H12.5V22H11.5V18H14V19H12.5Z",mdiSofa:"M12.5 7C12.5 5.89 13.39 5 14.5 5H18C19.1 5 20 5.9 20 7V9.16C18.84 9.57 18 10.67 18 11.97V14H12.5V7M6 11.96V14H11.5V7C11.5 5.89 10.61 5 9.5 5H6C4.9 5 4 5.9 4 7V9.15C5.16 9.56 6 10.67 6 11.96M20.66 10.03C19.68 10.19 19 11.12 19 12.12V15H5V12C5 10.9 4.11 10 3 10S1 10.9 1 12V17C1 18.1 1.9 19 3 19V21H5V19H19V21H21V19C22.1 19 23 18.1 23 17V12C23 10.79 21.91 9.82 20.66 10.03Z",mdiSofaOutline:"M21 9V7C21 5.35 19.65 4 18 4H14C13.23 4 12.53 4.3 12 4.78C11.47 4.3 10.77 4 10 4H6C4.35 4 3 5.35 3 7V9C1.35 9 0 10.35 0 12V17C0 18.65 1.35 20 3 20V22H5V20H19V22H21V20C22.65 20 24 18.65 24 17V12C24 10.35 22.65 9 21 9M14 6H18C18.55 6 19 6.45 19 7V9.78C18.39 10.33 18 11.12 18 12V14H13V7C13 6.45 13.45 6 14 6M5 7C5 6.45 5.45 6 6 6H10C10.55 6 11 6.45 11 7V14H6V12C6 11.12 5.61 10.33 5 9.78V7M22 17C22 17.55 21.55 18 21 18H3C2.45 18 2 17.55 2 17V12C2 11.45 2.45 11 3 11S4 11.45 4 12V16H20V12C20 11.45 20.45 11 21 11S22 11.45 22 12V17Z",mdiSofaSingle:"M5 9.15V7C5 5.9 5.9 5 7 5H17C18.1 5 19 5.9 19 7V9.16C17.84 9.57 17 10.67 17 11.97V14H7V11.96C7 10.67 6.16 9.56 5 9.15M20 10C18.9 10 18 10.9 18 12V15H6V12C6 10.9 5.11 10 4 10S2 10.9 2 12V17C2 18.1 2.9 19 4 19


from django.urls import path
from . import views

urlpatterns = [
    #path('leaderboard/', views.leaderboard, name='leaderboard'),
    path('', views.leaderboard, name='leaderboard'),
]


unąć. Szkoda tylko tracić listy autorów.

Jak widać, jest to sprawa dość skomplikowana i z pewnością warta przedyskutowania, więc zdecydowałem się napisać o niej tutaj. Z góry przepraszam, jeśli wybrałem nieodpowiednią sekcję kawiarenki. GregX21 (dyskusja) 19:49, 4 paź 2018 (CEST)(discussiontools-replybutton)

Sądzę, że artykuł można przenieść do Mozilla (nazwa) i problem rozwiązany. Piolodiusz (<a href="//pl.wikipedi


let memory_properties =
      vk::MemoryPropertyFlags::HOST_VISIBLE | vk::MemoryPropertyFlags::HOST_COHERENT;
    let usage = vk::BufferUsageFlags::TRANSFER_SRC;

    Buffer::new_generic(device, data, memory_properties, usage)
  }

  pub fn new_uniform_buffer(device: &VkDevice, data: &Vec<T>) -> Buffer<T> {
    let memory_properties =
      vk::MemoryPropertyFlags::HOST_VISIBLE | vk::MemoryPropertyFlags::HOST_COHERENT;
    let usage = vk::BufferUsageFlags::UNIFORM_BUFFER;

    Buffer::new_generic(device, data.to_vec(), memory_properties, usage)
  }

  pub fn new_storage_buffer(device: &VkDevice, data: &Vec<T>) -> Buffer<T> {
    let memory_properties =
      vk::MemoryPropertyFlags::HOST_VISIBLE | vk::MemoryPropertyFlags::HOST_COHERENT;
    let usage = vk::BufferUsageFlags::STORAGE_BUFFER;

    Buffer::new_generic(device, data.to_vec(), memory_properties, usage)
  }

  fn create_buffer(device: &VkDevice, usage: vk::BufferUsageFlags, data: &Vec<T>) -> vk::Buffer {
    let buffer_info = vk::BufferCreateInfo::builder()
      .size(std::mem::size_of::<T>() as u64 * (data.len() as u64))
      .usage(usage)
      .sharing_mode(vk::SharingMode::EXCLUSIVE);

    unsafe { device.internal().create_buffer(&buffer_info, None).unwrap() }
  }

  pub fn destroy(&self, device: &VkDevice) {
    self.memory.destroy(device);
    unsafe {
      device.internal().destroy_buffer(self.buffer, None);
    }
  }

  pub fn internal(&self) -> &vk::Buffer {
    &self.buffer
  }

  pub fn set_data(&mut self, data: Vec<T>) {
    self.data = data;
  }

  pub fn data(&self) -> &Vec<T> {
    &self.data
  }

  pub fn usage(&self) -> vk::BufferUsageFlags {
    self.usage_flag
  }

  pub fn descriptor_usage(&self) -> vk::DescriptorType {
    match self.usage() {
      vk::BufferUsageFlags::STORAGE_BUFFER => vk::DescriptorType::STORAGE_BUFFER,
      vk::BufferUsageFlags::UNIFORM_BUFFER => vk::DescriptorType::UNIFORM_BUFFER,
      bt => {
        panic!(
          "You cannot update buffer of type: {:?}, Must be type {:?} or {:?}",
          bt,
          vk::BufferUsageFlags::STORAGE_BUFFER,
          vk::BufferUsageFlags::UNIFORM_BUFFER
        );
      }
    }
  }
}

pub struct BufferBuilder<T: Sized + Copy> {
  usage: vk::BufferUsageFlags,
  memory_properties: vk::MemoryPropertyFlags,
  data: Vec<T>,
}

impl<T: Sized + Copy> BufferBuilder<T> {
  pub fn new() -> BufferBuilder<T> {
    BufferBuilder {
      usage: Default::default(),
      memory_properties: Default::default(),
      data: Vec::new(),
    }
  }

  pub fn data(mut self, data: Vec<T>) -> BufferBuilder<T> {
    self.data = data;
    self
  }

  pub fn usage_index_buffer(mut self) -> BufferBuilder<T> {
    self.usage = vk::BufferUsageFlags::INDEX_BUFFER;
    self
  }

  pub fn usage_vertex_buffer(mut self) -> BufferBuilder<T> {
    self.usage = vk::BufferUsageFlags::VERTEX_BUFFER;
    self
  }

  pub fn usage_transfer_src(mut self) -> BufferBuilder<T> {
    self.usage = vk::


clientId");

      if (mounted) {
        setState(() {
          _statusText = "Connecting...";
        });
      }

      _webSocketChannel = WebSocketChannel.connect(Uri.parse(wsUrl));

      // Listen for messages from server
      _webSocketSubscription = _webSocketChannel?.stream.listen(
        (data) {
          // Connection successful - set connected on first message
          if (!_isConnected && mounted) {
            setState(() {
              _isConnected = true;
              _statusText = context.l10n.connectedReadyToListen;
            });
          }
          _handleWebSocketMessage(data);
        },
        onError: (error) => _handleWebSocketError(error),
        onDone: () => _handleWebSocketClosed(),
      );

      // Wait a bit to see if connection is successful
      await Future.delayed(const Duration(seconds: 2));

      // If still not connected after delay, it means there might be an issue
      if (!_isConnected && mounted) {
        setState(() {
          _statusText = "Checking connection...";
        });

        // Send a test message to verify connection
        try {
          _webSocketChannel?.sink.add(
            jsonEncode({"type": "test", "message": "connection_test"}),
          );

          if (mounted) {
            setState(() {
              _isConnected = true;
              _statusText = context.l10n.connectedReadyToListen;
            });
          }
        } catch (e) {
          throw Exception("Failed to send test message: $e");
        }
      }
    } catch (e) {
      logger.e("WebSocket connection error: $e", e);
      if (mounted) {
        setState(() {
          _isConnected = false;
          _statusText = "Failed to connect. Tap to retry.";
        });
      }
    }
  }

  /// Disconnect WebSocket
  Future<void> _disconnectWebSocket() async {
    _webSocketSubscription?.cancel();
    _webSocketSubscription = null;
    await _webSocketChannel?.sink.close();
    _webSocketChannel = null;
    if (mounted) {
      setState(() {
        _isConnected = false;
        _statusText = context.l10n.tapToStartSpeaking;
      });
    }
  }

  /// Handle incoming WebSocket messages
  void _handleWebSocketMessage(dynamic data) {
    try {
      final message = jsonDecode(data);
      logger.d("Received message: $message");

      switch (message['type']) {
        case 'transcription':
          _setState(
            VoiceChatState.idle,
            statusText: "You said: \"${message['text']}\"",
          );
          break;
        case 'response_audio':
          _playResponseAudio(message['data']);
          if (message['text'] != null) {
            _setState(
              VoiceChatState.aiSpeaking,
              statusText: "AI: \"${message['text']}\"",
            );
          }
          break;
        case 'processing':
          _setState(
            VoiceChatState.aiSpeaking,
            statusText: message['message'] ?? 'AI is thinking...',
          );
          break;
        case 'pong':
          logger.d("🏓 Pong received from server");
          if (mounted) {
            setState(() {
              _statusText = "Connection verified ✓ - Ready to talk";
            });
          }
          // Reset to ready state after 2 seconds
          Future.delayed(const Duration(seconds: 2), () {
            if (mounted && _currentState.isIdle) {
              setState(() {
                _statusText = context.l10n.tapToStartSpeaking;
              });
            }
          });
          break;
        case 'error':
          _setState(
            VoiceChatState.idle,
            statusText: "Error occurred - Try again",
          );
          break;