 source and available under the MIT license. See the LICENSE file for more info.
 *
 * Created by caiof on 10/5/2019.
 */
package com.adyen.checkout.adyen3ds2.internal.data.model

import com.adyen.checkout.core.old.exception.ModelSerializationException
import com.adyen.checkout.core.old.internal.data.model.ModelObject
import com.adyen.checkout.core.old.internal.data.model.getStringOrNull
import kotlinx.parcelize.Parcelize
import org.json.JSONException
import org.json.JSONObject

@Parcelize
internal data class ChallengeToken(
    var acsReferenceNumber: String? = null,
    var acsSignedContent: String? = null,
    var acsTransID: String? = null,
    var acsURL: String? = null,
    var messageVersion: String? = null,
    var threeDSServerTransID: String? = null
) : ModelObject() {

    companion object {
        private const val ACS_REFERENCE_NUMBER = "acsReferenceNumber"
        private const val ACS_SIGNED_CONTENT = "acsSignedContent"
        private const val ACS_TRANS_ID = "acsTransID"
        private const val ACS_URL = "acsURL"
        private const val MESSAGE_VERSION = "messageVersion"
        private const val THREEDS_SERVER_TRANS_ID = "threeDSServerTransID"

        @JvmField
        val SERIALIZER: Serializer<ChallengeToken> = object : Serializer<ChallengeToken> {
            override fun serialize(modelObject: ChallengeToken): JSONObject {
                return try {
                    JSONObject().apply {
                        putOpt(ACS_REFERENCE_NUMBER, modelObject.acsReferenceNumber)
                        putOpt(ACS_SIGNED_CONTENT, modelObject.acsSignedContent)
                        putOpt(ACS_TRANS_ID, modelObject.acsTransID)
                        putOpt(ACS_URL, modelObject.acsURL)
                        putOpt(MESSAGE_VERSION, modelObject.messageVersion)
                        putOpt(THREEDS_SERVER_TRANS_ID, modelObject.threeDSServerTransID)
                    }
                } catch (e: JSONException) {
                    throw ModelSerializationException(ChallengeToken::class.java, e)
                }
            }

            override fun deserialize(jsonObject: JSONObject): ChallengeToken {
                return try {
                    ChallengeToken(
                        acsReferenceNumber = jsonObject.getStringOrNull(ACS_REFERENCE_NUMBER),
                        acsSignedContent = jsonObject.getStringOrNull(ACS_SIGNED_CONTENT),
                        acsTransID = jsonObject.getStringOrNull(ACS_TRANS_ID),
                        acsURL = jsonObject.getStringOrNull(ACS_URL),
                        messageVersion = jsonObject.getStringOrNull(MESSAGE_VERSION),
                        threeDSServerTransID = jsonObject.getStringOrNull(THREEDS_SERVER_TRANS_ID)
                    )
                } catch (e: JSONException) {
                    throw ModelSerializationException(ChallengeToken::class.java, e)
                }
            }
        }
    }
}
/*
 * Copyright (c) 2024 Adyen N.V.
 *
 * This file is open source and available under the MIT license. See the LICENSE file for more info.
 *
 * Created by ozgur on 4/10/2024.
 */

package com.adyen.checkout.core.old.ui.validation

import androidx.annotation.RestrictTo
import com.adyen.checkout.core.old.internal.util.StringUtil

object CardNumberValidator {

    // Luhn Check
    private const val RADIX = 10
    private const val FIVE_DIGIT = 5

    // Card Number
    private const val MINIMUM_CARD_NUMBER_LENGTH = 12

    @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
    const val MAXIMUM_CARD_NUMBER_LENGTH = 19

    /**
     * Validate card number.
     *
     * @param number Card numb


pg = pg or {}
pg.equip_data_statistics_302 = {
	[44152] = {
		anti_siren = 200,
		damage = "132 x 2",
		base = 44140,
		id = 44152,
		weapon_id = {
			44152
		}
	},
	[44153] = {
		anti_siren = 300,
		damage = "132 x 2",
		base = 44140,
		id = 44153,
		weapon_id = {
			44153
		}
	},
	[44200] = {
		name = "Prototype 406mm SK C/34 Main Gun Mount",
		speciality = "Volley",
		type = 4,
		tech = 0,
		descrip = "No description",
		value_2 = 45,
		icon = "44200",
		attribute_2 = "cannon",
		rarity = 5,
		damage = "58 x 2",
		nationality = 4,
		ammo = 2,
		value_3 = 0,
		id = 44200,
		torpedo_ammo = 0,
		property_rate = {},
		ammo_icon = {
			3
		},
		ammo_info = {
			{
				2,
				1502
			}
		},
		equip_info = {
			1,
			2,
			6,
			10,
			11,
			12
		},
		weapon_id = {
			44200
		},
		skill_id = {},
		part_main = {
			4,
			5,
			10,
			13
		},
		part_sub = {},
		equip_parameters = {},
		label = {
			"KMS",
			"BB",
			"MG",
			"HE"
		}
	},
	[44201] = {
		id = 44201,
		damage = "68 x 2",
		base = 44200,
		weapon_id = {
			44201
		}
	},
	[44202] = {
		id = 44202,
		damage = "76 x 2",
		base = 44200,
		weapon_id = {
			44202
		}
	},
	[44203] = {
		id = 44203,
		damage = "86 x 2",
		base = 44200,
		weapon_id = {
			44203
		}
	},
	[44204] = {
		id = 44204,
		damage = "96 x 2",
		base = 44200,
		weapon_id = {
			44204
		}
	},
	[44205] = {
		id = 44205,
		damage = "106 x 2",
		base = 44200,
		weapon_id = {
			44205
		}
	},
	[44206] = {
		id = 44206,
		damage = "11


i3,<x13=%l1,>y5=%l5
add %i3,%l1,%l5

# qhasm: y0 = (uint32) y0 >> 14
# asm 1: srl <y0=int64#17,14,>y0=int64#17
# asm 2: srl <y0=%l0,14,>y0=%l0
srl %l0,14,%l0

# qhasm: 				x6 ^= y6
# asm 1: xor <x6=int64#11,<y6=int64#13,>x6=int64#11
# asm 2: xor <x6=%o1,<y6=%o3,>x6=%o1
xor %o1,%o3,%o1

# qhasm: 						y11 |= z11
# asm 1: or  <y11=int64#12,<z11=int64#23,>y11=int64#12
# asm 2: or  <y11=%o2,<z11=%l6,>y11=%o2
or  %o2,%l6,%o2

# qhasm: 				y10 = x6 + x2
# asm 1: add <x6=int64#11,<x2=int64#7,>y10=int64#13
# asm 2: add <x6=%o1,<x2=%g1,>y10=%o3
add %o1,%g1,%o3

# qhasm: 		z5 = (uint32) y5 << 18
# asm 1: sll <y5=int64#22,18,>z5=int64#23
# asm 2: sll <y5=%l5,18,>z5=%l6
sll %l5,18,%l6

# qhasm: 						x11 ^= y11
# asm 1: xor <x11=int64#16,<y11=int64#12,>x11=int64#12
# asm 2: xor <x11=%o7,<y11=%o2,>x11=%o2
xor %o7,%o2,%o2

# qhasm: 		y5 = (uint32) y5 >> 14
# asm 1: srl <y5=int64#22,14,>y5=int64#16
# asm 2: srl <y5=%l5,14,>y5=%o7
srl %l5,14,%o7

# qhasm: y0 |= z0
# asm 1: or  <y0=int64#17,<z0=int64#19,>y0=int64#17
# asm 2: or  <y0=%l0,<z0=%l2,>y0=%l0
or  %l0,%l2,%l0

# qhasm: 				z10 = (uint32) y10 << 18
# asm 1: sll <y10=int64#13,18,>z10=int64#19
# asm 2: sll <y10=%o3,18,>z10=%l2
sll %o3,18,%l2

# qhasm: 						y15 = x11 + x7
# asm 1: add <x11=int64#12,<x7=int64#9,>y15=int64#22
# asm 2: add <x11=%o2,<x7=%g5,>y15=%l5
add %o2,%g5,%l5

# qhasm: 				y10 = (uint32) y10 >> 14
# asm 1: srl <y10=int64#13,14,>y10=int64#13
# asm 2: srl <y10=%o3,14,>y10=%o3
srl %o3,14,%o3

# qhasm: x0 ^= y0
# asm 1: xor <x0=int64#3,<y0=int64


ue(quote) > 127) {
        throw new IllegalArgumentException("Only ASCII characters are currently supported");
      }
      this.quote = (byte) quote;
      return this;
    }

    /**
     * Quote style to expect in the input CSV data.
     *
     * Note: Only the following quoting styles are supported:
     *   1. MINIMAL: String columns containing special characters like row-delimiters/
     *               field-delimiter/quotes will be quoted.
     *   2. NONE: No quoting is done for any columns.
     */
    public Builder withQuoteStyle(QuoteStyle quoteStyle) {
      if (quoteStyle != QuoteStyle.MINIMAL && quoteStyle != QuoteStyle.NONE) {
        throw new IllegalArgumentException("Only MINIMAL and NONE quoting styles are supported");
      }
      this.quoteStyle = quoteStyle;
      return this;
    }

    /**
     * Set the character that starts the beginning of a comment line. setting to
     * 0 or '\0' will disable comments. The default is to have no comments.
     */
    public Builder withComment(char comment) {
      if (Character.getNumericValue(quote) > 127) {
        throw new IllegalArgumentException("Only ASCII characters are currently supported");
      }
      this.comment = (byte) comment;
      return this;
    }

    public Builder withoutComments() {
      this.comment = 0;
      return this;
    }

    public Builder withNullValue(String... nvs) {
      for (String nv : nvs) {
        nullValues.add(nv);
      }
      return this;
    }

    public Builder withTrueValue(String... tvs) {
      for (String tv : tvs) {
        trueValues.add(tv);
      }
      return this;
    }

    public Builder withFalseValue(String... fvs) {
      for (String fv : fvs) {
        falseValues.add(fv);
      }
      return this;
    }

    public CSVOptions build() {
      return new CSVOptions(this);
    }
  }
}
/*
 *
 *  Copyright (c) 2021, NVIDIA CORPORATION.
 *
 *  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 ai.rapids.cudf;

/**
 * A replacement policy for a specific column
 */
public class ReplacePolicyWithColumn {
  final int column;
  final ReplacePolicy policy;

  ReplacePolicyWithColumn(int column, ReplacePolicy policy) {
    this.column = column;
    this.policy = policy;
  }

  @Override
  public boolean equals(Object other) {
    if (!(other instanceof ReplacePolicyWithColumn)) {
      return false;
    }
    ReplacePolicyWithColumn ro = (ReplacePolicyWithColumn)other;
    return this.column == ro.column && this.policy.equals(ro.policy);
  }

  @Override
  public int hashCode() {
    return 31 * column + policy.hashCode();
  }
}
/*
 *
 *  Copyright (c) 2019, NVIDIA CORPORATION.
 *
 *  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


(byte colorA) {
        this.colorA = colorA;
    }

    public double getX1() {
        return x1;
    }
    public void setX1(double x1) {
        this.x1 = x1;
    }
    public double getX2() {
        return x2;
    }
    public void setX2(double x2) {
        this.x2 = x2;
    }
    public double getY1() {
        return y1;
    }
    public void setY1(double y1) {
        this.y1 = y1;
    }
    public double getY2() {
        return y2;
    }
    public void setY2(double y2) {
        this.y2 = y2;
    }

    public DrawMessage(int type, byte colorR, byte colorG, byte colorB,
            byte colorA, double thickness, double x1, double x2, double y1,
            double y2) {

        this.type = type;
        this.colorR = colorR;
        this.colorG = colorG;
        this.colorB = colorB;
        this.colorA = colorA;
        this.thickness = thickness;
        this.x1 = x1;
        this.x2 = x2;
        this.y1 = y1;
        this.y2 = y2;
    }

    /**
     * Draws this DrawMessage onto the given Graphics2D.
     *
     * @param g The target for the DrawMessage
     */
    public void draw(Graphics2D g) {

        g.setStroke(new BasicStroke((float) thickness,
                BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER));
        g.setColor(new Color(colorR & 0xFF, colorG & 0xFF, colorB & 0xFF,
                colorA & 0xFF));

        if (x1 == x2 && y1 == y2) {
            // Always draw as arc to meet the behavior in the HTML5 Canvas.
            Arc2D arc = new Arc2D.Double(x1, y1, 0, 0,
                    0d, 360d, Arc2D.OPEN);
            g.draw(arc);

        } else if (type == 1 || type == 2) {
            // Draw a line.
            Line2D line = new Line2D.Double(x1, y1, x2, y2);
            g.draw(line);

        } else if (type == 3 || type == 4) {
            double x1 = this.x1, x2 = this.x2,
                    y1 = this.y1, y2 = this.y2;
            if (x1 > x2) {
                x1 = this.x2;
                x2 = this.x1;
            }
            if (y1 > y2) {
                y1 = this.y2;
                y2 = this.y1;
            }

            // TODO: If (x1 == x2 || y1 == y2) draw as line.

            if (type == 3) {
                // Draw a rectangle.
                Rectangle2D rect = new Rectangle2D.Double(x1, y1,
                        x2 - x1, y2 - y1);
                g.draw(rect);

            } else if (type == 4) {
                // Draw an ellipse.
                Arc2D arc = new Arc2D.Double(x1, y1, x2 - x1, y2 - y1,
                        0d, 360d, Arc2D.OPEN);
                g.draw(arc);

            }
        }
    }

    /**
     * Converts this message into a String representation that
     * can be sent over WebSocket.<br>
     * Since a DrawMessage consists only of numbers,
     * we concatenate those numbers with a ",".
     */
    @Override
    public String toString() {

        return type + "," + (colorR & 0xFF) + "," + (colorG & 0xFF) + ","
                + (colorB & 0xFF) + "," + (colorA & 0xFF) + "," + thickness
                + "," + x1 + "," + y1 + "," + x2 + "," + y2;
    }

    public static DrawMessage parseFromString(String str)
            throws ParseException {

        int type;
        byte[] colors = new byte[4];
        double thickness;
        double[] coords = new double[4];

        try {
            String[] elements = str.split(",");

            type = Integer.parseInt(elements[0]);
            if (!(type


);
                break;
            case TYPE_PTR:
                switch (ie->access) {
                case IOC_R:
                    print_pointer(arg2, 1);
                    break;
                case IOC_W:
                case IOC_RW:
                    arg_type++;
                    target_size = thunk_type_size(arg_type, 0);
                    argptr = lock_user(VERIFY_READ, arg2, target_size, 1);
                    if (argptr) {
                        thunk_print(argptr, arg_type);
                        unlock_user(argptr, arg2, target_size);
                    } else {
                        print_pointer(arg2, 1);
                    }
                    break;
                }
                break;
            default:
                g_assert_not_reached();
            }
        }
    }
    print_syscall_epilogue(name);
}
#endif

/*
 * An array of all of the syscalls we know about
 */

static const struct syscallname scnames[] = {
#include "strace.list"
};

static int nsyscalls = ARRAY_SIZE(scnames);

/*
 * The public interface to this module.
 */
void
print_syscall(CPUArchState *cpu_env, int num,
              abi_long arg1, abi_long arg2, abi_long arg3,
              abi_long arg4, abi_long arg5, abi_long arg6)
{
    int i;
    FILE *f;
    const char *format = "%s(" TARGET_ABI_FMT_ld "," TARGET_ABI_FMT_ld ","
                               TARGET_ABI_FMT_ld "," TARGET_ABI_FMT_ld ","
                               TARGET_ABI_FMT_ld "," TARGET_ABI_FMT_ld ")";

    f = qemu_log_trylock();
    if (!f) {
        return;
    }
    fprintf(f, "%d ", getpid());

    for (i = 0; i < nsyscalls; i++) {
        if (scnames[i].nr == num) {
            if (scnames[i].call != NULL) {
                scnames[i].call(cpu_env, &scnames[i], arg1, arg2, arg3,
                                arg4, arg5, arg6);
            } else {
                /* XXX: this format system is broken because it uses
                   host types and host pointers for strings */
                if (scnames[i].format != NULL) {
                    format = scnames[i].format;
                }
                fprintf(f, format, scnames[i].name, arg1, arg2,
                        arg3, arg4, arg5, arg6);
            }
            qemu_log_unlock(f);
            return;
        }
    }
    fprintf(f, "Unknown syscall %d\n", num);
    qemu_log_unlock(f);
}

void
print_syscall_ret(CPUArchState *cpu_env, int num, abi_long ret,
                  abi_long arg1, abi_long arg2, abi_long arg3,
                  abi_long arg4, abi_long arg5, abi_long arg6)
{
    int i;
    FILE *f;

    f = qemu_log_trylock();
    if (!f) {
        return;
    }

    for (i = 0; i < nsyscalls; i++) {
        if (scnames[i].nr == num) {
            if (scnames[i].result != NULL) {
                scnames[i].result(cpu_env, &scnames[i], ret,
                                  arg1, arg2, arg3,
                                  arg4, arg5, arg6);
            } else {
                if (!print_syscall_err(ret)) {
                    fprintf(f, TARGET_ABI_FMT_ld, ret);
                }
                fprintf(f, "\n");
            }
            break;
        }
    }
    qemu_log_unlock(f);
}

void print_taken_signal(int target_signum, const target_siginfo_t *tinfo)
{
    /* Print the strace output for a signal being taken:
     * --- SIGSEGV {si_signo=SIGSEGV, si_code=SI_KERNEL, si_addr=0} ---
     */
    FILE *f;

    f = qemu_log_trylock();
    if (!f) {
        return;
    }

    fprintf(f, "--- ");
    print_signal(target_signum, 1);
    fprintf(f, " ");
    print_siginfo(tinfo);
    fprintf(f, " ---\n");
    qemu_log_unlock(f);
}


 - 1;
  return _Oi;
};
_.gt = function PGe() {
  var a;
  jei[a = ++kei] = PGe;
  kei = a - 1;
  return aPi;
};
_.ht = function QGe() {
  var a;
  jei[a = ++kei] = QGe;
  kei = a - 1;
  return bPi;
};
_.it = function RGe() {
  var a;
  jei[a = ++kei] = RGe;
  kei = a - 1;
  return cPi;
};
_.jt = function SGe() {
  var a;
  jei[a = ++kei] = SGe;
  kei = a - 1;
  return dPi;
};
_.kt = function TGe() {
  var a;
  jei[a = ++kei] = TGe;
  kei = a - 1;
  return ePi;
};
_.lt = function UGe() {
  var a;
  jei[a = ++kei] = UGe;
  kei = a - 1;
  return fPi;
};
_.mt = function VGe() {
  var a;
  jei[a = ++kei] = VGe;
  kei = a - 1;
  return gPi;
};
_.nt = function WGe() {
  var a;
  jei[a = ++kei] = WGe;
  kei = a - 1;
  return hPi;
};
_.ot = function XGe() {
  var a;
  jei[a = ++kei] = XGe;
  kei = a - 1;
  return iPi;
};
_.pt = function YGe() {
  var a;
  jei[a = ++kei] = YGe;
  kei = a - 1;
  return jPi;
};
_.qt = function ZGe() {
  var a;
  jei[a = ++kei] = ZGe;
  kei = a - 1;
  return kPi;
};
_.rt = function $Ge() {
  var a;
  jei[a = ++kei] = $Ge;
  kei = a - 1;
  return lPi;
};
_.st = function _Ge() {
  var a;
  jei[a = ++kei] = _Ge;
  kei = a - 1;
  return mPi;
};
_.tt = function aHe() {
  var a;
  jei[a = ++kei] = aHe;
  kei = a - 1;
  return nPi;
};
_.ut = function bHe() {
  var a;
  jei[a = ++kei] = bHe;
  kei = a - 1;
  return oPi;
};
_.vt = function cHe() {
  var a;
  jei[a = ++kei] = cHe;
  kei = a - 1;
  return pPi;
};
_.wt = function dHe() {
  var a;
  jei[a = ++kei] = dHe;
  kei = a - 1;
  return qPi;
};
_.xt = function eHe() {
  var a;
  jei[a = ++kei] = eHe;
  kei = a - 1;
  return rPi;
};
_.yt = function fHe() {
  var a;
  jei[a = ++kei] = fHe;
  kei = a - 1;
  return sPi;
};
_.zt = function gHe() {
  var a;
  jei[a = ++kei] = gHe;
  kei = a - 1;
  return tPi;
};
_.At = function hHe() {
  var a;
  jei[a = ++kei] = hHe;
  kei = a - 1;
  return uPi;
};
_.Bt = function iHe() {
  v


ebvq13ErfFgevatCbby9fgevat8NgRzCz
.type b__MAX7naqebvq13ErfFgevatCbby9fgevat8NgRzCz,%function
b__MAX7naqebvq13ErfFgevatCbby9fgevat8NgRzCz:
nop
.text
.globl b__MA7naqebvq12ErfKZYCnefre19frgFbheprErfbheprVqRw
.type b__MA7naqebvq12ErfKZYCnefre19frgFbheprErfbheprVqRw,%function
b__MA7naqebvq12ErfKZYCnefre19frgFbheprErfbheprVqRw:
nop
.text
.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR12qb_pbafgehpgRCiz
.type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR12qb_pbafgehpgRCiz,%function
b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR12qb_pbafgehpgRCiz:
nop
.text
.globl b__MAX7naqebvq8ErfGnoyr16vfCnpxntrQlanzvpRu
.type b__MAX7naqebvq8ErfGnoyr16vfCnpxntrQlanzvpRu,%function
b__MAX7naqebvq8ErfGnoyr16vfCnpxntrQlanzvpRu:
nop
.data
.globl b__MGPA7naqebvq22QvfcynlRiragQvfcngpureR0_AF_14YbbcrePnyyonpxR
.type b__MGPA7naqebvq22QvfcynlRiragQvfcngpureR0_AF_14YbbcrePnyyonpxR,%object
b__MGPA7naqebvq22QvfcynlRiragQvfcngpureR0_AF_14YbbcrePnyyonpxR:
.space __SIZEOF_POINTER__
.text
.globl b__MA7naqebvq12NffrgZnantre6MvcFrgQ1Ri
.type b__MA7naqebvq12NffrgZnantre6MvcFrgQ1Ri,%function
b__MA7naqebvq12NffrgZnantre6MvcFrgQ1Ri:
nop
.text
.globl b__MA7naqebvq15QlanzvpErsGnoyr10nqqZnccvatREXAF_8Fgevat16Ru
.type b__MA7naqebvq15QlanzvpErsGnoyr10nqqZnccvatREXAF_8Fgevat16Ru,%function
b__MA7naqebvq15QlanzvpErsGnoyr10nqqZnccvatREXAF_8Fgevat16Ru:
nop
.text
.globl b__MA7naqebvq8ErfGnoyr5GurzrP2REXF0_
.type b__MA7naqebvq8ErfGnoyr5GurzrP2REXF0_,%function
b__MA7naqebvq8ErfGnoyr5GurzrP2REXF0_:
nop
.text
.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVuAF_3frgVAF_4cnveVwwRRAF_4yrffVF4_RRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVuFN_AF5_VuRRYo1RRRAF7_VFN_RRR25__rzcynpr_havdhr_


tNewTopicsManager(client, []string{"topic1", "topic2"}),
		close: func() error {
			closed = true
			return nil
		},
		consumer: consumer{
			ctx:           t.Context(),
			cancel:        func() {},
			ConsumerGroup: group,
			logger:        log.NewNopLogger(),
			discoverer: DiscovererFn(func(s sarama.ConsumerGroupSession, c sarama.ConsumerGroupClaim) (RunnableTarget, error) {
				return nil, nil
			}),
		},
		cfg: Config{
			RelabelConfigs: []*relabel.Config{},
			KafkaConfig: TargetConfig{
				UseIncomingTimestamp: true,
				Topics:               []string{"topic1", "topic2"},
			},
		},
	}

	ts.loop()

	require.Eventually(t, func() bool {
		if !group.consuming.Load() {
			return false
		}
		return reflect.DeepEqual([]string{"topic1"}, group.GetTopics())
	}, 1*time.Minute, 100*time.Millisecond, "expected topics: %v, got: %v", []string{"topic1"}, group.GetTopics())

	client.UpdateTopics([]string{"topic1", "topic2"})

	require.Eventually(t, func() bool {
		if !group.consuming.Load() {
			return false
		}
		return reflect.DeepEqual([]string{"topic1", "topic2"}, group.GetTopics())
	}, 5*time.Second, 100*time.Millisecond, "expected topics: %v, got: %v", []string{"topic1", "topic2"}, group.GetTopics())

	require.NoError(t, ts.Stop())
	require.True(t, closed)
}

func Test_NewTarget(t *testing.T) {
	ts := &TargetSyncer{
		logger: log.NewNopLogger(),
		client: fake.NewClient(func() {}),
		cfg: Config{
			RelabelConfigs: []*relabel.Config{
				{
					SourceLabels: model.LabelNames{"__meta_kafka_topic"},
					TargetLabel:  "topic",
					Replacement:  "$1",
					Action:       relabel.Replace,
					Regex:        relabel.MustNewRegexp("(.*)"),
				},
			},
			KafkaConfig: TargetConfig{
				UseIncomingTimestamp: true,
				GroupID:              "group_1",
				Topics:               []string{"topic1", "topic2"},
				Labels:               model.LabelSet{"static": "static1"},
			},
		},
	}
	tg, err := ts.NewTarget(&testSession{}, newTestClaim("foo", 10, 1))

	require.NoError(t, err)
	require.Equal(t, ConsumerDetails{
		MemberID:      "foo",
		GenerationID:  10,
		Topic:         "foo",
		Partition:     10,
		InitialOffset: 1,
	}, tg.Details())
	require.Equal(t, model.LabelSet{"static": "static1", "topic": "foo"}, tg.Labels())
	require.Equal(t, model.LabelSet{"__meta_kafka_member_id": "foo", "__meta_kafka_partition": "10", "__meta_kafka_topic": "foo", "__meta_kafka_group_id": "group_1"}, tg.DiscoveredLabels())
}

func Test_NewDroppedTarget(t *testing.T) {
	ts := &TargetSyncer{
		logger: log.NewNopLogger(),
		cfg: Config{
			KafkaConfig: TargetConfig{
				UseIncomingTimestamp: true,
				GroupID:              "group1",
				Topics:               []string{"topic1", "topic2"},
			},
		},
	}
	tg, err := ts.NewTarget(&testSession{}, newTestClaim("foo", 10, 1))

	require.NoError(t, err)
	require.Equal(t, "dropping target, no labels", tg.Details())
	require.Equal(t, model.LabelSet(nil), tg.Labels())
	require.Equal(t, model.LabelSet{"__meta_kafka_member_id": "foo", "__meta


 '', summary + ': ' + expect);

  expect = [4];
  actual = flatten([[[[4]]]]);      // [4]
  reportCompare(expect + '', actual + '', summary + ': ' + expect);

  expect = [1, 2, 3];
  actual = flatten([1, [2, [3]]]);  // [1, 2, 3]
  reportCompare(expect + '', actual + '', summary + ': ' + expect);

  expect = [];
  actual = flatten([[[[[]]]]]);     // []
  reportCompare(expect + '', actual + '', summary + ': ' + expect);

  exitFunc ('test');
}
/* -*- Mode: javascript; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

var gTestfile = 'regress-349023-01.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 349023;
var summary = 'Bogus JSCLASS_IS_EXTENDED in the generator class';
var actual = 'No Crash';
var expect = 'No Crash';

//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------

function test()
{
  enterFunc ('test');
  printBugNumber(BUGNUMBER);
  printStatus (summary);

  function gen() {
    var i = 0;
    yield i;
  }

  try
  {
    var g = gen();
    for (var i = 0; i < 10; i++) {
      print(g.next());
    }
  }
  catch(ex)
  {
  }

  reportCompare(expect, actual, summary);

  exitFunc ('test');
}
/* -*- Mode: javascript; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

var gTestfile = 'builtin-Iterator-function.js';
//-----------------------------------------------------------------------------
var BUGNUMBER     = "(none)";
var summary = "Iterator() test";
var actual, expect;

printBugNumber(BUGNUMBER);
printStatus(summary);

/**************
 * BEGIN TEST *
 **************/

var failed = false;

function Array_equals(a, b)
{
  if (!(a instanceof Array) || !(b instanceof Array))
    throw new Error("Arguments not both of type Array");
  if (a.length != b.length)
    return false;
  for (var i = 0, sz = a.length; i < sz; i++)
    if (a[i] !== b[i])
      return false;
  return true;
}

var meow = "meow", oink = "oink", baa = "baa";

var it = Iterator([meow, oink, baa]);
var it2 = Iterator([meow, oink, baa], true);

try
{
  if (!Array_equals(it.next(), [0, meow]))
    throw [0, meow];
  if (!Array_equals(it.next(), [1, oink]))
    throw [1, oink];
  if (!Array_equals(it.next(), [2, baa]))
    throw [2, baa];

  var stopPassed = false;
  try
  {
    it.next();
  }
  catch (e)
  {
    if (e === StopIteration)
      stopPassed = true;
  }

  if (!stopPassed)
    throw "it: missing or incorrect StopIteration";

  if (it2.next() != 0)
    throw "wanted key=0";
  if (it2.next() != 1)
    throw "wanted key=1";
  if (it2.next() != 2)
    thro


292', endColorstr='#aecf49', GradientType=0);
  /* IE6-9 */

}
.e-tile .e-image-parent {

}
.e-tile .e-tile-selected::after {
  border-top: 28px solid #cee292;
}
.e-tile .e-tile-selected {
  border: 2px solid #494949;
}
.e-tile-wide {

}
.e-tile-medium {

}
.e-tile-small {

}
.e-tile-group .e-tile-column {

}
.e-tile.e-js.e-tile-web:hover {

}
.e-tile.e-js.e-tile-web:hover .e-image-parent {

}
.e-tile-caption-text.e-caption-innerbottom::before {

}
.e-tile-caption-text::before {

}
.e-tile.e-tile-web.e-tile-medium .e-image-parent .e-tile-image:not(.e-tile-imagefill),
.e-tile.e-tile-web.e-tile-wide .e-image-parent .e-tile-image:not(.e-tile-imagefill) {

}
.e-tile-caption::before {

}
.e-tile-small-col-2 {

}
.e-tile.e-tile-small .e-image-parent .e-tile-image:not(.e-tile-imagefill) {

}
.e-tile.e-tile-imagefill .e-tile-overlay {

}

/* need verify with UX team*/
.pager-hover-gradient {
  background: #4a5038;
  /* Old browsers */
  background: -moz-linear-gradient(top, #4a5038, #404a22);
  /* FF3.6+ */
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #4a5038), color-stop(100%, #404a22));
  /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(top, #4a5038, #404a22);
  /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(top, #4a5038, #404a22);
  /* Opera 11.10+ */
  background: -ms-linear-gradient(top, #4a5038, #404a22);
  /* IE10+ */
  background: linear-gradient(to bottom, #4a5038, #404a22);
  /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#4a5038', endColorstr='#404a22', GradientType=0);
  /* IE6-9 */

}
/*-----------------------Map------------------*/
/*-----------------------PdfViewer------------------*/
/*-----------------------End PdfViewer------------------*/
/*----------------------OLAP Definition------------------*/
/*----------------------Reportviewer Definition start------------------*/
/*----------------------Reportviewer Definition End------------------*/
/*----------------------Reportdesigner Definition Start------------------*/
/*----------------------Reportdesigner Definition End------------------*/
/*-----------------------SymbolPalette Definition-----------------*/
/*-----------------------Diagram Definition-----------------*/
/*-----------------------Datepicker Definition-----------------*/
/*-----------------------Bootstrap support-----------------*/
/*----------------------Ribbon Definition-----------------------*/
/*----------------------Ribbon End-----------------------*/
/*----------------------File Explorer Start-----------------------*/
/*----------------------File Explorer End-----------------------*/
/*----------------------Kanban Definition-----------------------*/
/*----------------------Kanban End-----------------------*/
/*----------------------Spreadsheet Definition-----------------------*/
/*----------------------Spreadsheet End-----------------------*/
/*----------------------Office 365 theme-----------------------*/
/*----------------------High-Contrast-01 & High-Contrast-02 theme-----------------------*/
/*----------------------material theme-----------------------*/
/*----------------------rangeScrollbar Start------------------*/
/*--------------- common ----------------- */
/*---------------high-contrast ------*/
/*---------------- Office-365 ----------------*/
/*------------------ material theme ---------------------*/
/*-----------------------HeatMap Definition-----------------*/
/* Common style */

.e-content-area {
  background-color: #111111;
  color: white;
  border-color: #494949;
  font-family: Segoe UI, Helvetica Neue, Ubuntu, Arial;
}
/*------------------------------------- Radial Slider ----


R12, LR
*                     Return from Supervisor Call       {context switch}
*
*              void  OSIntCtxRestore (INT32U *sp)
*                     Restore Stack Pointer
*                     Restore R0-R7
*                     Return from INT                   {context switch}
*
* Arguments  : cpu_sp    Stack address for the context to be restored
*********************************************************************************************************
*/

OSCtxRestore:
        LDM     R12, R0-R7                                      /* Restore R0-R7                                            */
        LD.D    R8,  R12[14*4]                                  /* Restore R8-R9                                            */
        LD.D    R10, R12[ 8*4]                                  /* Retrieve PC and SR from stack frame                      */
        ST.D    R12[14*4], R10                                  /* Store PC and SR at bottom of stack frame                 */
        SUB     R12, -10*4                                      /* Move Stack Pointer Reference to LR                       */
        SUB     SP, R12, -4*4                                   /* Restore Stack Pointer                                    */
        LDM     R12, R10-R12, LR                                /* Restore R10-R12, LR                                      */
        RETS                                                    /* Restore PC and SR {restore task}                         */

OSIntCtxRestore:
        MOV     SP, R12                                         /* Restore SP (Stack Pointer)                               */
        POPM    R0-R7                                           /* Restore R0-R7                                            */
        RETE                                                    /* Restore R8-R12, LR, PC and SR {restore task}             */

/*
*********************************************************************************************************
*                                          OS INTERRUPT HANDLER
*
* Description: This function handles the OS specific steps to wrap an user-defined function to be called on an interrupt.
*
*                   prototype:  void    OSIntISRHandler(CPU_FNCT_PTR ptrUserISR);
*
* Notes      : 1) OSIntISRHandler() MUST:
*                   a) save remaining registers (R0-R7),
*                   b) increment OSIntNesting,
*                   c) if (OSIntNesting == 1) OSTCBCur->OSTCBStkPtr = SP,
*                   d) re-enable interrupts,
*                   e) call user-defined function,
*                   f) call OSIntExit(),
*                   g) restore remaining registers (R0-R7),
*                   h) return from interrupt.
*
*              2) Interrupts MUST be disabled when this function is called.
*********************************************************************************************************
*/

OSIntISRHandler:
        PUSHM   R0-R7                                           /* Save R0-R7 into stack                                    */

        MOV     R11, LO(OSIntNesting)
        ORH     R11, HI(OSIntNesting)
        LD.UB   R10, R11[0]
        SUB     R10, -1
        ST.B    R11[0], R10                                     /


s1_val==4 and rs2_val==1717986917,
// opcode: bgeu, op1:x10; op2:x11; op1val:0x4; op2val:0x66666665; immval:0x0; align:0
TEST_BRANCH_OP(bgeu, x3, x10, x11, 0x4, 0x66666665, 0x0, 3f, x2, 1580,0)

inst_416:
// rs1_val==4 and rs2_val==46339,
// opcode: bgeu, op1:x10; op2:x11; op1val:0x4; op2val:0xb503; immval:0xa; align:0
TEST_BRANCH_OP(bgeu, x3, x10, x11, 0x4, 0xb503, 0xa, 1b, x2, 1584,0)

inst_417:
// rs1_val==4 and rs2_val==65534,
// opcode: bgeu, op1:x10; op2:x11; op1val:0x4; op2val:0xfffe; immval:0x200; align:0
TEST_BRANCH_OP(bgeu, x3, x10, x11, 0x4, 0xfffe, 0x200, 3f, x2, 1588,0)

inst_418:
// rs1_val==4 and rs2_val==1431655766,
// opcode: bgeu, op1:x10; op2:x11; op1val:0x4; op2val:0x55555556; immval:0x4; align:0
TEST_BRANCH_OP(bgeu, x3, x10, x11, 0x4, 0x55555556, 0x4, 1b, x2, 1592,0)

inst_419:
// rs1_val==4 and rs2_val==2863311531,
// opcode: bgeu, op1:x10; op2:x11; op1val:0x4; op2val:0xaaaaaaab; immval:0x10; align:0
TEST_BRANCH_OP(bgeu, x3, x10, x11, 0x4, 0xaaaaaaab, 0x10, 3f, x2, 1596,0)

inst_420:
// rs1_val==4 and rs2_val==6,
// opcode: bgeu, op1:x10; op2:x11; op1val:0x4; op2val:0x6; immval:0x6; align:0
TEST_BRANCH_OP(bgeu, x3, x10, x11, 0x4, 0x6, 0x6, 3f, x2, 1600,0)

inst_421:
// rs1_val==4 and rs2_val==858993460,
// opcode: bgeu, op1:x10; op2:x11; op1val:0x4; op2val:0x33333334; immval:0x6; align:0
TEST_BRANCH_OP(bgeu, x3, x10, x11, 0x4, 0x33333334, 0x6, 1b, x2, 1604,0)

inst_422:
// rs1_val==4 and rs2_val==1717986919,
// opcode: bgeu, op1:x10; op2:x11; op1val:0x4; op2val:0x66666667; immval:0x200; align:0
TEST_BRANCH_OP(bgeu, x3, x10, x11, 0x4, 0x66666667, 0x200, 3f, x2, 1608,0)

inst_423:
// rs1_val==4 and rs2_val==46341,
// opcode: bgeu, op1:x10; op2:x11; op1


# Instructions that are invalid
#
# RUN: not llvm-mc %s -triple=mips-unknown-linux -mcpu=mips64r2 -mattr=+msa \
# RUN:     -show-encoding 2>%t1
# RUN: FileCheck %s < %t1

    .set noat
    dlsa    $2, $3, $4, 0   # CHECK: :[[@LINE]]:25: error: expected immediate in range 1 .. 4
    dlsa    $2, $3, $4, 5   # CHECK: :[[@LINE]]:25: error: expected immediate in range 1 .. 4
    insve.b $w25[-1], $w9[0] # CHECK: :[[@LINE]]:18: error: expected 4-bit unsigned immediate
    insve.b $w25[16], $w9[0] # CHECK: :[[@LINE]]:18: error: expected 4-bit unsigned immediate
    insve.h $w24[-1], $w2[0] # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate
    insve.h $w24[8], $w2[0]  # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate
    insve.w $w0[-1], $w13[0] # CHECK: :[[@LINE]]:17: error: expected 2-bit unsigned immediate
    insve.w $w0[4], $w13[0]  # CHECK: :[[@LINE]]:17: error: expected 2-bit unsigned immediate
    insve.d $w3[-1], $w18[0] # CHECK: :[[@LINE]]:17: error: expected 1-bit unsigned immediate
    insve.d $w3[2], $w18[0]  # CHECK: :[[@LINE]]:17: error: expected 1-bit unsigned immediate
    insve.b $w25[3], $w9[1] # CHECK: :[[@LINE]]:26: error: expected '0'
    insve.h $w24[2], $w2[1] # CHECK: :[[@LINE]]:26: error: expected '0'
    insve.w $w0[2], $w13[1] # CHECK: :[[@LINE]]:26: error: expected '0'
    insve.d $w3[0], $w18[1] # CHECK: :[[@LINE]]:26: error: expected '0'
    lsa     $2, $3, $4, 0   # CHECK: :[[@LINE]]:25: error: expected immediate in range 1 .. 4
    lsa     $2, $3, $4, 5   # CHECK: :[[@LINE]]:25: error: expected immediate in range 1 .. 4
    sat_s.b $w31, $w31, -1  # CHECK: :[[@LINE]]:25: error: expected 3-bit unsigned immediate
    sat_s.b $w31, $w31, 8   # CHECK: :[[@LINE]]:25: error: expected 3-bit unsigned immediate
    sat_s.h $w31, $w31, -1  # CHECK: :[[@LINE]]:25: error: expected 4-bit unsigned immediate
    sat_s.h $w31, $w31, 16  # CHECK: :[[@LINE]]:25: error: expected 4-bit unsigned immediate
    sat_s.w $w31, $w31, -1  # CHECK: :[[@LINE]]:25: error: expected 5-bit unsigned immediate
    sat_s.w $w31, $w31, 32  # CHECK: :[[@LINE]]:25: error: expected 5-bit unsigned immediate
    sat_s.d $w31, $w31, -1  # CHECK: :[[@LINE]]:25: error: expected 6-bit unsigned immediate
    sat_s.d $w31, $w31, 64  # CHECK: :[[@LINE]]:25: error: expected 6-bit unsigned immediate
    sat_u.b $w31, $w31, -1  # CHECK: :[[@LINE]]:25: error: expected 3-bit unsigned immediate
    sat_u.b $w31, $w31, 8   # CHECK: :[[@LINE]]:25: error: exp


implements _i3.TransactionDetails {
  @override
  String get txid =>
      (super.noSuchMethod(
            Invocation.getter(#txid),
            returnValue: _i6.dummyValue<String>(this, Invocation.getter(#txid)),
            returnValueForMissingStub: _i6.dummyValue<String>(
              this,
              Invocation.getter(#txid),
            ),
          )
          as String);

  @override
  BigInt get received =>
      (super.noSuchMethod(
            Invocation.getter(#received),
            returnValue: _i6.dummyValue<BigInt>(
              this,
              Invocation.getter(#received),
            ),
            returnValueForMissingStub: _i6.dummyValue<BigInt>(
              this,
              Invocation.getter(#received),
            ),
          )
          as BigInt);

  @override
  BigInt get sent =>
      (super.noSuchMethod(
            Invocation.getter(#sent),
            returnValue: _i6.dummyValue<BigInt>(this, Invocation.getter(#sent)),
            returnValueForMissingStub: _i6.dummyValue<BigInt>(
              this,
              Invocation.getter(#sent),
            ),
          )
          as BigInt);
}
import 'package:antimine/common/models/area.dart';
import 'package:antimine/common/models/form.dart';
import 'package:antimine/common/models/mark.dart';
import 'package:antimine/common/models/neighbours.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter_test/flutter_test.dart';

void main() {
  const first = Area(
    id: 1,
    x: 2,
    y: 3,
    mark: Mark.flag,
    covered: true,
    hasMine: true,
    ignoreError: true,
    minesAround: 4,
    neighboursList: [7, 8, 9, 10],
    neighbours: Neighbours(topId: 7, rightId: 8, bottomId: 9, leftId: 10),
    form: Form(top: true, right: true, bottom: true, left: true),
  );
  const second = Area(
    id: 1,
    x: 2,
    y: 3,
    mark: Mark.flag,
    covered: true,
    hasMine: true,
    ignoreError: true,
    minesAround: 4,
    neighboursList: [7, 8, 9, 10],
    neighbours: Neighbours(topId: 7, rightId: 8, bottomId: 9, leftId: 10),
    form: Form(top: true, right: true, bottom: true, left: true),
  );

  test('test area equatable', () {
    expect(first == second, isTrue);
  });

  test('test area list equatable', () {
    final firstList = <Area>[first, second];
    final secondList = <Area>[first, second];

    expect(listEquals(firstList, secondList), isTrue);
  });

  test('test equal with copyWith', () {
    final shouldBeEqual = first.copyWith(mark: Mark.flag);
    final shouldBeDifferent = first.copyWith(mark: Mark.question);
    expect(first == shouldBeEqual, isTrue);
    expect(first == shouldBeDifferent, isFalse);
  });

  test('test equal with copyWith and lists', () {
    final shouldBeEqual = first.copyWith(mark: Mark.flag);
    final shouldBeDifferent = first.copyWith(mark: Mark.question);

    final firstList = <Area>[first];
    final shouldBeEqualList = <Area>[shouldBeEqual];
    final shouldBeDifferentList = <Area>[shouldBeDifferent];

    expect(listEquals(firstList, shouldBeEqualList), isTrue);
    expect(listEquals(firstList, shouldBeDifferentList), isFalse);
  });
}
impor


do
            strips[tracks[track_select].strip][page].graphics[gfx4_select[i]].font.italics = gfx_font_select.italics
          end
          lupd.update_gfx = true

        elseif MOUSE_click(obj.sections[145]) then
          Undo_Set({'font'})
          gfx_font_select.underline = not gfx_font_select.underline
          for i = 1, #gfx4_select do
            strips[tracks[track_select].strip][page].graphics[gfx4_select[i]].font.underline = gfx_font_select.underline
          end
          lupd.update_gfx = true

        elseif MOUSE_click(obj.sections[151]) then
          Undo_Set({'font'})
          gfx_font_select.vertical = not gfx_font_select.vertical
          for i = 1, #gfx4_select do
            local gfxx = strips[tracks[track_select].strip][page].graphics[gfx4_select[i]]
            gfxx.font.vertical = gfx_font_select.vertical
            gfxx.w, gfxx.h = gfxx.h, gfxx.w
            gfxx.stretchw, gfxx.stretchh = gfxx.stretchh, gfxx.stretchw
          end
          glob_gfxselrect = CalcGFX4SelRect()
          --lupd.update_bg = true
          lupd.update_gfx = true
          movefrom_sc = nil

        elseif MOUSE_click(obj.sections[146]) then
          Undo_Set({'font'})
          gfx_font_select.shadow = not gfx_font_select.shadow
          for i = 1, #gfx4_select do
            strips[tracks[track_select].strip][page].graphics[gfx4_select[i]].font.shadow = gfx_font_select.shadow
          end
          lupd.update_gfx = true

        elseif MOUSE_click(obj.sections[141]) then
          Undo_Set({'font','x','y','stretchw','stretchh'})
          mouse.context = contexts.textsizeslider

          dragoff = {mx = 0, my = 0, x = {}, y = {}, w = {}, h = {}}
          lvar.dg2 = nil

          for g = 1, #gfx4_select do
            local gfxx = strips[tracks[track_select].strip][page].graphics[gfx4_select[g]]
            local flagb,flagi,flagu = 0,0,0
            if gfxx.gfxtype == lvar.gfxtype.txt then
              local flagb,flagi,flagu,flagv = 0,0,0,0
              if gfxx.font.bold then flagb = 98 end
              if gfxx.font.italics then flagi = 105 end
              if gfxx.font.underline then flagu = 117 end
              if gfxx.font.vertical then flagv = 122 end
              local flags = flagb + (flagi*256) + (flagu*(256^2)) --+ (flagv*(256^3))
              gfx.setfont(1,gfxx.font.name,
                            gfxx.font.size,flags)
              local w, h = gfx.measurestr(gfxx.text)
              if gfxx.font.vertical then
                w, h = h, w
                flags = flags + (flagv*(256^3))
                gfx.setfont(1,gfxx.font.name,
                              gfxx.font.size,flags)
              end

              dragoff.x[g] = gfxx.x
              dragoff.y[g] = gfxx.y
              dragoff.w[g] = w
              dragoff.h[g] = h
            end
          end
          A_HideSelectedCtls(true, nil, nil, gfx4_select)
          draggfx2 = 'gfxFSize'
          GenGF


3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:focus~.custom-file-label::after{border-color:#80bdff}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:2.25rem;padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-ran


以下简称见义勇为），是指公民在国家利益、集体利益或者他人的人身安全、财产安全受到不法侵害时，挺身而出同违法犯罪行为作斗争的行为。

负有维护社会治安责任的国家工作人员有前款行为的，按照国家有关规定进行表彰和奖励。

第三条 在本市行政区域内见义勇为的，适用本条例。

本市人员在本市行政区域外见义勇为的，参照本条例执行。

第四条 本条例由市、县（市、区）人民政府组织实施。具体工作由市、县（市、区）人民政府确定的工作机构办理。

第五条 全社会应支持见义勇为行为，尊重和保护见义勇为人员。

新闻媒体应当及时对见义勇为事迹进行宣传报道。

第六条 有下列见义勇为行为之一的，应当给予保护和奖励：

（一）发现正在预备犯罪，挺身而出予以制止，防止重大案件发生的；

（二）发现正在实施犯罪行为，奋不顾身予以制止的；

（三）发现作案后在逃或者被通缉的犯罪嫌疑人，主动抓获，扭送公安、司法机关的；

（四）其他维护社会治安见义勇为的行为。

第七条 对见义勇为人员的奖励实行精神鼓励和物质奖励相结合的原则。

根据见义勇为人员的表现和贡献，由市、县（市、区）人民政府给予下列单项或者多项奖励：

（一）授予荣誉称号；

（二）记功；

（三）嘉奖；

（四）发给奖金；

（五）其他奖励。

荣誉称号分为“见义勇为勇士”和“见义勇为先进分子”。“见义勇为勇士”称号由市人民政府授予；“见义勇为先进分子”称号由县（市、区）人民政府授予。

获得荣誉称号的，享受同级劳动模范待遇。

第八条 见义勇为行为由见义勇为发生地的县级以上公安机关认定。见义勇为人员有单位的，由其单位向认定机关申报；无单位的，由见义勇为发生地的公安派出所向认定机关申报。见义勇为人员或者其他公民也可以直接向认定机关申报或者举荐。

见义勇为认定机关应当在接到申


/****************************************************************************
 * arch/xtensa/src/esp32s2/esp32s2_twai.h
 *
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.  The
 * ASF licenses this file to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance with the
 * License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
 * License for the specific language governing permissions and limitations
 * under the License.
 *
 ****************************************************************************/

#ifndef __ARCH_XTENSA_SRC_ESP32S2_ESP32S2_TWAI_H
#define __ARCH_XTENSA_SRC_ESP32S2_ESP32S2_TWAI_H

/****************************************************************************
 * Included Files
 ****************************************************************************/

#include <nuttx/config.h>
#include <nuttx/can/can.h>

/****************************************************************************
 * Pre-processor Definitions
 ****************************************************************************/

/****************************************************************************
 * Public Types
 ****************************************************************************/

/****************************************************************************
 * Public Data
 ****************************************************************************/

#ifndef __ASSEMBLY__
#ifdef __cplusplus
extern "C"
{
#endif

/****************************************************************************
 * Public Functions Prototypes
 ****************************************************************************/

/****************************************************************************
 * Name: esp32s2_twaiinitialize
 *
 * Description:
 *   Initialize the selected CAN port
 *
 * Input Parameters:
 *   Port number (for hardware that has multiple TWAI interfaces)
 *
 * Returned Value:
 *   Valid TWAI device structure reference on success; a NULL on failure
 *
 ****************************************************************************/

#if defined(CONFIG_CAN) && defined(CONFIG_ESP32S2_TWAI)
struct can_dev_s *esp32s2_twaiinitialize(void);
#endif

#ifdef __cplusplus
}
#endif
#endif /* __ASSEMBLY__ */

#endif /* __ARCH_XTENSA_SRC_ESP32S2_ESP32S2_TWAI_H */


rDetailQuery request, CancellationToken cancellationToken)
    {
        var userDetails = await _userManagementService.GetUserDetailsByPublicIdAsync(request.PublicId);

        var userDetailVm = new UserDetailVm(
            userDetails.FirstName,
            userDetails.LastName,
            userDetails.UserName,
            userDetails.Email,
            userDetails.PublicId,
            userDetails.Roles,
            userDetails.IsActive,
            userDetails.PasswordExpirationDate);

        return userDetailVm;
    }
}


nt(3) != 0) return // if we aren't touching the ground, skip most of the time

            var lavaCount = 0
            var basaltCount = 0

            for (direction in Direction.values()) {
                val relativePos = pos.relative(direction)
                if (checkVolcanicLava(level, relativePos)) {
                    lavaCount++
                    continue
                }
                if (checkBasalt(level, relativePos))
                    basaltCount++
            }

            if (!isSource(fluidState) && lavaCount < 2 || random.nextBoolean() && lavaCount < 5) {
                val resultBlock = when (random.nextInt(200)) {
                    in 0..1 -> NTechBlocks.basaltSulfurOre.get().defaultBlockState()
                    2 -> NTechBlocks.basaltAsbestosOre.get().defaultBlockState()
                    3 -> NTechBlocks.basaltFluoriteOre.get().defaultBlockState()
                    in 4..13 -> if (lavaCount + basaltCount == 6 && lavaCount < 3 && checkVolcanoHint(level, pos.above(10))) NTechBlocks.basaltVolcanicGemOre.get().defaultBlockState() else Blocks.BASALT.defaultBlockState()
                    else -> Blocks.BASALT.defaultBlockState()
                }
                level.setBlockAndUpdate(pos, resultBlock)
            }
        }
    }

    private fun checkVolcanoHint(level: Level, pos: BlockPos) = checkVolcanicLava(level, pos) || checkBasalt(level, pos)
    private fun checkVolcanicLava(level: Level, pos: BlockPos) = level.getFluidState(pos).`is`(NTechTags.Fluids.VOLCANIC_LAVA)
    private fun checkBasalt(level: Level, pos: BlockPos) = level.getBlockState(pos).run { `is`(Blocks.BASALT) || `is`(NTechTags.Blocks.ORES_IN_GROUND_BASALT) }

    override fun animateTick(level: Level, pos: BlockPos, fluidState: FluidState, random: Random) {
        val abovePos = pos.above()
        if (level.getBlockState(abovePos).isAir && !level.getBlockState(abovePos).isSolidRender(level, abovePos)) {
            if (random.nextInt(100) == 0) {
                val d0 = pos.x.toDouble() + random.nextDouble()
                val d1 = pos.y.toDouble() + 1.0
                val d2 = pos.z.toDouble() + random.nextDouble()
                level.addParticle(ParticleTypes.LAVA, d0, d1, d2, 0.0, 0.0, 0.0)
                level.playLocalSound(d0, d1, d2, SoundEvents.LAVA_POP, SoundSource.BLOCKS, 0.2f + random.nextFloat() * 0.2f, 0.9f + random.nextFloat() * 0.15f, false)
            }
            if (random.nextInt(200) == 0) {
                level.playLocalSound(pos.x.toDouble(), pos.y.toDouble(), pos.z.toDouble(), SoundEvents.LAVA_AMBIENT, SoundSource.BLOCKS, 0.2f + random.nextFloat() * 0.2f, 0.9f + random.nextFloat() * 0.15f, false)
            }
        }
    }

    class Flowing(properties: Properties) : VolcanicLavaFluid(properties) {
        override fun createFluidStateDefinition(builder: StateDefinition.Builder<Fluid, FluidState>) {
            super.createFluidStateDefinition(builder)
            builder.add(LEVEL)
        }

        override fun getAmount(fluidState: FluidState): Int = fluidState.getValue(LEVEL)
        override fun isSource(fluidState: FluidState) = false
    }

    class Source(properties: Properties) : VolcanicLavaFluid(properties) {
        override fun getAmount(fluidState: FluidState) = 8
        override fun isSource(fluidState: FluidState) = true
    }
}
package at.martinthedragon.nucleartech.entity

import at.martinthedragon.nucleartech.block.entity.VolcanoBlockEntity
import


::SendError<ControlRequest>) -> Self {
        match err {
            mio_channel::SendError::Io(err) => RemoveError::Io(err),
            mio_channel::SendError::Disconnected(ControlRequest::Remove(req)) => {
                RemoveError::SenderDisconnected(req.id)
            }
            mio_channel::SendError::Disconnected(_req) => {
                panic!("Tried to convert ControlRequest that wasn't RemoveRequest to RemoveError")
            }
        }
    }
}
<reponame>maxdeviant/ggez
//! A very simple shader example.

#[macro_use]
extern crate gfx;
extern crate ggez;

use ggez::conf;
use ggez::event;
use ggez::graphics::{self, DrawMode, Point2};
use ggez::timer;
use ggez::{Context, GameResult};
use std::env;
use std::path;

gfx_defines!{
    constant Dim {
        rate: f32 = "u_Rate",
    }
}

struct MainState {
    dim: Dim,
    shader: graphics::Shader<Dim>,
}

impl MainState {
    fn new(ctx: &mut Context) -> GameResult<MainState> {
        let dim = Dim { rate: 0.5 };
        let shader = graphics::Shader::new(
            ctx,
            "/basic_150.glslv",
            "/dimmer_150.glslf",
            dim,
            "Dim",
            None,
        )?;
        Ok(MainState { dim, shader })
    }
}

impl event::EventHandler for MainState {
    fn update(&mut self, ctx: &mut Context) -> GameResult<()> {
        self.dim.rate = 0.5 + (((timer::get_ticks(ctx) as f32) / 100.0).cos() / 2.0);
        Ok(())
    }

    fn draw(&mut self, ctx: &mut Context) -> GameResult<()> {
        graphics::clear(ctx);

        graphics::circle(ctx, DrawMode::Fill, Point2::new(100.0, 300.0), 100.0, 2.0)?;

        {
            let _lock = graphics::use_shader(ctx, &self.shader);
            self.shader.send(ctx, self.dim)?;
            graphics::circle(ctx, DrawMode::Fill, Point2::new(400.0, 300.0), 100.0, 2.0)?;
        }

        graphics::circle(ctx, DrawMode::Fill, Point2::new(700.0, 300.0), 100.0, 2.0)?;

        graphics::present(ctx);
        Ok(())
    }
}

pub fn main() {
    let c = conf::Conf::new();
    let ctx = &mut Context::load_from_conf("shader", "ggez", c).unwrap();

    // We add the CARGO_MANIFEST_DIR/resources do the filesystems paths so
    // we we look in the cargo project for files.
    if let Ok(manifest_dir) = env::var("CARGO_MANIFEST_DIR") {
        let mut path = path::PathBuf::from(manifest_dir);
        path.push("resources");
        ctx.filesystem.mount(&path, true);
    }

    let state = &mut MainState::new(ctx).unwrap();
    event::run(ctx, state).unwrap();
}
<gh_stars>0
use std::convert::From;

// a generic triple that is used everywhere and might implement other traits
// if the types match
#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
pub struct Triple<S,P=S,O=S>{
    pub subject: S,
    pub predicate:


工作。此后，在已经担任中共中央总书记的赵紫阳主持下，政治体制改革全面展开，并在许多方面取得了突破。

> 邓小平是着眼于为经济体制改革开路，认为，“不搞政治体制改革，经济体制改革也搞不下去”，试图在保证共产党领导地位不做出改变的前提下，提高政府行政效率，推动经济体制改革的进程。邓小平提出三条：第一是始终保持党和国家的活力。主要指领导层干部的年轻化；第二是克服官僚主义，提高工作效率；第三是调动基层工人、农民、知识分子的积极性（参见《邓小平文选》第三卷第176－180页）
>
> 而赵紫阳则着眼于改变共产党的执政方式，通过民主和法治的途径，限制党的权力，建设法治国家。赵紫阳提出政治体制改革的目标是发展民主，必须解决人民在这个制度下没有自由的问题。这就是后来在中共十三大报告中的表述：改革的“长远目标，是建立高度民主、法制完备、富有效率、充满活力的社会主义政治体制。”“近期目标，是建立有利于提高效率、增强活力和调动各方面积极性的领导体制”。

这些“政治改革方案”包括：

*   党政分开， 强调党的活动不能超越宪法和法律。
*   强调党不再“领导一切”，而是通过国家最高权力机关――全国人民代表大会来实现党的主张。
*   在除人民代表大会之外的国家机关中取消党组、地方党组织属地化、建立国家公务员制度、改革**人民代表大会制度和选举制度**、司法机关依法**独立审判**、依法保障公民各项基本权利
*   其他包括开放媒体，取消老干部特供等。

可以看出，这些如果**<u>有序的实施</u>**，中国不光不会混乱或者经济不发展甚至倒退，而且人民满足感会更好，会更感觉幸福和自由，贫富差距和社会矛盾也不会像现在这么大。

其实从上面引用文字里就可以看出，虽然这场政治改革是邓小平自己提出并发动的，邓小平和赵紫阳在政治体制改革主张上的重大差别，使这场改革具有了双重性质，甚至有两条不同的政治体制改革“路线”。邓小平更希望政改是为了经济改革服务的，而不希望共产党可能有失去权力的隐患。

**保守势力的反扑**

而这时候党内的保守势力还是很顽固的，包括了一些政治实权老人如陈云，李先念


uteAutoplay",value:function(e,t){var i=!t.get("autostartFailed"),n=t.get("mute");i?n=!1:t.set("playOnViewable",!1),this.unmuteCallback&&(t.off("change:autostartFailed change:autostartMuted change:mute",this.unmuteCallback),this.unmuteCallback=null),t.set("autostartFailed",void 0),t.set("autostartMuted",void 0),e.setMute(n),this.controlbar.renderVolume(n,t.get("volume")),this.mute.hide(),r.removeClass(this.playerContainer,"jw-flag-autostart")}},{key:"addActiveListeners",value:function(e){e&&!r.isMobile()&&(e.addEventListener("mousemove",this.activeListeners.mousemove),e.addEventListener("mouseout",this.activeListeners.mouseout))}},{key:"removeActiveListeners",value:function(e){e&&(e.removeEventListener("mousemove",this.activeListeners.mousemove),e.removeEventListener("mouseout",this.activeListeners.mouseout))}},{key:"userActive",value:function(e){var t=this;clearTimeout(this.activeTimeout),this.activeTimeout=setTimeout(function(){return t.userInactive()},e||m),this.showing||(r.removeClass(this.playerContainer,"jw-flag-user-inactive"),this.showing=!0,this.trigger("userActive"))}},{key:"userInactive",value:function(){clearTimeout(this.activeTimeout),this.showing=!1,this.controlbar&&this.controlbar.closeMenus({type:"userInactive"}),r.addClass(this.playerContainer,"jw-flag-user-inactive"),this.trigger("userInactive")}}]),t}()}.apply(t,o),!(void 0!==a&&(e.exports=a))},84:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.PLAYBACK_RATE_ICON='<svg viewBox="112 -44 1024 684"><g><path d="M735.2,41.2c-143,0-258.8,115.9-258.8,258.8s115.9,258.8,258.8,258.8S994,443,994,300S878.1,41.2,735.2,41.2z M899.9,323.5H758.7h-47.1v-47.1V135.3h47.1v141.2h141.2V323.5z"/><rect x="288.1" y="135.3" width="141.2" height="47.1"/><rect x="194" y="276.5" width="188.2" height="47.1"/><rect x="288.1" y="417.7" width="141.2" height="47.1"/></g></svg>'},121:function(e,t,i){function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o,a,l=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}();o=[i(1),i(2),i(35)],a=function(e,t,i){var o=function(){function e(t,i){n(this,e),this.time=t,this.text=i,this.el=document.createElement("div"),this.el.className="jw-cue jw-reset"}return l(e,[{key:"align",value:function(e){if("%"===this.time.toString().slice(-1))this.pct=this.time;els


int startIdx = 0;
		if (jpNum.startsWith("−")) {
			negative = true;
			startIdx = 1;

			if (len == 1) {
				throw new IllegalArgumentException("Invalid format: " + jpNum);
			}
		}

		BigDecimal num = BigDecimal.ZERO;
		BigDecimal n = BigDecimal.ZERO;
		BigDecimal n1 = null;
		int d1 = -1;
		int d2 = -1;
		int prevD1 = -1;
		int prevD2 = -1;
		boolean decimalPart = false;
		for (int i = startIdx; i < len; i++) {
			char c = jpNum.charAt(i);
			switch (c) {
				case '0', '０', '〇', '零' -> n1 = addAsDigits(n1, 0L, decimalPart);
				case '1', '１', '一', '壱', '壹', '弌' -> n1 = addAsDigits(n1, 1L, decimalPart);
				case '2', '２', '二', '弐', '貳', '弍', '贰' -> n1 = addAsDigits(n1, 2L, decimalPart); // Chinese: '贰'
				case '3', '３', '三', '参', '參', '弎', '叁', '叄' -> n1 = addAsDigits(n1, 3L, decimalPart); // Chinese: '叁', '叄'
				case '4', '４', '四', '肆', '亖' -> n1 = addAsDigits(n1, 4L, decimalPart);
				case '5', '５', '五', '伍' -> n1 = addAsDigits(n1, 5L, decimalPart);
				case '6', '６', '六', '陸', '陆' -> n1 = addAsDigits(n1, 6L, decimalPart); // Chinese: '陆'
				case '7', '７', '七', '漆', '柒', '質' -> n1 = addAsDigits(n1, 7L, decimalPart);
				case '8', '８', '八', '捌' -> n1 = addAsDigits(n1, 8L, decimalPart);
				case '9', '９', '九', '玖' -> n1 = addAsDigits(n1, 9L, decimalPart);
				case '十', '拾', '什' -> d1 = 1;
				case '廿', '念' -> { // Chinese: '念'
					if (n1 != null) {
						throw new IllegalArgumentException("Invalid format around '" + c + "'");
					}
					n1 = BigDecimal.valueOf(2L);
					d1 = 1;
				}
				case '卅', '丗' -> {
					if (n1 != null) {
						throw new IllegalArgumentException("Invalid format around '" + c + "'");
					}
					n1 = BigDecimal.valueOf(3L);
					d1 = 1;
				}
				case '百', '佰', '陌' -> d1 = 2;
				case '千', '仟', '阡' -> d1 = 3;
				case '万', '萬' -> d2 = 4;
				case '億' -> d2 = 8;
				case '兆' -> d2 = 12;
				case '京' -> d2 = 16;
				case '垓' -> d2 = 20;
				case '杼', '秭' -> d2 = 24;
				case '穣' -> d2 = 28;
				case '溝' -> d2 = 32;
				case '澗' -> d2 = 36;
				case '正' -> d2 = 40;
				case '載' -> d2 = 44;
				case '極' -> d2 = 48;
				case '･', '.', '・', '．' -> decimalPart = true;
				default -> {
					if (jpNum.startsWith("恒河沙", i)) {
						d2 = 52;
						i += 2;
					} else if (jpNum.startsWith("阿僧祇", i)) {
						d2 = 56;
						i += 2;
					} else if (jpNum.startsWith("那由他", i) || jpNum.startsWith("那由多", i)) {
						d2 = 60;
						i += 2;
					} els


tion
            when (fileSelectionMode) {
                JFileChooser.DIRECTORIES_ONLY -> fileChooser.mode = JnaFileChooser.Mode.Directories
                JFileChooser.FILES_ONLY -> fileChooser.mode = JnaFileChooser.Mode.Files
                JFileChooser.FILES_AND_DIRECTORIES -> fileChooser.mode = JnaFileChooser.Mode.FilesAndDirectories
            }
            fileChooser.setTitle(title)

            if (defaultDirectory.isNotBlank()) {
                fileChooser.setCurrentDirectory(defaultDirectory)
            }

            if (win32Filters.isNotEmpty()) {
                for ((name, filters) in win32Filters) {
                    fileChooser.addFilter(name, *filters.toTypedArray())
                }
            }

            if (fileChooser.showOpenDialog(owner)) {
                future.complete(fileChooser.selectedFiles.toList())
            } else {
                future.complete(emptyList())
            }
        }
        return future
    }

    fun showSaveDialog(
        owner: Window? = null,
        filename: String
    ): CompletableFuture<File?> {
        val future = CompletableFuture<File?>()
        if (SystemInfo.isMacOS) {
            showMacOSSaveDialog(filename, future)
        } else {
            val fileChooser = JnaFileChooser()
            fileChooser.isMultiSelectionEnabled = allowsMultiSelection
            fileChooser.setTitle(title)
            when (fileSelectionMode) {
                JFileChooser.DIRECTORIES_ONLY -> fileChooser.mode = JnaFileChooser.Mode.Directories
                JFileChooser.FILES_ONLY -> fileChooser.mode = JnaFileChooser.Mode.Files
                else -> fileChooser.mode = JnaFileChooser.Mode.FilesAndDirectories
            }
            fileChooser.setDefaultFileName(filename)
            if (SystemInfo.isWindows) {
                for ((name, filters) in win32Filters) {
                    fileChooser.addFilter(name, *filters.toTypedArray())
                }
            }
            if (fileChooser.showSaveDialog(owner)) {
                future.complete(fileChooser.selectedFile)
            } else {
                future.complete(null)
            }
        }
        return future
    }

    private fun showMacOSOpenDialog(future: CompletableFuture<List<File>>) {
        ThreadUtils.dispatch_async(object : Runnable {
            override fun run() {
                val pool = Foundation.NSAutoreleasePool()
                try {
                    val openPanelInstance = Foundation.invoke("NSOpenPanel", "openPanel")

                    // 是否允许选择文件
                    Foundation.invoke(
                        openPanelInstance,
                        "setCanChooseFiles:",
                        fileSelectionMode == JFileChooser.FILES_ONLY || fileSelectionMode == JFileChooser.FILES_AND_DIRECTORIES
                    )

                    // 是否允许选择文件夹
                    Foundation.invoke(
                        openPanelInstance,
                        "setCanChooseDirectories:",
                        fileSelectionMode == JFileChooser.DIRECTORIES_ONLY || fileSelectionMode == JFileChooser.FILES_AND_DIRECTORIES
                    )

                    // 是否允许多选
                    Foundation.invoke(openPanelInstance, "setAllowsMultipleSelection:", allowsMultiSelection)

                    // 限制文件类型
                    if (osxAllowedFileTypes.isNotEmpty()) {
                        Foundation.invoke(
                            openPanelInstance,
                            "setAllowedFileTypes:",
                            Foundation.fillArray(osxAll


balism
		/// </summary>
		CleansedWindblossom_8 = 174621,
		/// <summary>
		/// Type: Goober
		/// Lock: Unlocked
		/// </summary>
		CleansedWhipperRoot_2 = 174622,
		/// <summary>
		/// Type: Goober
		/// Lock: Unlocked
		/// </summary>
		CleansedWhipperRoot_3 = 174623,
		/// <summary>
		/// Type: Goober
		/// Lock: Unlocked
		/// </summary>
		CleansedWhipperRoot_4 = 174624,
		/// <summary>
		/// Type: Goober
		/// Lock: Unlocked
		/// </summary>
		CleansedWhipperRoot_5 = 174625,
		/// <summary>
		/// Type: Door
		/// Lock: Opening Methods: PickLock (Requires: 280 Lockpicking), Blasting (Requires: 300 Engineering); Keys: SkeletonKey; Closable
		/// </summary>
		ScholomanceDoor = 174626,
		/// <summary>
		/// Type: QuestGiver
		/// </summary>
		BewareOfPterrordax = 174682,
		/// <summary>
		/// Type: Generic
		/// </summary>
		JDSManual = 174683,
		/// <summary>
		/// Type: QuestGiver
		/// Lock: Opening Methods: Herbalism
		/// </summary>
		CorruptedNightDragon_4 = 174684,
		/// <summary>
		/// Type: Goober
		/// Lock: Opening Methods: Herbalism
		/// </summary>
		CleansedNightDragon_4 = 174685,
		/// <summary>
		/// Type: QuestGiver
		/// Lock: Opening Methods: Herbalism
		/// </summary>
		CorruptedWhipperRoot_6 = 174686,
		/// <summary>
		/// Type: Goober
		/// Lock: Unlocked
		/// </summary>
		CleansedWhipperRoot_6 = 174687,
		/// <summary>
		/// Type: Chair
		/// </summary>
		Chair_62 = 174698,
		/// <summary>
		/// Type: QuestGiver
		/// Lock: Opening Methods: Herbalism
		/// </summary>
		CorruptedWindblossom_9 = 174708,
		/// <summary>
		/// Type: QuestGiver
		/// Lock: Opening Methods: Herbalism
		/// </summary>
		CorruptedWindblossom_10 = 174709,
		/// <summary>
		/// Type: Goober
		/// Lock: Opening Methods: Herbalism
		/// </summary>
		CleansedWindblossom_9 = 174710,
		/// <summary>
		/// Type: Goober
		/// Lock: Opening Methods: Herbalism
		/// </summary>
		CleansedWindblossom_10 = 174711,
		/// <summary>
		/// Type: QuestGiver
		/// Lock: Opening Methods: Herbalism
		/// </summary>
		CorruptedSongflower_9 = 174712,
		/// <summary>
		/// Type: QuestGiver
		/// Lock: Opening Methods: Herbalism
		/// </summary>
		CorruptedSongflower_10 = 174713,
		/// <summary>
		/// Type: Goober
		/// Lock: Opening Methods: Herbalism
		/// </summary>
		CleansedSongflower_9 = 174714,
		/// <summary>
		/// Type: Goober
		/// Lock: Opening Methods: Herbalism
		/// </summary>
		CleansedSongflower_10 = 174715,
		/// <summary>
		/// Type: Chest
		/// Lock: Unlocked
		/// </summary>
		DamagedCrate_2 = 174728,
		/// <summary>
		/// Type: SpellFocus
		/// Trap: Bonfire Damage (ID: 2066, 2066)
		/// </summary>
		Bonfire_74 = 174729,
		///


1.328-.547-2.281-1.836-2.281-3.375 0-.56.117-1.082.344-1.563l.718-1.468zM7.5 8.313c-.027.23-.156.417-.156.656 0 1.953.988 3.663 2.5 4.687-.848.554-1.512 1.422-1.75 2.438A4.95 4.95 0 006.031 17 5.026 5.026 0 014 12.969c0-2.238 1.484-4.012 3.5-4.656zM20 20s-2 2.895-2 4a2 2 0 002 2c.137 0 .277-.004.406-.031A2.01 2.01 0 0022 24c0-1.105-2-4-2-4zm-6 3s-.285.453-.625 1c-.125.199-.242.363-.375.594-.18.313-.344.616-.5.937-.078.16-.156.318-.219.471-.164.386-.281.744-.281.998a2 2 0 104 0c0-.254-.117-.613-.281-1-.016-.031-.016-.059-.031-.094-.056-.12-.124-.25-.186-.375A17.705 17.705 0 0014.627 24c-.341-.547-.627-1-.627-1z"/></svg>';
  static const String cloud_moon_solid =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path fill="currentColor" d="m10.406 5.938-1.656.03c-3.742.137-6.75 3.227-6.75 7a6.988 6.988 0 002.688 5.5A5.023 5.023 0 004 21c0 2.758 2.242 5 5 5h16c2.758 0 5-2.242 5-5a4.99 4.99 0 00-3.031-4.594c-.282-2.418-2.313-4.308-4.782-4.406A5.968 5.968 0 0017 9a6.013 6.013 0 00-5.375 3.344c-1.328-.547-2.281-1.836-2.281-3.375 0-.559.117-1.082.344-1.563zM7.5 8.313c-.027.23-.156.417-.156.656a5.64 5.64 0 002.5 4.687c-.848.555-1.512 1.422-1.75 2.438-.77.14-1.461.46-2.063.906A5.024 5.024 0 014 12.969c0-2.239 1.484-4.012 3.5-4.656zM17 11c1.605 0 3.055.96 3.688 2.438l.28.687.907-.094c.043-.008.078-.031.125-.031 1.652 0 2.996 1.352 3 2.938l-.031.968.781.188A2.996 2.996 0 0128 21c0 1.652-1.348 3-3 3H9c-1.652 0-3-1.348-3-3s1.348-3 3-3h1v-1c0-1.102.895-1.996 1.906-2l1 .063.188-.844C13.469 12.359 15.102 11 17 11z"/></svg>';
  static const String cloud_rain_solid =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path fill="currentColor" d="M16 4c-3.227 0-6.027 2.258-6.781 5


并非铁板一块，玄铁高层与商业联合会董事会之间存在博弈，董事会内部亦有分歧。他利用这些矛盾，与莫妮克一同密谋，计划在长夜临光事件制造的混乱中，彻底斩断董事会与无胄盟中层（青金、白金）之间的联系人，让玄铁无法再通过这些渠道直接指挥他们。他甚至主动制造混乱，比如将感染者打算暴动的消息透露给上层，以创造行动空间。在执行清洗感染者的任务时，他与红松骑士团和闪灵、玛恩纳等人发生了冲突，虽然压制了红松骑士团的成员，但在面对玛恩纳和闪灵时遭遇挫败，被玛恩纳轻松制服。这让他认识到无胄盟高层也并非无敌。

最终，罗伊和莫妮克成功伪造了自己和部分无胄盟成员的死亡，斩断了董事会与无胄盟的联系渠道。他们通过整容换脸，成功以新身份“约尔·泰勒”和“唐娜·泰勒”在卡西米尔上岸，成为“源石云”日用品品牌的幕后老板。罗伊对新的商人生活表现出极大的兴趣和适应能力，甚至开玩笑地说想去跑销售，并计划享受悠闲的度假生活。他的故事展现了一个从底层猎人到顶尖杀手，再到隐退成为富商的独特轨迹，折射出卡西米尔社会光鲜外表下的残酷现实和个人对生存与自由的追求。
## 剧情高光
**在路边摊的告别：**
“按我看，杀手组织和企业也没什么不一样的，反正都是上班，然后加班，还有安排其他人加班。
真要说个跟着干的理由，那肯定还是赚的钱够多吧，比我自己打猎杀羽兽多赚不是一点半点。
反正一样都是瞄准——射击，那当然是赚得多的活更让人有干劲啊。
是吧老板，毕竟大家都是想要过上好日子的嘛。”
——《再见罗伊》

**嘲讽商业联合会的媒体操作：**
“‘被耀骑士击败后，曾经的冠军竟做出这种事！’
啧啧，只要取一个好的标题，好几天的点击量就轻松到手


/* -*- c++ -*- ----------------------------------------------------------
   LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
   https://www.lammps.org/, Sandia National Laboratories
   LAMMPS development team: developers@lammps.org

   Copyright (2003) Sandia Corporation.  Under the terms of Contract
   DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
   certain rights in this software.  This software is distributed under
   the GNU General Public License.

   See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */

#ifdef NPAIR_CLASS
// clang-format off
NPairStyle(half/multi/old/newtoff/omp,
           NPairHalfMultiOldNewtoffOmp,
           NP_HALF | NP_MULTI_OLD | NP_NEWTOFF | NP_OMP | NP_ORTHO | NP_TRI);
// clang-format on
#else

#ifndef LMP_NPAIR_HALF_MULTI_OLD_NEWTOFF_OMP_H
#define LMP_NPAIR_HALF_MULTI_OLD_NEWTOFF_OMP_H

#include "npair.h"

namespace LAMMPS_NS {

class NPairHalfMultiOldNewtoffOmp : public NPair {
 public:
  NPairHalfMultiOldNewtoffOmp(class LAMMPS *);
  void build(class NeighList *) override;
};

}    // namespace LAMMPS_NS

#endif
#endif


res the SCEVs with the
  // shortest dependency chains are constructed first.
  for (auto [Term, EnterIfTrue] : reverse(Terms)) {
    SmallVector<Value *, 8> Worklist;
    SmallPtrSet<Value *, 8> Visited;
    Worklist.push_back(Term);
    while (!Worklist.empty()) {
      Value *Cond = Worklist.pop_back_val();
      if (!Visited.insert(Cond).second)
        continue;

      if (auto *Cmp = dyn_cast<ICmpInst>(Cond)) {
        auto Predicate =
            EnterIfTrue ? Cmp->getPredicate() : Cmp->getInversePredicate();
        const auto *LHS = SE.getSCEV(Cmp->getOperand(0));
        const auto *RHS = SE.getSCEV(Cmp->getOperand(1));
        CollectCondition(Predicate, LHS, RHS, Guards.RewriteMap);
        continue;
      }

      Value *L, *R;
      if (EnterIfTrue ? match(Cond, m_LogicalAnd(m_Value(L), m_Value(R)))
                      : match(Cond, m_LogicalOr(m_Value(L), m_Value(R)))) {
        Worklist.push_back(L);
        Worklist.push_back(R);
      }
    }
  }

  // Let the rewriter preserve NUW/NSW flags if the unsigned/signed ranges of
  // the replacement expressions are contained in the ranges of the replaced
  // expressions.
  Guards.PreserveNUW = true;
  Guards.PreserveNSW = true;
  for (const SCEV *Expr : ExprsToRewrite) {
    const SCEV *RewriteTo = Guards.RewriteMap[Expr];
    Guards.PreserveNUW &=
        SE.getUnsignedRange(Expr).contains(SE.getUnsignedRange(RewriteTo));
    Guards.PreserveNSW &=
        SE.getSignedRange(Expr).contains(SE.getSignedRange(RewriteTo));
  }

  // Now that all rewrite information is collect, rewrite the collected
  // expressions with the information in the map. This applies information to
  // sub-expressions.
  if (ExprsToRewrite.size() > 1) {
    for (const SCEV *Expr : ExprsToRewrite) {
      const SCEV *RewriteTo = Guards.RewriteMap[Expr];
      Guards.RewriteMap.erase(Expr);
      Guards.RewriteMap.insert({Expr, Guards.rewrite(RewriteTo)});
    }
  }
  return Guards;
}

const SCEV *ScalarEvolution::LoopGuards::rewrite(const SCEV *Expr) const {
  /// A rewriter to replace SCEV expressions in Map with the corresponding entry
  /// in the map. It skips AddRecExpr because we cannot guarantee that the
  /// replacement is loop invariant in the loop of the AddRec.
  class SCEVLoopGuardRewriter
      : public SCEVRewriteVisitor<SCEVLoopGuardRewriter> {
    const DenseMap<const SCEV *, const SCEV *> ⤅

    SCEV::NoWrapFlags FlagMask = SCEV::FlagAnyWrap;

  public:
    SCEVLoopGuardRewriter(ScalarEvolution &SE,
                          const ScalarEvolution::LoopGuards &Guards)
        : SCEVRewriteVisitor(SE), Map(Guards.RewriteMap) {
      if (Guards.PreserveNUW)
        FlagMask = ScalarEvolution::setFlags(FlagMask, SCEV::FlagNUW);
      if (Guards.PreserveNSW)
        FlagMask = ScalarEvolution::setFlags(FlagMask, SCEV::FlagNSW);
    }

    const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { return Expr; }

    const SCEV *visitUnknown(const SCEVUnknown *Expr) {
      auto I = Map.find(Expr);
      if (I == Map.end())
        return Expr;
      return I->second;
    }

    const SCEV *visitZeroExtendExpr(const SCEVZeroExtendExpr *Expr) {
      auto I = Map.find(Expr


0];
      if (m_dbxcyclerange.size() >= 2)
        edm::LogVerbatim(msgcategory) << "deltaBXinCycle upper limit " << m_dbxcyclerange[1];
      edm::LogVerbatim(msgcategory) << "......................";
    }
    if (!isCutInactive(m_dbxcyclerangelat)) {
      edm::LogVerbatim(msgcategory) << "......................";
      edm::LogVerbatim(msgcategory) << "deltaBXinCycleLtcyAware partition: " << m_partition;
      if (!m_dbxcyclerangelat.empty())
        edm::LogVerbatim(msgcategory) << "deltaBXinCycleLtcyAware lower limit " << m_dbxcyclerangelat[0];
      if (m_dbxcyclerangelat.size() >= 2)
        edm::LogVerbatim(msgcategory) << "deltaBXinCycleLtcyAware upper limit " << m_dbxcyclerangelat[1];
      edm::LogVerbatim(msgcategory) << "......................";
    }
    if (!isCutInactive(m_dbxtrpltrange)) {
      edm::LogVerbatim(msgcategory) << "......................";
      if (!m_dbxtrpltrange.empty())
        edm::LogVerbatim(msgcategory) << "TripletIsolation lower limit " << m_dbxtrpltrange[0];
      if (m_dbxtrpltrange.size() >= 2)
        edm::LogVerbatim(msgcategory) << "TripletIsolation upper limit " << m_dbxtrpltrange[1];
      edm::LogVerbatim(msgcategory) << "......................";
    }
    if (!isCutInactive(m_dbxgenericrange)) {
      edm::LogVerbatim(msgcategory) << "......................";
      edm::LogVerbatim(msgcategory) << "Generic DBX computed between n-" << m_dbxgenericfirst << " and n-"
                                    << m_dbxgenericlast << " trigger";
      if (!m_dbxgenericrange.empty())
        edm::LogVerbatim(msgcategory) << "Generic DBX cut lower limit " << m_dbxgenericrange[0];
      if (m_dbxgenericrange.size() >= 2)
        edm::LogVerbatim(msgcategory) << "Generic DBX upper limit " << m_dbxgenericrange[1];
      edm::LogVerbatim(msgcategory) << "......................";
    }
    edm::LogVerbatim(msgcategory) << "-----------------------";
  }
}
#include "DPGAnalysis/Skims/interface/EcalTangentFilter.h"

using namespace std;

EcalTangentFilter::EcalTangentFilter(const edm::ParameterSet& iConfig) {
  fMuLabel = iConfig.getParameter<std::string>("MuLabel");
  fMuonD0Min = iConfig.getParameter<double>("MuD0Min");
  fMuonD0Max = iConfig.getParameter<double>("MuD0Max");
  fVerbose = iConfig.getParameter<bool>("Verbose");
  cout << "----------------------------------------------------------------------" << std::endl;
  cout << "--- EcalTangentFilter constructor" << std::endl;
  cout << "---  MuLabel:       " << fMuLabel << std::endl;
  cout << "---  MuonD0Min:     " << fMuonD0Min << std::endl;
  cout << "---  MuonD0Max:     " << fMuonD0Max << std::endl;
  cout << "---  Verbose:     " << fVerbose << std::endl;
  cout << "----------------------------------------------------------------------" << std::endl;
  fNgood = 0;
  fNtot = 0;
}

EcalTangentFilter::~EcalTangentFilter() {
  std::cout << "==> EcalTangentFilter> Number of accepted/total eve


	for _, offer := range offers {
		for _, spec := range specs {
			if spec.Q > bestQ &&
				(spec.Value == "*" || spec.Value == offer) {
				bestQ = spec.Q
				bestOffer = offer
			}
		}
	}
	if bestQ == 0 {
		bestOffer = ""
	}
	return bestOffer
}

// NegotiateContentType returns the best offered content type for the request's
// Accept header. If two offers match with equal weight, then the more specific
// offer is preferred.  For example, text/* trumps */*. If two offers match
// with equal weight and specificity, then the offer earlier in the list is
// preferred. If no offers match, then defaultOffer is returned.
func NegotiateContentType(r *http.Request, offers []string, defaultOffer string) string {
	bestOffer := defaultOffer
	bestQ := -1.0
	bestWild := 3
	specs := header.ParseAccept(r.Header, "Accept")
	for _, offer := range offers {
		for _, spec := range specs {
			switch {
			case spec.Q == 0.0:
				// ignore
			case spec.Q < bestQ:
				// better match found
			case spec.Value == "*/*":
				if spec.Q > bestQ || bestWild > 2 {
					bestQ = spec.Q
					bestWild = 2
					bestOffer = offer
				}
			case strings.HasSuffix(spec.Value, "/*"):
				if strings.HasPrefix(offer, spec.Value[:len(spec.Value)-1]) &&
					(spec.Q > bestQ || bestWild > 1) {
					bestQ = spec.Q
					bestWild = 1
					bestOffer = offer
				}
			default:
				if spec.Value == offer &&
					(spec.Q > bestQ || bestWild > 0) {
					bestQ = spec.Q
					bestWild = 0
					bestOffer = offer
				}
			}
		}
	}
	return bestOffer
}
// Copyright 2013 The Go Authors. All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd.

package httputil_test

import (
	"net/http"
	"testing"

	"github.com/ory/herodot/httputil"
)

var negotiateContentEncodingTests = []struct {
	s      string
	offers []string
	expect string
}{
	{"", []string{"identity", "gzip"}, "identity"},
	{"*;q=0", []string{"identity", "gzip"}, ""},
	{"gzip", []string{"identity", "gzip"}, "gzip"},
}

func TestNegotiateContentEnoding(t *testing.T) {
	for _, tt := range negotiateContentEncodingTests {
		r := &http.Request{Header: http.Header{"Accept-Encoding": {tt.s}}}
		actual := httputil.NegotiateContentEncoding(r, tt.offers)
		if actual != tt.expect {
			t.Errorf("NegotiateContentEncoding(%q, %#v)=%q, want %q", tt.s, tt.offers, actual, tt.expect)
		}
	}
}

var negotiateContentTypeTests = []struct {
	s            string
	offers       []string
	defaultOffer string
	expect       string
}{
	{"text/html, */*;q=0", []string{"x/y"}, "", ""},
	{"text/html, */*", []string{"x/y"}, "", "x/y"},
	{"text/html, image/png", []string{"text/html", "image/png"}, "", "text/html"},
	{"text/html, image/png", []string{"image/png", "text/


  +  8.7719298246vw , 8.75rem )) {
    .services {
      padding-bottom: calc(2.5rem + 6.25 * (100vw - 20rem) / 71.25);
    }
}

@supports (margin-bottom: clamp( 1.875rem , 1.3486842105rem  +  2.6315789474vw , 3.75rem )) {
    .services__block-header:not(:last-child) {
      margin-bottom: clamp( 1.875rem , 1.3486842105rem  +  2.6315789474vw , 3.75rem );
    }
}

@supports not (margin-bottom: clamp( 1.875rem , 1.3486842105rem  +  2.6315789474vw , 3.75rem )) {
    .services__block-header:not(:last-child) {
      margin-bottom: calc(1.875rem + 1.875 * (100vw - 20rem) / 71.25);
    }
}

@supports (padding-top: clamp( 2.5rem , 2.0789473684rem  +  2.1052631579vw , 4rem )) {
    .advantages__body {
      padding-top: clamp( 2.5rem , 2.0789473684rem  +  2.1052631579vw , 4rem );
    }
}

@supports not (padding-top: clamp( 2.5rem , 2.0789473684rem  +  2.1052631579vw , 4rem )) {
    .advantages__body {
      padding-top: calc(2.5rem + 1.5 * (100vw - 20rem) / 71.25);
    }
}

@supports (padding-bottom: clamp( 2.5rem , 2.0789473684rem  +  2.1052631579vw , 4rem )) {
    .advantages__body {
      padding-bottom: clamp( 2.5rem , 2.0789473684rem  +  2.1052631579vw , 4rem );
    }
}

@supports not (padding-bottom: clamp( 2.5rem , 2.0789473684rem  +  2.1052631579vw , 4rem )) {
    .advantages__body {
      padding-bottom: calc(2.5rem + 1.5 * (100vw - 20rem) / 71.25);
    }
}

@supports (padding-bottom: clamp( 1.875rem , 0.2960526316rem  +  7.8947368421vw , 7.5rem )) {
    .advantages__block-header {
      padding-bottom: clamp( 1.875rem , 0.2960526316rem  +  7.8947368421vw , 7.5rem );
    }
}

@supports not (padding-bottom: clamp( 1.875rem , 0.2960526316rem  +  7.8947368421vw , 7.5rem )) {
    .advantages__block-header {
      padding-bottom: calc(1.875rem + 5.625 * (100vw - 20rem) / 71.25);
    }
}

@supports (bottom: clamp( 0.9375rem , 0.1480263158rem  +  3.9473684211vw , 3.75rem )) {
    .advantages__block-header::after {
      bottom: clamp( 0.9375rem , 0.1480263158rem  +  3.9473684211vw , 3.75rem );
    }
}

@supports not (bottom: clamp( 0.9375rem , 0.1480263158rem  +  3.9473684211vw , 3.75rem )) {
    .advantages__block-header::after {
      bottom: calc(0.9375rem + 2.8125 * (100vw - 20rem) / 71.25);
    }
}

@supports (r


Success = addNoteToNoteList(noteRowKey, noteName, createTime,
						"0", newNoteBookRowkey, newNoteBookNoteList);
				if (!ifSuccess) {
					dataDao.insertData(Constants.NOTEBOOK_TABLE_NAME,
							oldNoteBookRowkey, Constants.NOTEBOOK_FAMLIY_NOTEBOOKINFO,
							Constants.NOTEBOOK_NOTEBOOKINFO_CLU_NOTELIST, JSONArray
									.fromObject(oldNoteBookNoteList).toString());
				}
			} catch (Exception e) {
				dataDao.insertData(Constants.NOTEBOOK_TABLE_NAME,
						oldNoteBookRowkey, Constants.NOTEBOOK_FAMLIY_NOTEBOOKINFO,
						Constants.NOTEBOOK_NOTEBOOKINFO_CLU_NOTELIST, JSONArray
								.fromObject(oldNoteBookNoteList).toString());
				e.printStackTrace();
				return false;
			}
		}
		return ifSuccess;
	}

	/**
	 * 获取笔记
	 */
	public Note getNoteByRowKey(String noteRowkey) {
		Note note = dataDao.queryNoteByRowKey(noteRowkey);
		return note;
	}

	/**
	 * 分享笔记 rowKey：rowKey
	 *
	 * @throws IOException
	 * @throws CorruptIndexException
	 */
	public boolean shareNote(String rowKey) throws CorruptIndexException,
			IOException {
		Result queryByRowKey = dataDao.queryByRowKey(Constants.NOTE_TABLE_NAME,
				rowKey);// 查询笔记
		// 封装参数
		String noteName = new String(queryByRowKey.getValue(
				Bytes.toBytes(Constants.NOTE_FAMLIY_NOTEINFO),
				Bytes.toBytes(Constants.NOTE_NOTEINFO_CLU_NOTENAME)));
		String content = new String(queryByRowKey.getValue(
				Bytes.toBytes(Constants.NOTE_FAMLIY_CONTENTINFO),
				Bytes.toBytes(Constants.NOTE_CONTENTINFO_CLU_CONTENT)));
		String time = new String(queryByRowKey.getValue(
				Bytes.toBytes(Constants.NOTE_FAMLIY_NOTEINFO),
				Bytes.toBytes(Constants.NOTE_NOTEINFO_CLU_CREATETIME)));
		Article article = new Article();
		article.setId(rowKey);
		article.setTitle(noteName);
		article.setTime(time);
		article.setContent(content);
		boolean saveNoteToLucene = createIndexDao.saveNoteToLucene(article);// 创建索引
		return saveNoteToLucene;
	}

	/**
	 * 根据关键字获取技术问答列表 key：关键字 page：页码
	 */
	public List<Article> search(String key, int page)
			throws InterruptedException, ParseException, IOException,
			InvalidTokenOffsetsException {
		SearchBean searchBean = new SearchBean();// 封装参数
		searchBean.setKey(key);
		searchBean.setPage(page);
		List<Article> articles = searchIndexDao.searchIndex(searchBean);// 查询文章
		return articles;
	}

	/**
	 * 收藏笔记
	 */
	public boolean starOtherNote(String noteRowKey, String starBtRowKey) {
		Note note = getNoteByRowKey(noteRowKey);// 获取笔记信息
		boolean addNote = addNote(noteRowKey, note.getName(),
				note.getCreateTime(), note.getStatus(), starBtRowKey);
		return addNote;
	}
	/**
	 * 活动笔记
	 */
	public boolean activeMyNote(String noteRowKey, String activityBtRowKey) {
		Note note = getNoteByRowKey(noteRowKey);// 获取笔记信息
		boolean addNote = addNote(noteRowKey, note.getName(),
				note.getCreateTime(), note.getStatus(), activityBtRowKey);
		return addNote;
	}
}

package com.zxl.crm;

import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebSer


ox-shadow:0 0 0 1px #db2828 inset!important;color:#db2828!important}.ui.basic.negative.button:hover,.ui.basic.negative.buttons .button:hover{background:0 0!important;-webkit-box-shadow:0 0 0 1px #d01919 inset!important;box-shadow:0 0 0 1px #d01919 inset!important;color:#d01919!important}.ui.basic.negative.button:focus,.ui.basic.negative.buttons .button:focus{background:0 0!important;-webkit-box-shadow:0 0 0 1px #ca1010 inset!important;box-shadow:0 0 0 1px #ca1010 inset!important;color:#d01919!important}.ui.basic.negative.active.button,.ui.basic.negative.buttons .active.button{background:0 0!important;-webkit-box-shadow:0 0 0 1px #d41515 inset!important;box-shadow:0 0 0 1px #d41515 inset!important;color:#b21e1e!important}.ui.basic.negative.button:active,.ui.basic.negative.buttons .button:active{-webkit-box-shadow:0 0 0 1px #b21e1e inset!important;box-shadow:0 0 0 1px #b21e1e inset!important;color:#b21e1e!important}.ui.buttons:not(.vertical)>.basic.primary.button:not(:first-child){margin-left:-1px}.ui.buttons{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;font-size:0;vertical-align:baseline;margin:0 .25em 0 0}.ui.buttons:not(.basic):not(.inverted){-webkit-box-shadow:none;box-shadow:none}.ui.buttons:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui.buttons .button{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;margin:0;border-radius:0;margin:0}.ui.buttons:not(.basic):not(.inverted)>.button,.ui.buttons>.ui.button:not(.basic):not(.inverted){-webkit-box-shadow:0 0 0 1px transparent inset,0 0 0 0 rgba(34,36,38,.15) inset;box-shadow:0 0 0 1px transparent inset,0 0 0 0 rgba(34,36,38,.15) inset}.ui.buttons .button:first-child{border-left:none;margin-left:0;border-top-left-radius:.28571429rem;border-bottom-left-radius:.28571429rem}.ui.buttons .button:last-child{border-top-right-radius:.28571429rem;border-bottom-right-radius:.28571429rem}.ui.vertical.buttons{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.ui.vertical.buttons .button{display:block;float:none;width:100%;margin:0;-webkit-box-shadow:none;box-shadow:none;border-radius:0}.ui.vertical.buttons .button:first-child{border-top-left-radius:.28571429rem;border-top-right-radius:.28571429rem}.ui.vertical.buttons .button:last-child{margin-bottom:0;border-bottom-left-radius:.28571429rem;border-bottom-right-radius:.28571429rem}.ui.vertical.buttons .button:only-child{border-radius:.28571429rem}/*!
 * # Semantic UI 2.3.3 - Container
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.container{display:block;max-width:100%!important}@media only screen and (max-width:767px){.ui.container{width:auto!


from urllib.parse import urlparse
from typing import Callable, List, Generator

class Crawler:
    def __init__(self, get_links_for_url: Callable[[str], List[str]]) -> None:
        self.get_links_for_url = get_links_for_url

    @staticmethod
    def is_internal_url(url: str, starting_url: str):
        parsed_url = urlparse(url)
        parsed_starting_url = urlparse(starting_url)

        return parsed_url.hostname == parsed_starting_url.hostname

    def _crawl(self, starting_url: str) -> Generator[tuple[str, List[str]], None, None]:
        urls_to_crawl = [starting_url]
        while urls_to_crawl:
            url = urls_to_crawl.pop(0)
            links = self.get_links_for_url(url)
            internal_links = [link for link in links if self.is_internal_url(link, starting_url)]
            urls_to_crawl += internal_links
            yield (url, links)

    def crawl(self, starting_url: str) -> dict[str, List[str]]:
        return {url: links for url, links in self._crawl(starting_url)}


]=-1;
            }

            //evaluate the map quickly in three iterations
            tmscore=get_score_fast(r1, r2, xtm, ytm, x, y, xlen, ylen, y2x_,
                d0, d0_search, t, u);

            if(tmscore>=tmscore_max)
            {
                tmscore_max=tmscore;
                for(j=0; j<ylen; j++) y2x[j]=y2x_[j];
            }
        }
    }
    else
    {
        int L2=L_fr;
        int min_len=getmin(xlen, L2);
        int min_ali= (int) (min_len/2.5);              //minimum size of considered fragment
        if(min_ali<=fra_min1)  min_ali=fra_min1;
        int n1, n2;
        n1 = -L2+min_ali;
        n2 = xlen-min_ali;

        int i, j, k;

        for(k=n1; k<=n2; k++)
        {
            //get the map
            for(j=0; j<ylen; j++) y2x_[j]=-1;

            for(j=0; j<L2; j++)
            {
                i=j+k;
                if(i>=0 && i<xlen) y2x_[ifr[j]]=i;
            }

            //evaluate the map quickly in three iterations
            tmscore=get_score_fast(r1, r2, xtm, ytm,
                x, y, xlen, ylen, y2x_, d0,d0_search, t, u);
            if(tmscore>=tmscore_max)
            {
                tmscore_max=tmscore;
                for(j=0; j<ylen; j++) y2x[j]=y2x_[j];
            }
        }
    }

    delete [] ifr;
    delete [] y2x_;
    return tmscore_max;
}

//heuristic run of dynamic programing iteratively to find the best alignment
//input: initial rotation matrix t, u
//       vectors x and y, d0
//output: best alignment that maximizes the TMscore, will be stored in invmap
double DP_iter(double **r1, double **r2, double **xtm, double **ytm,
    double **xt, bool **path, double **val, double **x, double **y,
    int xlen, int ylen, double t[3], double u[3][3], int invmap0[],
    int g1, int g2, int iteration_max, double local_d0_search,
    double D0_MIN, double Lnorm, double d0, double score_d8)
{
    double gap_open[2]={-0.6, 0};
    double rmsd;
    int *invmap=new int[ylen+1];

    int iteration, i, j, k;
    double tmscore, tmscore_max, tmscore_old=0;
    int score_sum_method=8, simplify_step=40;
    tmscore_max=-1;

    //double d01=d0+1.5;
    double d02=d0*d0;
    for(int g=g1; g<g2; g++)
    {
        for(iteration=0; iteration<iteration_max; iteration++)
        {
            NWDP_TM(path, val, x, y, xlen, ylen,
                t, u, d02, gap_open[g], invmap);

            k=0;
            for(j=0; j<ylen; j++)
            {
                i=invmap[j];

                if(i>=0) //aligned
                {
                    xtm[k][0]=x[i][0];
                    xtm[k][1]=x[i][1];
                    xtm[k][2]=x[i][2];


ipSelf))
        reinterpret_cast<sipQListWidgetItem *>(sipGetAddress(sipSelf))->sipPySelf = NULL;

    if (sipIsPyOwned(sipSelf))
    {
        release_QListWidgetItem(sipGetAddress(sipSelf),sipSelf->flags);
    }
}

extern "C" {static void *init_QListWidgetItem(sipSimpleWrapper *, PyObject *, PyObject *, PyObject **, PyObject **, PyObject **);}
static void *init_QListWidgetItem(sipSimpleWrapper *sipSelf, PyObject *sipArgs, PyObject *sipKwds, PyObject **sipUnused, PyObject **sipOwner, PyObject **sipParseErr)
{
    sipQListWidgetItem *sipCpp = 0;

    {
        QListWidget * a0 = 0;
        int a1 = QListWidgetItem::Type;

        static const char *sipKwdList[] = {
            sipName_parent,
            sipName_type,
        };

        if (sipParseKwdArgs(sipParseErr, sipArgs, sipKwds, sipKwdList, sipUnused, "|JHi", sipType_QListWidget, &a0, sipOwner, &a1))
        {
            Py_BEGIN_ALLOW_THREADS
            sipCpp = new sipQListWidgetItem(a0,a1);
            Py_END_ALLOW_THREADS

            sipCpp->sipPySelf = sipSelf;

            return sipCpp;
        }
    }

    {
        const QString * a0;
        int a0State = 0;
        QListWidget * a1 = 0;
        int a2 = QListWidgetItem::Type;

        static const char *sipKwdList[] = {
            NULL,
            sipName_parent,
            sipName_type,
        };

        if (sipParseKwdArgs(sipParseErr, sipArgs, sipKwds, sipKwdList, sipUnused, "J1|JHi", sipType_QString,&a0, &a0State, sipType_QListWidget, &a1, sipOwner, &a2))
        {
            Py_BEGIN_ALLOW_THREADS
            sipCpp = new sipQListWidgetItem(*a0,a1,a2);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast<QString *>(a0),sipType_QString,a0State);

            sipCpp->sipPySelf = sipSelf;

            return sipCpp;
        }
    }

    {
        const QIcon * a0;
        const QString * a1;
        int a1State = 0;
        QListWidget * a2 = 0;
        int a3 = QListWidgetItem::Type;

        static const char *sipKwdList[] = {
            NULL,
            NULL,
            sipName_parent,
            sipName_type,
        };

        if (sipParseKwdArgs(sipParseErr, sipArgs, sipKwds, sipKwdList, sipUnused, "J9J1|JHi", sipType_QIcon, &a0, sipType_QString,&a1, &a1State, sipType_QListWidget, &a2, sipOwner, &a3))
        {
            Py_BEGIN_ALLOW_THREADS
            sipCpp = new sipQListWidgetItem(*a0,*a1,a2,a3);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast<QString *>(a1),sipType_QString,a1State);

            sipCpp->sipPySelf = sipSelf;

            return sipCpp;
        }
    }

    {
        const QListWidgetItem * a0;

        if (sipParseKwdArgs(sipParseErr, sipArgs, sipKwds, NULL, sipUnused, "J9",