/**
* @param {number} m
* @param {number} n
* @return {string[]}
*/
var createGrid = function(m, n) {
// Start with every cell blocked.
const grid = Array.from({ length: m }, () => Array(n).fill("#"));
// Open the first column for the only downward route.
for (let i = 0; i < m; i++) {
grid[i][0] = ".";
}
// Open the bottom row to reach the destination.
for (let j = 0; j < n; j++) {
grid[m - 1][j] = ".";
}
// LeetCode expects each row as function automateSwitchToScanner(targetScannerName) {
// 1. Define target (Pass exact name, partial string, or leave blank to pick the first physical scanner)
// Examples: 'KODAK Scanner: S2000w', 'S2060w', or null
var target = targetScannerName || '';
// 2. Open the Scan Settings dialog via DOM class
var settingsBtn = document.querySelector('.scanSettingsButton');
if (!settingsBtn) {
console.warn("FAILED: Could not locate the Settings button on the toolbfunction automateScannerSwitchToFileImport() {
// 1. Locate the "View or Change Scan Settings" button using the DOM class
var settingsBtn = document.querySelector('.scanSettingsButton');
if (!settingsBtn) {
console.warn("FAILED: Could not locate the Settings button on the toolbar.");
return;
}
// 2. Click the settings button using a standard DOM click to trigger the KTA window
settingsBtn.click();
// 3. Wait 400ms for the ExtJS modal win(function() {
var results = { WindowGlobals: [], ScanButtonProps: [] };
// 1. Search global window objects
results.WindowGlobals = Object.keys(window).filter(function(k) {
var key = k.toLowerCase();
return key.includes('kofax') || key.includes('capture') || key.includes('scan') || key.includes('atalasoft');
});
// 2. Search the specific Scan button's internal properties
if (typeof Ext !== 'undefined' && Ext.ComponentQuery) {
var bt✅ Ce qui marche déjà
Les bûches s'accumulent, le compteur se met à jour.
La détection du joueur devant le feu (Interact + signaux) est bien branchée — la preuve : ton log affiche Il me faut 5 buches ! Tu en as 0.
Les marqueurs de quête sont connectés au signal.
Le feu a bien le script attaché et la shape Interact existe.
🔴 Bug n°1 (le plus important) — tes étapes récompense/final sont inversées
Regarde tes branches dans parler() :
ALLUMER_FEU (étape 2) → tu dis « Merci, tiens 5 pièces dExt.onReady(function () {
setTimeout(function () {
var controlName = 'tb_multiline';
// 1. Locate the specific ExtJS textarea component by name
var cmp = Ext.ComponentQuery.query('textarea[name="' + controlName + '"]')[0] ||
Ext.ComponentQuery.query('component[controlName="' + controlName + '"]')[0];
if (!cmp) {
console.warn("Could not locate textarea control: " + controlName);
return;
}
function syncScanButtonStates() {
// 1. Locate the exact icon elements
var scanOneIcon = document.querySelector('.scanOneButton.icon-play_arrow');
var scanAllIcon = document.querySelector('.scanAllButton.icon-fast_forward');
// 2. Get the parent ExtJS anchor (<a>) element for each
var scanOneBtn = scanOneIcon ? scanOneIcon.closest('.x-btn') : null;
var scanAllBtn = scanAllIcon ? scanAllIcon.closest('.x-btn') : null;
// 3. Helper to evaluate enabled status f
// 1. Locate the exact Scan icon element
var scanIcon = document.querySelector('.scanOneButton.icon-play_arrow');
// 2. Find its parent button element
var scanButton = scanIcon ? scanIcon.closest('.x-btn') : null;
// 3. Trigger the click event safely
if (scanButton) {
if (scanButton.classList.contains('x-item-disabled') || scanButton.getAttribute('aria-disabled') === 'true') {
console.warn("Found Scan button (" + scanButton.id + "), but it is currently disabled.");
// TRG_TTA_IMPORT
// 1. Locate the primary Import icon element
var importIcon = document.querySelector('.scanAllButton.icon-fast_forward');
// 2. Find its parent button container
var importButton = importIcon ? importIcon.closest('.x-btn') : null;
// 3. Trigger the click event safely
if (importButton) {
if (importButton.classList.contains('x-item-disabled') || importButton.getAttribute('aria-disabled') === 'true') {
console.warn("Found Import button (" + importButton.id +// Helper function to escape XML special characters
function escapeXml(unsafe) {
if (unsafe === null || unsafe === undefined) return '';
return String(unsafe)
.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''');
}
// Helper function to recursively convert JavaScript objects/JSON into pretty-printed XML
function jsonToXml(obj, nodeName, indent) {
indent = indent ||// Finds the button component dynamically regardless of its generated numeric ID
var btn = Ext.ComponentQuery.query('button[iconCls*="icon-create_job"]')[0] ||
Ext.ComponentQuery.query('button[iconCls*="createJobButton"]')[0];
if (btn) {
if (btn.handler) {
btn.handler.call(btn.scope || btn, btn);
} else {
btn.fireEvent('click', btn);
}
} else {
console.warn("Create Job button component not found.");
}# WOW Staging
[WOW Staging](https://www.wowstaging.com) provides professional home staging and interior staging services. We style vacant and occupied properties with furniture, decor and thoughtful design to highlight each home's best features and help it sell with confidence.# Costa Millworks Construction
Custom millwork, cabinetry and woodwork in Palo Alto, CA.
Costa Millworks Construction designs, builds and installs custom cabinetry, architectural millwork, built-ins, wall paneling, custom doors and fine wood finishes for residential and commercial projects across the San Francisco Bay Area.
Website: [Costa Millworks Construction](https://www.costamillworks.com/)Incremental games have a strange, quiet charm. You start with almost nothing, press a button, and slowly watch small numbers grow into enormous ones. Few titles capture that feeling better than Cookie Clicker, a browser game that has kept players busy for years with nothing more than a giant cookie and a steady stream of upgrades. If you have never tried this genre, or you have bounced off it before, this guide walks through how the game works, what to focus on early, and a few habits that make # Stars Junk — Storage Unit Cleanouts in Sunnyvale and Cupertino
Stars Junk is a family-owned, licensed and insured junk removal company serving San Jose and the South Bay Area since 2008. We offer same-day and next-day service, free upfront quotes by volume, and no hidden fees.
## Storage Unit Cleanouts in Sunnyvale and Cupertino
Our storage unit cleanouts in Sunnyvale and Cupertino clear furniture, boxes, appliances and general junk fast — perfect for move-outs, downsizing, or closing a uni/**
* @param {number[][]} grid
* @param {number} k
* @return {number}
*/
var countIslands = function(grid, k) {
const m = grid.length;
const n = grid[0].length;
let count = 0;
const directions = [[1, 0], [-1, 0], [0, 1], [0, -1]];
for (let r = 0; r < m; r++) {
for (let c = 0; c < n; c++) {
// A positive, unvisited cell starts a new island.
if (grid[r][c] <= 0) continue;
let sum = 0;
const stack = [[r, c]];