diff --git a/lib/node_modules/@stdlib/namespace/alias2pkg/data/data.csv b/lib/node_modules/@stdlib/namespace/alias2pkg/data/data.csv
index aeace712796b..06c673fbfd0b 100644
--- a/lib/node_modules/@stdlib/namespace/alias2pkg/data/data.csv
+++ b/lib/node_modules/@stdlib/namespace/alias2pkg/data/data.csv
@@ -1498,7 +1498,7 @@ BERNDT_CPS_WAGES_1985,"@stdlib/datasets/berndt-cps-wages-1985"
bifurcate,"@stdlib/utils/bifurcate"
bifurcateBy,"@stdlib/utils/bifurcate-by"
bifurcateByAsync,"@stdlib/utils/async/bifurcate-by"
-bifurcateIn,"@stdlib/utils/bifurcate-in"
+bifurcateIn,"@stdlib/object/bifurcate-in"
bifurcateOwn,"@stdlib/utils/bifurcate-own"
BigInt,"@stdlib/bigint/ctor"
binomialTest,"@stdlib/stats/binomial-test"
diff --git a/lib/node_modules/@stdlib/namespace/lib/namespace/b.js b/lib/node_modules/@stdlib/namespace/lib/namespace/b.js
index 7edcccd4264e..3ed875fe0640 100644
--- a/lib/node_modules/@stdlib/namespace/lib/namespace/b.js
+++ b/lib/node_modules/@stdlib/namespace/lib/namespace/b.js
@@ -102,8 +102,8 @@ ns.push({
ns.push({
'alias': 'bifurcateIn',
- 'path': '@stdlib/utils/bifurcate-in',
- 'value': require( '@stdlib/utils/bifurcate-in' ),
+ 'path': '@stdlib/object/bifurcate-in',
+ 'value': require( '@stdlib/object/bifurcate-in' ),
'type': 'Function',
'related': [
'@stdlib/utils/bifurcate',
@@ -121,7 +121,7 @@ ns.push({
'related': [
'@stdlib/utils/bifurcate',
'@stdlib/utils/bifurcate-by',
- '@stdlib/utils/bifurcate-in',
+ '@stdlib/object/bifurcate-in',
'@stdlib/utils/group-own'
]
});
diff --git a/lib/node_modules/@stdlib/namespace/lib/namespace/g.js b/lib/node_modules/@stdlib/namespace/lib/namespace/g.js
index cdafccd32a4c..2ef03b27aee7 100644
--- a/lib/node_modules/@stdlib/namespace/lib/namespace/g.js
+++ b/lib/node_modules/@stdlib/namespace/lib/namespace/g.js
@@ -196,7 +196,7 @@ ns.push({
'value': require( '@stdlib/utils/group-in' ),
'type': 'Function',
'related': [
- '@stdlib/utils/bifurcate-in',
+ '@stdlib/object/bifurcate-in',
'@stdlib/utils/count-in',
'@stdlib/utils/group-by',
'@stdlib/utils/group-own'
diff --git a/lib/node_modules/@stdlib/namespace/pkg2alias/data/data.csv b/lib/node_modules/@stdlib/namespace/pkg2alias/data/data.csv
index 7e78121b313c..f432e319c808 100644
--- a/lib/node_modules/@stdlib/namespace/pkg2alias/data/data.csv
+++ b/lib/node_modules/@stdlib/namespace/pkg2alias/data/data.csv
@@ -1498,7 +1498,7 @@
"@stdlib/utils/bifurcate",bifurcate
"@stdlib/utils/bifurcate-by",bifurcateBy
"@stdlib/utils/async/bifurcate-by",bifurcateByAsync
-"@stdlib/utils/bifurcate-in",bifurcateIn
+"@stdlib/object/bifurcate-in",bifurcateIn
"@stdlib/utils/bifurcate-own",bifurcateOwn
"@stdlib/bigint/ctor",BigInt
"@stdlib/stats/binomial-test",binomialTest
diff --git a/lib/node_modules/@stdlib/namespace/pkg2related/data/data.csv b/lib/node_modules/@stdlib/namespace/pkg2related/data/data.csv
index 65012dd8a8a1..76da48b5dcc1 100644
--- a/lib/node_modules/@stdlib/namespace/pkg2related/data/data.csv
+++ b/lib/node_modules/@stdlib/namespace/pkg2related/data/data.csv
@@ -1498,8 +1498,8 @@
"@stdlib/utils/bifurcate","@stdlib/utils/bifurcate-by,@stdlib/utils/bifurcate-own,@stdlib/utils/group"
"@stdlib/utils/bifurcate-by","@stdlib/utils/bifurcate,@stdlib/utils/group-by"
"@stdlib/utils/async/bifurcate-by","@stdlib/utils/bifurcate-by,@stdlib/utils/async/group-by"
-"@stdlib/utils/bifurcate-in","@stdlib/utils/bifurcate,@stdlib/utils/bifurcate-by,@stdlib/utils/bifurcate-own,@stdlib/utils/group-in"
-"@stdlib/utils/bifurcate-own","@stdlib/utils/bifurcate,@stdlib/utils/bifurcate-by,@stdlib/utils/bifurcate-in,@stdlib/utils/group-own"
+"@stdlib/object/bifurcate-in","@stdlib/utils/bifurcate,@stdlib/utils/bifurcate-by,@stdlib/utils/bifurcate-own,@stdlib/utils/group-in"
+"@stdlib/utils/bifurcate-own","@stdlib/utils/bifurcate,@stdlib/utils/bifurcate-by,@stdlib/object/bifurcate-in,@stdlib/utils/group-own"
"@stdlib/bigint/ctor",""
"@stdlib/stats/binomial-test",""
"@stdlib/boolean/ctor",""
@@ -1776,7 +1776,7 @@
"@stdlib/utils/group","@stdlib/utils/bifurcate,@stdlib/utils/count-by,@stdlib/utils/group-by"
"@stdlib/utils/group-by","@stdlib/utils/bifurcate-by,@stdlib/utils/count-by,@stdlib/utils/group"
"@stdlib/utils/async/group-by","@stdlib/utils/async/bifurcate-by,@stdlib/utils/async/count-by,@stdlib/utils/group-by"
-"@stdlib/utils/group-in","@stdlib/utils/bifurcate-in,@stdlib/utils/group-by,@stdlib/utils/group-own"
+"@stdlib/utils/group-in","@stdlib/object/bifurcate-in,@stdlib/utils/group-by,@stdlib/utils/group-own"
"@stdlib/utils/group-own","@stdlib/utils/bifurcate-own,@stdlib/utils/group,@stdlib/utils/group-by"
"@stdlib/blas/gswap","@stdlib/blas/base/gswap,@stdlib/blas/dswap,@stdlib/blas/sswap"
"@stdlib/constants/float64/half-ln-two","@stdlib/constants/float64/ln-two"
diff --git a/lib/node_modules/@stdlib/namespace/pkg2standalone/data/data.csv b/lib/node_modules/@stdlib/namespace/pkg2standalone/data/data.csv
index 9bdf443808cd..3dcd64efe10c 100644
--- a/lib/node_modules/@stdlib/namespace/pkg2standalone/data/data.csv
+++ b/lib/node_modules/@stdlib/namespace/pkg2standalone/data/data.csv
@@ -1498,7 +1498,7 @@
"@stdlib/utils/bifurcate","@stdlib/utils-bifurcate"
"@stdlib/utils/bifurcate-by","@stdlib/utils-bifurcate-by"
"@stdlib/utils/async/bifurcate-by","@stdlib/utils-async-bifurcate-by"
-"@stdlib/utils/bifurcate-in","@stdlib/utils-bifurcate-in"
+"@stdlib/object/bifurcate-in","@stdlib/object-bifurcate-in"
"@stdlib/utils/bifurcate-own","@stdlib/utils-bifurcate-own"
"@stdlib/bigint/ctor","@stdlib/bigint-ctor"
"@stdlib/stats/binomial-test","@stdlib/stats-binomial-test"
diff --git a/lib/node_modules/@stdlib/namespace/standalone2pkg/data/data.csv b/lib/node_modules/@stdlib/namespace/standalone2pkg/data/data.csv
index 2013bcb1bed5..9cbddfc8802f 100644
--- a/lib/node_modules/@stdlib/namespace/standalone2pkg/data/data.csv
+++ b/lib/node_modules/@stdlib/namespace/standalone2pkg/data/data.csv
@@ -1498,7 +1498,7 @@
"@stdlib/utils-bifurcate","@stdlib/utils/bifurcate"
"@stdlib/utils-bifurcate-by","@stdlib/utils/bifurcate-by"
"@stdlib/utils-async-bifurcate-by","@stdlib/utils/async/bifurcate-by"
-"@stdlib/utils-bifurcate-in","@stdlib/utils/bifurcate-in"
+"@stdlib/object-bifurcate-in","@stdlib/object/bifurcate-in"
"@stdlib/utils-bifurcate-own","@stdlib/utils/bifurcate-own"
"@stdlib/bigint-ctor","@stdlib/bigint/ctor"
"@stdlib/stats-binomial-test","@stdlib/stats/binomial-test"
diff --git a/lib/node_modules/@stdlib/utils/bifurcate-in/README.md b/lib/node_modules/@stdlib/object/bifurcate-in/README.md
similarity index 98%
rename from lib/node_modules/@stdlib/utils/bifurcate-in/README.md
rename to lib/node_modules/@stdlib/object/bifurcate-in/README.md
index 6b8ce9d97eed..fae3ec8f5c33 100644
--- a/lib/node_modules/@stdlib/utils/bifurcate-in/README.md
+++ b/lib/node_modules/@stdlib/object/bifurcate-in/README.md
@@ -37,7 +37,7 @@ limitations under the License.
## Usage
```javascript
-var bifurcateIn = require( '@stdlib/utils/bifurcate-in' );
+var bifurcateIn = require( '@stdlib/object/bifurcate-in' );
```
#### bifurcateIn( obj, \[options,] predicate )
@@ -208,7 +208,7 @@ console.log( context.count );
```javascript
var randu = require( '@stdlib/random/base/randu' );
var fromCodePoint = require( '@stdlib/string/from-code-point' );
-var bifurcateIn = require( '@stdlib/utils/bifurcate-in' );
+var bifurcateIn = require( '@stdlib/object/bifurcate-in' );
var opts;
var key;
diff --git a/lib/node_modules/@stdlib/utils/bifurcate-in/benchmark/benchmark.js b/lib/node_modules/@stdlib/object/bifurcate-in/benchmark/benchmark.js
similarity index 100%
rename from lib/node_modules/@stdlib/utils/bifurcate-in/benchmark/benchmark.js
rename to lib/node_modules/@stdlib/object/bifurcate-in/benchmark/benchmark.js
diff --git a/lib/node_modules/@stdlib/utils/bifurcate-in/docs/repl.txt b/lib/node_modules/@stdlib/object/bifurcate-in/docs/repl.txt
similarity index 100%
rename from lib/node_modules/@stdlib/utils/bifurcate-in/docs/repl.txt
rename to lib/node_modules/@stdlib/object/bifurcate-in/docs/repl.txt
diff --git a/lib/node_modules/@stdlib/utils/bifurcate-in/docs/types/index.d.ts b/lib/node_modules/@stdlib/object/bifurcate-in/docs/types/index.d.ts
similarity index 100%
rename from lib/node_modules/@stdlib/utils/bifurcate-in/docs/types/index.d.ts
rename to lib/node_modules/@stdlib/object/bifurcate-in/docs/types/index.d.ts
diff --git a/lib/node_modules/@stdlib/utils/bifurcate-in/docs/types/test.ts b/lib/node_modules/@stdlib/object/bifurcate-in/docs/types/test.ts
similarity index 100%
rename from lib/node_modules/@stdlib/utils/bifurcate-in/docs/types/test.ts
rename to lib/node_modules/@stdlib/object/bifurcate-in/docs/types/test.ts
diff --git a/lib/node_modules/@stdlib/utils/bifurcate-in/examples/index.js b/lib/node_modules/@stdlib/object/bifurcate-in/examples/index.js
similarity index 100%
rename from lib/node_modules/@stdlib/utils/bifurcate-in/examples/index.js
rename to lib/node_modules/@stdlib/object/bifurcate-in/examples/index.js
diff --git a/lib/node_modules/@stdlib/utils/bifurcate-in/lib/index.js b/lib/node_modules/@stdlib/object/bifurcate-in/lib/index.js
similarity index 90%
rename from lib/node_modules/@stdlib/utils/bifurcate-in/lib/index.js
rename to lib/node_modules/@stdlib/object/bifurcate-in/lib/index.js
index a753044cb5e2..ef0ca1e9b42a 100644
--- a/lib/node_modules/@stdlib/utils/bifurcate-in/lib/index.js
+++ b/lib/node_modules/@stdlib/object/bifurcate-in/lib/index.js
@@ -21,10 +21,10 @@
/**
* Split an object's own and inherited property values into two groups according to a predicate function.
*
-* @module @stdlib/utils/bifurcate-in
+* @module @stdlib/object/bifurcate-in
*
* @example
-* var bifurcateIn = require( '@stdlib/utils/bifurcate-in' );
+* var bifurcateIn = require( '@stdlib/object/bifurcate-in' );
*
* function predicate( v ) {
* return v[ 0 ] === 'b';
@@ -46,7 +46,7 @@
* // e.g., returns [ [ 'beep', 'boop', 'bar' ], [ 'foo' ] ]
*
* @example
-* var bifurcateIn = require( '@stdlib/utils/bifurcate-in' );
+* var bifurcateIn = require( '@stdlib/object/bifurcate-in' );
*
* function predicate( v ) {
* return v[ 0 ] === 'b';
@@ -71,7 +71,7 @@
* // e.g., returns [ [ 'a', 'b', 'd' ], [ 'c' ] ]
*
* @example
-* var bifurcateIn = require( '@stdlib/utils/bifurcate-in' );
+* var bifurcateIn = require( '@stdlib/object/bifurcate-in' );
*
* function predicate( v ) {
* return v[ 0 ] === 'b';
diff --git a/lib/node_modules/@stdlib/utils/bifurcate-in/lib/main.js b/lib/node_modules/@stdlib/object/bifurcate-in/lib/main.js
similarity index 100%
rename from lib/node_modules/@stdlib/utils/bifurcate-in/lib/main.js
rename to lib/node_modules/@stdlib/object/bifurcate-in/lib/main.js
diff --git a/lib/node_modules/@stdlib/utils/bifurcate-in/lib/return_keys.js b/lib/node_modules/@stdlib/object/bifurcate-in/lib/return_keys.js
similarity index 100%
rename from lib/node_modules/@stdlib/utils/bifurcate-in/lib/return_keys.js
rename to lib/node_modules/@stdlib/object/bifurcate-in/lib/return_keys.js
diff --git a/lib/node_modules/@stdlib/utils/bifurcate-in/lib/return_pairs.js b/lib/node_modules/@stdlib/object/bifurcate-in/lib/return_pairs.js
similarity index 100%
rename from lib/node_modules/@stdlib/utils/bifurcate-in/lib/return_pairs.js
rename to lib/node_modules/@stdlib/object/bifurcate-in/lib/return_pairs.js
diff --git a/lib/node_modules/@stdlib/utils/bifurcate-in/lib/return_values.js b/lib/node_modules/@stdlib/object/bifurcate-in/lib/return_values.js
similarity index 100%
rename from lib/node_modules/@stdlib/utils/bifurcate-in/lib/return_values.js
rename to lib/node_modules/@stdlib/object/bifurcate-in/lib/return_values.js
diff --git a/lib/node_modules/@stdlib/utils/bifurcate-in/lib/validate.js b/lib/node_modules/@stdlib/object/bifurcate-in/lib/validate.js
similarity index 100%
rename from lib/node_modules/@stdlib/utils/bifurcate-in/lib/validate.js
rename to lib/node_modules/@stdlib/object/bifurcate-in/lib/validate.js
diff --git a/lib/node_modules/@stdlib/utils/bifurcate-in/package.json b/lib/node_modules/@stdlib/object/bifurcate-in/package.json
similarity index 97%
rename from lib/node_modules/@stdlib/utils/bifurcate-in/package.json
rename to lib/node_modules/@stdlib/object/bifurcate-in/package.json
index 790211a23192..14444954bc52 100644
--- a/lib/node_modules/@stdlib/utils/bifurcate-in/package.json
+++ b/lib/node_modules/@stdlib/object/bifurcate-in/package.json
@@ -1,5 +1,5 @@
{
- "name": "@stdlib/utils/bifurcate-in",
+ "name": "@stdlib/object/bifurcate-in",
"version": "0.0.0",
"description": "Split an object's own and inherited property values into two groups according to a predicate function.",
"license": "Apache-2.0",
diff --git a/lib/node_modules/@stdlib/utils/bifurcate-in/test/test.js b/lib/node_modules/@stdlib/object/bifurcate-in/test/test.js
similarity index 100%
rename from lib/node_modules/@stdlib/utils/bifurcate-in/test/test.js
rename to lib/node_modules/@stdlib/object/bifurcate-in/test/test.js
diff --git a/lib/node_modules/@stdlib/utils/bifurcate-in/test/test.validate.js b/lib/node_modules/@stdlib/object/bifurcate-in/test/test.validate.js
similarity index 100%
rename from lib/node_modules/@stdlib/utils/bifurcate-in/test/test.validate.js
rename to lib/node_modules/@stdlib/object/bifurcate-in/test/test.validate.js
diff --git a/lib/node_modules/@stdlib/utils/bifurcate-own/README.md b/lib/node_modules/@stdlib/utils/bifurcate-own/README.md
index 3270604a5be2..d5ce2762c8b8 100644
--- a/lib/node_modules/@stdlib/utils/bifurcate-own/README.md
+++ b/lib/node_modules/@stdlib/utils/bifurcate-own/README.md
@@ -225,7 +225,7 @@ console.log( out );
- [`@stdlib/utils/bifurcate`][@stdlib/utils/bifurcate]: split values into two groups.
- [`@stdlib/utils/bifurcate-by`][@stdlib/utils/bifurcate-by]: split values into two groups according to a predicate function.
-- [`@stdlib/utils/bifurcate-in`][@stdlib/utils/bifurcate-in]: split an object's own and inherited property values into two groups according to a predicate function.
+- [`@stdlib/object/bifurcate-in`][@stdlib/object/bifurcate-in]: split an object's own and inherited property values into two groups according to a predicate function.
- [`@stdlib/utils/group-own`][@stdlib/utils/group-own]: group an object's own property values according to an indicator function.
@@ -244,7 +244,7 @@ console.log( out );
[@stdlib/utils/bifurcate-by]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/utils/bifurcate-by
-[@stdlib/utils/bifurcate-in]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/utils/bifurcate-in
+[@stdlib/object/bifurcate-in]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/object/bifurcate-in
[@stdlib/utils/group-own]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/utils/group-own
diff --git a/lib/node_modules/@stdlib/utils/docs/types/index.d.ts b/lib/node_modules/@stdlib/utils/docs/types/index.d.ts
index 3dbac225f154..665a8f873c6b 100644
--- a/lib/node_modules/@stdlib/utils/docs/types/index.d.ts
+++ b/lib/node_modules/@stdlib/utils/docs/types/index.d.ts
@@ -28,7 +28,6 @@ import argumentFunction = require( '@stdlib/utils/argument-function' );
import async = require( '@stdlib/utils/async' );
import bifurcate = require( '@stdlib/utils/bifurcate' );
import bifurcateBy = require( '@stdlib/utils/bifurcate-by' );
-import bifurcateIn = require( '@stdlib/utils/bifurcate-in' );
import bifurcateOwn = require( '@stdlib/utils/bifurcate-own' );
import compose = require( '@stdlib/utils/compose' );
import constantFunction = require( '@stdlib/utils/constant-function' );
@@ -437,79 +436,6 @@ interface Namespace {
*/
bifurcateBy: typeof bifurcateBy;
- /**
- * Splits an object's own and inherited property values into two groups according to a predicate function.
- *
- * ## Notes
- *
- * - When invoked, the predicate function is provided two arguments:
- *
- * - `value`: object value
- * - `key`: object key
- *
- * - If a predicate function returns a truthy value, a value is placed in the first group; otherwise, a value is placed in the second group.
- *
- * - If provided an empty object with no prototype, the function returns an empty array.
- *
- * - The function iterates over an object's own and inherited properties.
- *
- * - Key iteration order is *not* guaranteed, and, thus, result order is *not* guaranteed.
- *
- * @param obj - input object
- * @param options - function options
- * @param options.thisArg - execution context
- * @param options.returns - if `'values'`, values are returned; if `'keys'`, keys are returned; if `'*'`, both keys and values are returned (default: 'values')
- * @param predicate - predicate function indicating which group an element in the input object belongs to
- * @returns group results
- *
- * @example
- * function predicate( v ) {
- * return v[ 0 ] === 'b';
- * }
- *
- * function Foo() {
- * this.a = 'beep';
- * this.b = 'boop';
- * return this;
- * }
- *
- * Foo.prototype = Object.create( null );
- * Foo.prototype.c = 'foo';
- * Foo.prototype.d = 'bar';
- *
- * var obj = new Foo();
- *
- * var opts = {
- * 'returns': 'keys'
- * };
- * var out = ns.bifurcateIn( obj, opts, predicate );
- * // e.g., returns [ [ 'a', 'b', 'd' ], [ 'c' ] ]
- *
- * @example
- * function predicate( v ) {
- * return v[ 0 ] === 'b';
- * }
- *
- * function Foo() {
- * this.a = 'beep';
- * this.b = 'boop';
- * return this;
- * }
- *
- * Foo.prototype = Object.create( null );
- * Foo.prototype.c = 'foo';
- * Foo.prototype.d = 'bar';
- *
- * var obj = new Foo();
- *
- * var opts = {
- * 'returns': '*'
- * };
- * var out = ns.bifurcateIn( obj, opts, predicate );
- * // e.g., returns [ [ [ 'a', 'beep' ], [ 'b', 'boop' ], [ 'd', 'bar' ] ], [ [ 'c', 'foo' ] ] ]
- */
- bifurcateIn: typeof bifurcateIn;
-
/**
* Splits an object's own property values into two groups according to a predicate function.
*
diff --git a/lib/node_modules/@stdlib/utils/group-in/README.md b/lib/node_modules/@stdlib/utils/group-in/README.md
index b6cf5c45db94..ea10971f730a 100644
--- a/lib/node_modules/@stdlib/utils/group-in/README.md
+++ b/lib/node_modules/@stdlib/utils/group-in/README.md
@@ -296,7 +296,7 @@ console.log( out );
## See Also
-- [`@stdlib/utils/bifurcate-in`][@stdlib/utils/bifurcate-in]: split an object's own and inherited property values into two groups according to a predicate function.
+- [`@stdlib/object/bifurcate-in`][@stdlib/object/bifurcate-in]: split an object's own and inherited property values into two groups according to a predicate function.
- [`@stdlib/utils/group-by`][@stdlib/utils/group-by]: group values according to an indicator function.
- [`@stdlib/utils/group-own`][@stdlib/utils/group-own]: group an object's own property values according to an indicator function.
@@ -312,7 +312,7 @@ console.log( out );
-[@stdlib/utils/bifurcate-in]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/utils/bifurcate-in
+[@stdlib/object/bifurcate-in]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/object/bifurcate-in
[@stdlib/utils/group-by]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/utils/group-by
diff --git a/lib/node_modules/@stdlib/utils/lib/index.js b/lib/node_modules/@stdlib/utils/lib/index.js
index a3737f2c9975..22b786160866 100644
--- a/lib/node_modules/@stdlib/utils/lib/index.js
+++ b/lib/node_modules/@stdlib/utils/lib/index.js
@@ -112,15 +112,6 @@ setReadOnly( utils, 'bifurcate', require( '@stdlib/utils/bifurcate' ) );
*/
setReadOnly( utils, 'bifurcateBy', require( '@stdlib/utils/bifurcate-by' ) );
-/**
-* @name bifurcateIn
-* @memberof utils
-* @readonly
-* @type {Function}
-* @see {@link module:@stdlib/utils/bifurcate-in}
-*/
-setReadOnly( utils, 'bifurcateIn', require( '@stdlib/utils/bifurcate-in' ) );
-
/**
* @name bifurcateOwn
* @memberof utils