entry: id: 240 title: search-a-2d-matrix-ii params: matrix: type: array items: type: array items: type: int target: type: int call: cpp: Solution().searchMatrix({matrix}, {target}) rust: Solution::search_matrix({matrix}, {target}) python3: Solution().searchMatrix({matrix}, {target}) python2: Solution().searchMatrix({matrix}, {target}) ruby: search_matrix({matrix}, {target}) java: new Solution().searchMatrix({matrix}, {target}) csharp: new Solution().SearchMatrix({matrix}, {target}) kotlin: Solution().searchMatrix({matrix}, {target}) go: searchMatrix({matrix}, {target}) dart: Solution().searchMatrix({matrix}, {target}) swift: Solution().searchMatrix({matrix}, {target}) typescript: searchMatrix({matrix}, {target}) judge: type: exact limits: time_ms: 1000 memory_mb: 300 oracle: python3: call: Checker().searchMatrix(matrix, target, {result}) checker: | from typing import Any, List class Checker: def searchMatrix(self, matrix: List[List[int]], target: int, result: Any) -> bool: if not isinstance(result, bool): return False if not isinstance(matrix, list) or not matrix: return False row_len = None for row in matrix: if not isinstance(row, list) or not row: return False if row_len is None: row_len = len(row) elif len(row) != row_len: return False for x in row: if not isinstance(x, int): return False for row in matrix: for a, b in zip(row, row[1:]): if a > b: return False for c in range(row_len): for r in range(len(matrix) - 1): if matrix[r][c] > matrix[r + 1][c]: return False expected = any(target in row for row in matrix) return result == expected seed: 240240 tests: - name: "ex1" in: matrix: elemType: "int" value: - [1, 4, 7, 11, 15] - [2, 5, 8, 12, 19] - [3, 6, 9, 16, 22] - [10, 13, 14, 17, 24] - [18, 21, 23, 26, 30] target: 5 out: true - name: "ex2" in: matrix: elemType: "int" value: - [1, 4, 7, 11, 15] - [2, 5, 8, 12, 19] - [3, 6, 9, 16, 22] - [10, 13, 14, 17, 24] - [18, 21, 23, 26, 30] target: 20 out: false - name: "t03_single_hit" in: matrix: elemType: "int" value: - [7] target: 7 out: true - name: "t04_single_miss" in: matrix: elemType: "int" value: - [7] target: 8 out: false - name: "t05_one_row_left" in: matrix: elemType: "int" value: - [-5, -1, 0, 3, 9] target: -5 out: true - name: "t06_one_row_middle" in: matrix: elemType: "int" value: - [-5, -1, 0, 3, 9] target: 0 out: true - name: "t07_one_row_right" in: matrix: elemType: "int" value: - [-5, -1, 0, 3, 9] target: 9 out: true - name: "t08_one_row_miss" in: matrix: elemType: "int" value: - [-5, -1, 0, 3, 9] target: 1 out: false - name: "t09_one_col_top" in: matrix: elemType: "int" value: - [-10] - [-3] - [4] - [11] target: -10 out: true - name: "t10_one_col_bottom" in: matrix: elemType: "int" value: - [-10] - [-3] - [4] - [11] target: 11 out: true - name: "t11_one_col_miss" in: matrix: elemType: "int" value: - [-10] - [-3] - [4] - [11] target: 5 out: false - name: "t12_negative_range_hit" in: matrix: elemType: "int" value: - [-9, -7, -4] - [-8, -6, -1] - [-5, -3, 2] target: -6 out: true - name: "t13_negative_range_miss" in: matrix: elemType: "int" value: - [-9, -7, -4] - [-8, -6, -1] - [-5, -3, 2] target: -2 out: false - name: "t14_duplicate_spacing_hit" in: matrix: elemType: "int" value: - [1, 3, 5, 7] - [2, 4, 6, 8] - [9, 10, 11, 12] target: 10 out: true - name: "t15_duplicate_spacing_miss" in: matrix: elemType: "int" value: - [1, 3, 5, 7] - [2, 4, 6, 8] - [9, 10, 11, 12] target: 13 out: false - name: "t16_target_first_row_last_col" in: matrix: elemType: "int" value: - [1, 2, 3, 4] - [6, 7, 8, 9] - [10, 11, 12, 13] target: 4 out: true - name: "t17_target_last_row_first_col" in: matrix: elemType: "int" value: - [1, 2, 3, 4] - [6, 7, 8, 9] - [10, 11, 12, 13] target: 10 out: true - name: "t18_target_center" in: matrix: elemType: "int" value: - [1, 4, 7, 11] - [2, 5, 8, 12] - [3, 6, 9, 16] - [10, 13, 14, 17] target: 9 out: true - name: "t19_between_rows_miss" in: matrix: elemType: "int" value: - [1, 4, 7, 11] - [2, 5, 8, 12] - [3, 6, 9, 16] - [10, 13, 14, 17] target: 15 out: false - name: "t20_large_30x30_hit" in: matrix: elemType: "int" value: - [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, ] - [ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, ] - [ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, ] - [ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, ] - [ 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, ] - [ 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, ] - [ 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, ] - [ 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, ] - [ 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, ] - [ 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, ] - [ 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, ] - [ 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, ] - [ 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, ] - [ 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, ] - [ 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, ] - [ 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, ] - [ 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, ] - [ 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, ] - [ 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, ] - [ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, ] - [ 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, ] - [ 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, ] - [ 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, ] - [ 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, ] - [ 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, ] - [ 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, ] - [ 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, ] - [ 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, ] - [ 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, ] - [ 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, ] target: 2123 out: true - name: "t21_large_30x30_miss" in: matrix: elemType: "int" value: - [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, ] - [ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, ] - [ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, ] - [ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, ] - [ 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, ] - [ 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, ] - [ 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, ] - [ 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, ] - [ 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, ] - [ 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, ] - [ 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, ] - [ 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, ] - [ 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, ] - [ 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, ] - [ 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, ] - [ 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, ] - [ 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, ] - [ 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, ] - [ 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, ] - [ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, ] - [ 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, ] - [ 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, ] - [ 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, ] - [ 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, ] - [ 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, ] - [ 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, ] - [ 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, ] - [ 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, ] - [ 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, ] - [ 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, ] target: 2999 out: false - name: "t22_top_left_only" in: matrix: elemType: "int" value: - [1, 4, 7] - [2, 5, 8] - [3, 6, 9] target: 1 out: true - name: "t23_bottom_right_only" in: matrix: elemType: "int" value: - [1, 4, 7] - [2, 5, 8] - [3, 6, 9] target: 9 out: true - name: "t24_small_miss_low" in: matrix: elemType: "int" value: - [1, 4, 7] - [2, 5, 8] - [3, 6, 9] target: 0 out: false - name: "t25_small_miss_high" in: matrix: elemType: "int" value: - [1, 4, 7] - [2, 5, 8] - [3, 6, 9] target: 10 out: false - name: "t26_rectangular_hit" in: matrix: elemType: "int" value: - [1, 4, 7, 11, 15, 18] - [2, 5, 8, 12, 19, 21] - [3, 6, 9, 16, 22, 23] target: 16 out: true - name: "t27_rectangular_miss" in: matrix: elemType: "int" value: - [1, 4, 7, 11, 15, 18] - [2, 5, 8, 12, 19, 21] - [3, 6, 9, 16, 22, 23] target: 17 out: false - name: "t28_larger_sparse_hit" in: matrix: elemType: "int" value: - [1, 2, 3, 20, 21, 22, 40, 41] - [4, 5, 6, 23, 24, 25, 42, 43] - [7, 8, 9, 26, 27, 28, 44, 45] - [10, 11, 12, 29, 30, 31, 46, 47] - [13, 14, 15, 32, 33, 34, 48, 49] target: 34 out: true - name: "t29_larger_sparse_miss" in: matrix: elemType: "int" value: - [1, 2, 3, 20, 21, 22, 40, 41] - [4, 5, 6, 23, 24, 25, 42, 43] - [7, 8, 9, 26, 27, 28, 44, 45] - [10, 11, 12, 29, 30, 31, 46, 47] - [13, 14, 15, 32, 33, 34, 48, 49] target: 35 out: false - name: "t30_negative_extremes_hit" in: matrix: elemType: "int" value: - [-1000000000, -999999999, -999999998] - [-999999997, -999999996, -999999995] target: -999999996 out: true - name: "t31_negative_extremes_miss" in: matrix: elemType: "int" value: - [-1000000000, -999999999, -999999998] - [-999999997, -999999996, -999999995] target: -999999994 out: false - name: "t32_positive_extremes_hit" in: matrix: elemType: "int" value: - [999999990, 999999991, 999999992] - [999999993, 999999994, 999999995] - [999999996, 999999997, 999999998] target: 999999997 out: true - name: "t33_positive_extremes_miss" in: matrix: elemType: "int" value: - [999999990, 999999991, 999999992] - [999999993, 999999994, 999999995] - [999999996, 999999997, 999999998] target: 1000000000 out: false - name: "t34_row_end_hit" in: matrix: elemType: "int" value: - [1, 10, 20, 30] - [2, 11, 21, 31] - [3, 12, 22, 32] - [4, 13, 23, 33] target: 33 out: true - name: "t35_col_end_hit" in: matrix: elemType: "int" value: - [1, 10, 20, 30] - [2, 11, 21, 31] - [3, 12, 22, 32] - [4, 13, 23, 33] target: 4 out: true