diff --git a/HISTORY.md b/HISTORY.md
index 91b5575f..514a533c 100755
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -2,9 +2,14 @@
## in development:
+* **Notable Changes:**
+ * hyperized image attribute reporter primitive (monadic)
* **Notable Fixes:**
* fixed a glitch in the animation library's "sine in-out" easing function
+### 2021-01-25
+* threads: hyperized image attribute reporter primitive (monadic)
+
### 2021-01-21
* new dev version
* animation library: fixed a glitch in the "sine in-out" easing function
diff --git a/snap.html b/snap.html
index 4bdbc66f..5c60812d 100755
--- a/snap.html
+++ b/snap.html
@@ -9,7 +9,7 @@
-
+
diff --git a/src/threads.js b/src/threads.js
index 4a8de5d8..99a3ad8f 100644
--- a/src/threads.js
+++ b/src/threads.js
@@ -61,7 +61,7 @@ StageMorph, SpriteMorph, StagePrompterMorph, Note, modules, isString, copy, Map,
isNil, WatcherMorph, List, ListWatcherMorph, alert, console, TableMorph, BLACK,
TableFrameMorph, ColorSlotMorph, isSnapObject, newCanvas, Symbol, SVG_Costume*/
-modules.threads = '2021-January-05';
+modules.threads = '2021-January-25';
var ThreadManager;
var Process;
@@ -5832,6 +5832,12 @@ Process.prototype.doSetInstrument = function (num) {
// Process image processing primitives
Process.prototype.reportGetImageAttribute = function (choice, name) {
+ if (this.enableHyperOps) {
+ if (name instanceof List) {
+ return name.map(each => this.reportGetImageAttribute(choice, each));
+ }
+ }
+
var cst = this.costumeNamed(name) || new Costume(),
option = this.inputOption(choice);